一、环境介绍:

      本实验是在虚拟机上完成的,primary数据库和standby数据库位于同一台主机。本人是初学者,为了看起来方便,所以primary的实例名就是primary,standby的实例名就是standby。其中有些术语因时间关系没有详细列出来解释,请参考官方文档。

     本文包含了三大块:

     1、primary数据库的准备工作。

     2、standby数据库的创建。

     3、Data Guard Broker的配置使用。

二、primary数据库的准备工作:

1、启用force logging模式:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

2、创建standby数据库redo文件:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

3、设置primary数据库的初始化参数:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

4、确保数据库已处于归档模式:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

三、创建standby数据库:

1、编辑tnsnames.ora文件,将standby实例加进去:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

2、编辑listener.ora文件,将standby静态注册进去:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

3、重启监听:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

4、创建standby数据库的密码文件:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

由于这里的standby与primary在同一台主机上,所以就直接复制了。

5、创建standby的初始化参数文件:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

6、创建相应的目录:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

7、创建standby数据文件存放位置:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

8、使用standby pfile启动至nomount状态:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

9、使用rman以auxiliary方式连接standby数据库:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

10、在rman中使用duplicate方式创建standby数据库:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

详细的过程会以附件的形式存在末尾。

11、在primary上执行日志切换:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

12、在standby上启用managed recovery process:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

13、在standby上查询已经存在的归档日志:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

在主库上多切换几次,然后在standby上查看归档日志信息:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

四、后续管理:

1、验证primary和standby的状态:

primary和standby在同一时刻只有一个处于open状态,其他的都是mount状态:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

2、standby和primary担任的角色查询:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

3、switchover的状态查询:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

五、dataguard_broker的配置:

1、standby上查询参数dg_broker_start参数的值:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

2、在standby上启用dg_broker_start:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

3、编辑listener.ora文件:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

(SID_DESC = 
                (GLOBAL_DBNAME = standby_DGMGRL.xzxj.edu.cn) 
                (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) 
                (SID_NAME = standby)

)

这些内容是新添加的,其中的GLOBAL_DBNAME具有固定的格式:<db_unique_name>_DGMGRL.<db_domain>。具体含义请参考官方文档。完成之后,必须重启监听程序。重启后查询监听状态会多出一个实例,如图所示:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

其中的standby_DGMGRL.xzxj.edu.cn就是刚才添加的。

4、在primary主库启用dg_broker_start:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

然后编辑listener.ora文件,加入以下内容:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

由于我的primary和standby在同一台机器上,所以一次编辑listener.ora文件,将其编辑好。完了之后,一定要重启监听,否则在后续操作中会产生意想不到的错误。

5、运行dgmgrl命令,创建配置信息,这个在primary节点上操作:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

接着增加standby数据库:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

启用刚才创建的配置信息:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

6、做switchover切换:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

ok,到此切换成功。可以使用sql验证下各个数据库的角色。

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

7、在做日志切换操作:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

8、再做switchover切换回来:

Oracle DataGuard 11gR2 之Physical Standby Database的创建

Oracle DataGuard 11gR2 之Physical Standby Database的创建

ok,整个DataGuard配置切换过程到此结束