热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oracle11gR2ActiveDataGuard配置StepByStep

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

Oracle作为目前最流行的商业数据库,除了单独数据库DBMS之外,还针对实际运维系统需求,提供了一系列高可用HA解决方案。这其中,RAC+Dataguard是我们最常见的HA策略方案,也是普遍认为成熟的策略。
 
Data Guard在11G中有了很大的发展,最典型的两个特性就是Active Data Guard和Advanced Compression引入。传统Data Guard的Physical Standby结点在进行Redo Apply过程中,是不能打开数据库读取数据的。如果需要进行读取,则必须先将其终止Apply过程,才能支持Redo Apply。Active Data Guard特性就是支持Standby结点在Apply的同时支持只读数据库。这也就是为什么11G之后,很多企业选择DG作为读写分离策略的技术手段。
 
Advanced Compression是一个综合技术,在Data Guard中也有AC的过程。远程灾备使用Data Guard的一种重要瓶颈就是传输带宽限制。所有的Redo Log数据都要通过Primary与Standby之间的连接进行传递,过量Redo Log会限制灾备数据同步程度。Advanced Compression可以将Redo Log进行一定程度压缩,提高同步率。
 
本篇主要介绍在11gR2版本中,使用RMAN的duplicate from active database的新方法进行搭建。注意:从10g开始,有其他手段搭建DG。
 
 

相关参考:

Oracle Data Guard 重要配置参数 2013-08/88784.htm

基于同一主机配置 Oracle 11g Data Guard 2013-08/88848.htm

探索Oracle之11g DataGuard 2013-08/88692.htm

Oracle Data Guard (RAC+DG) 归档删除策略及脚本 2013-07/87782.htm

Oracle Data Guard 的角色转换 2013-06/86190.htm

Oracle Data Guard的日志FAL gap问题 2013-04/82561.htm

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法 2013-03/82009.htm

1、环境介绍

 

我们选择操作系统为Red Hat 6.5版本,磁盘空间充足。

 

[root@SimpleLinux ~]# cat /etc/RedHat-release

Red Hat Enterprise Linux Server release 6.5 (Santiago)

[root@SimpleLinux ~]# uname -r

2.6.32-431.el6.i686

 

