一、环境介绍:

      本实验是在虚拟机上完成的,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的创建_数据库_02

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_03

Oracle DataGuard 11gR2 之Physical Standby Database的创建_初学者_04

Oracle DataGuard 11gR2 之Physical Standby Database的创建_时间_05

Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_06

Oracle DataGuard 11gR2 之Physical Standby Database的创建_时间_07

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_虚拟机_08

三、创建standby数据库:

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_初学者_09

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_10

3、重启监听:

Oracle DataGuard 11gR2 之Physical Standby Database的创建_数据库_11

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_虚拟机_12

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

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_数据库_13

6、创建相应的目录:

Oracle DataGuard 11gR2 之Physical Standby Database的创建_初学者_14

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_15

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_时间_16

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_数据库_17

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_初学者_18

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

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_数据库_19

12、在standby上启用managed recovery process:

Oracle DataGuard 11gR2 之Physical Standby Database的创建_时间_20

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_数据库_21

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_时间_22

Oracle DataGuard 11gR2 之Physical Standby Database的创建_初学者_23

四、后续管理:

1、验证primary和standby的状态:

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_初学者_24

Oracle DataGuard 11gR2 之Physical Standby Database的创建_数据库_25

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_26

Oracle DataGuard 11gR2 之Physical Standby Database的创建_时间_27

3、switchover的状态查询:

Oracle DataGuard 11gR2 之Physical Standby Database的创建_初学者_28

Oracle DataGuard 11gR2 之Physical Standby Database的创建_数据库_29

五、dataguard_broker的配置:

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_数据库_30

2、在standby上启用dg_broker_start:

Oracle DataGuard 11gR2 之Physical Standby Database的创建_时间_31

3、编辑listener.ora文件:

Oracle DataGuard 11gR2 之Physical Standby Database的创建_初学者_32

(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的创建_初学者_33

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

4、在primary主库启用dg_broker_start:

Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_34

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_初学者_35

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

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_时间_36

Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_37

接着增加standby数据库:

Oracle DataGuard 11gR2 之Physical Standby Database的创建_数据库_38

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_39

6、做switchover切换:

Oracle DataGuard 11gR2 之Physical Standby Database的创建_数据库_40

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

Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_41

Oracle DataGuard 11gR2 之Physical Standby Database的创建_时间_42

7、在做日志切换操作:

Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_43

Oracle DataGuard 11gR2 之Physical Standby Database的创建_时间_44

Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_45

8、再做switchover切换回来:

Oracle DataGuard 11gR2 之Physical Standby Database的创建_时间_46

Oracle DataGuard 11gR2 之Physical Standby Database的创建_数据库_47

ok,整个DataGuard配置切换过程到此结束,后续会增加基于ASM的DataGuard配置以及更详细的有关DataGuard高级应用的文章,欢迎来拍砖Oracle DataGuard 11gR2 之Physical Standby Database的创建_oracle_48

参考文献:

        1、Data Guard Broker

        2、Data Guard Concepts and Administration