[root@SimpleLinux ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2        48G  13G  33G  28% /

tmpfs          947M    0  947M  0% /dev/shm

 

当前数据库名称ora11g,环境变量如下:

 

[oracle@SimpleLinux ~]$ env | grep ORA

ORACLE_SID=ora11g

ORACLE_BASE=/u01/app

ORACLE_HOME=/u01/app/oracle

 

由于是实验环境,笔者在同一台机器上搭建Data Guard。不同服务器上操作方法相同。数据库版本为最新的11.2.0.4。

 

SQL> select * from v$version;

 

BANNER

------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - Production

PL/SQL Release 11.2.0.4.0 - Production

CORE 11.2.0.4.0 Production

 

数据库三大文件:控制文件、日志文件(Online)和数据文件遵守OMF(Oracle Managed File)策略。

 

SQL> select name from v$controlfile;

 

NAME

---------------------------------------------

/u01/app/oradata/ORA11G/controlfile/o1_mf_9mnjwpko_.ctl

/u01/app/fast_recovery_area/ORA11G/controlfile/o1_mf_9mnjwpw2_.ctl

 

 

SQL> select group#, member from v$logfile;

 

    GROUP# MEMBER

---------- --------------------------------------------------------------------

        3 /u01/app/oradata/ORA11G/onlinelog/o1_mf_3_9mnjx4n0_.log

        3 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_3_9mnjx54c_.log

        2 /u01/app/oradata/ORA11G/onlinelog/o1_mf_2_9mnjwzpq_.log

        2 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_2_9mnjx15f_.log

        1 /u01/app/oradata/ORA11G/onlinelog/o1_mf_1_9mnjwtj9_.log

        1 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_1_9mnjwvdm_.log

 

6 rows selected

 

 

SQL> select file_name from dba_data_files;

 

FILE_NAME

-----------------------------------

/u01/app/oradata/ORA11G/datafile/o1_mf_users_9mnjs074_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_undotbs1_9mnjs068_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_sysaux_9mnjs04h_.dbf

/u01/app/oradata/ORA11G/datafile/o1_mf_system_9mnjrzty_.dbf

 

当前数据库位于非归档模式。

 

SQL> archive log list;

Database log mode              No Archive Mode

Automatic archival            Disabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence    4

Current log sequence          6

 

注意:OMF是Oracle推荐的一种文件管理策略。传统的文件管理是管理员直接指定文件目录和名称,而OMF下是不需要指定文件的。而且,如果配置了Recovery Area目录,Oracle OMF会将两大镜像文件,online redo log和control file镜像存放在Recovery Area中。
 
当前配置了Recovery Area支持。

 

SQL> show parameter recover

 

NAME                                TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      /u01/app/fast_recovery_area

db_recovery_file_dest_size          big integer 10000M

db_unrecoverable_scn_tracking        boolean    TRUE

recovery_parallelism                integer    0

 

实验目标是建立ora11g的physical standby数据库,实例名称ora11gsy。

 

2、数据库Primary Database配置

 

Data Guard是要求在Primary Database端进行配置要求的。具体包括如下:

 

ü  归档模式切换。Data Guard运行的基础是Redo Log传输,Primary Database要求进行归档模式配置;

ü  Force Logging配置,确保Redo Log生成完整性;

ü  Standby Log创建;

ü  主库参数配置;

 

修改归档模式,切换到归档日志方式。默认情况下,如果开启recovery area,归档日志是会放在recovery area中的。

 

SQL> alter database archivelog;

Database altered.

 

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival            Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence    4

Next log sequence to archive  6

Current log sequence          6

 

Force logging是针对Oracle一些nologging操作而言的。Redo Log的责任是记录所有数据块的变化,还原重做redo log意味着数据同步。如果有nologging操作,生成redo log是不完全的,传递到physical standby中还原的也就不完全,难以做到同步。所以,Dataguard一定是将force logging进行配置。
 
 

SQL> alter database force logging;

Database altered

 

SQL> select force_logging from v$database;

FORCE_LOGGING

-------------

YES

 

下面构建standby log file在主库中。一些文献没有这个步骤,而只关注physical standby端的standby log创建。Standby log file是作为Redo Transfer过程的一个中转。通常而言,当日志被传递到Standby端,就应该立即应用Apply。如果此时没有开启应用过程,是会把日志暂存在这个地方的。对每一个standby,都需要创建一个或者多组standby log group。对于Primary Database,由于可能有role transition的情况,所以也需要进行配置。
 
注意:Primary Database中使用了OMF,我们可以很方便的进行创建standby log group。

 

SQL> alter database add standby logfile size 100m;

Database altered

 

SQL> alter database add standby logfile size 100m;

Database altered

 

SQL> alter database add standby logfile size 100m;

Database altered

 

也形成了配置镜像结构。

 

SQL> select group#, member from v$logfile where type='STANDBY';

 

    GROUP# MEMBER

---------- --------------------------------------------------------------------------------
 
        4 /u01/app/oradata/ORA11G/onlinelog/o1_mf_4_9nn5ntsv_.log

        4 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_4_9nn5o0jw_.log

        5 /u01/app/oradata/ORA11G/onlinelog/o1_mf_5_9nn5oq6d_.log

        5 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_5_9nn5owlv_.log

        6 /u01/app/oradata/ORA11G/onlinelog/o1_mf_6_9nn5p82m_.log

        6 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_6_9nn5pc70_.log

 

6 rows selected

 

视图v$standby_log,可以查看日志使用情况。

 

SQL> select group#, dbid, bytes from v$standby_log;

 

    GROUP# DBID                                          BYTES

---------- ---------------------------------------- ----------

        4 UNASSIGNED                                104857600

        5 UNASSIGNED                                104857600

        6 UNASSIGNED                                104857600

 

最后进行主库参数修改,具体来说需要修改六个参数。

 

参数log_archive_config用于指定环境中DG范围。

 

SQL> show parameter log_archive_config

 

NAME                                TYPE        VALUE

------------------------------------ ----------- ------------------------------

log_archive_config                  string     

 

SQL> alter system set log_archive_cOnfig='DG_COnFIG=(ora11g,ora11gsy)' scope=spfile;
 
 

System altered

 

要添加归档日志传输位置,archive_dest参数包括两种类型位置,location和service。Location参数表示本地目录归档日志存放,而service表示通过Oracle NET服务传输过去。要实现Dataguard组件,需要将日志指定到service里面。
 
 

SQL> alter system set log_archive_dest_2='SERVICE=ora11gsy valid_for=(online_logfiles,primary_role) db_unique_name=ora11gsy' scope=spfile;
 
System altered

 

SQL> alter system set log_archive_dest_state_2=enable;

System altered

 

注意:valid_for参数表示这个传递通道在什么时候发挥作用。Online_logfiles和Primary_role表示当前实例为Primary角色的时候,才传递日志。这样的配置是最常用的方式。
 
Name convert参数配置,对日志文件和数据库文件而言,目录是一个重要标识项目。Primary和Standby在转换过程中,要确立变换替换规则,这个过程需要进行实际的研究。
 
 

SQL> alter system set db_file_name_cOnvert='ORA11G','ORA11GSY' scope=spfile;

System altered

 

SQL> alter system set log_file_name_cOnvert='ORA11G','ORA11GSY' scope=spfile;

System altered

 

注意:在一些资料中,介绍11g里如果采用了OMF策略,这个参数是可以不设置的。

最后参数是standby_file_management策略,默认是manual。该参数用于控制Primary与Standby之间文件创建的方式。标准的DG环境下,在Primary DB下添加数据文件,会自动在Standby中增加文件。
 
 

 

SQL> show parameter standby_file_management

 

NAME                                TYPE        VALUE

------------------------------------ ----------- ------------------------------

standby_file_management              string      MANUAL

 

SQL> alter system set standby_file_management=auto;

 

System altered

 

SQL> show parameter standby_file_management

 

NAME                                TYPE        VALUE

------------------------------------ ----------- ------------------------------

standby_file_management              string      AUTO

 

下面需要配置的就是网络Oracle Net内容。

更多详情见请继续阅读下一页的精彩内容: 2014-05/101106p2.htm


推荐阅读
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • step1.为mongodb添加admin管理员root@12.154.29.163:~#mongoMongoDBshellversionv3.4.2connectingto:mo ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • MongoDB用户验证auth的权限设置及角色说明
    本文介绍了MongoDB用户验证auth的权限设置,包括readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase、cluster相关的权限以及root权限等角色的说明和使用方法。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
author-avatar
hpdgm_679
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有