一、环境介绍:
本实验是在虚拟机上完成的,primary数据库和standby数据库位于同一台主机。本人是初学者,为了看起来方便,所以primary的实例名就是primary,standby的实例名就是standby。其中有些术语因时间关系没有详细列出来解释,请参考官方文档。
本文包含了三大块:
1、primary数据库的准备工作。
2、standby数据库的创建。
3、Data Guard Broker的配置使用。
二、primary数据库的准备工作:
1、启用force logging模式:
2、创建standby数据库redo文件:
3、设置primary数据库的初始化参数:
4、确保数据库已处于归档模式:
三、创建standby数据库:
1、编辑tnsnames.ora文件,将standby实例加进去:
2、编辑listener.ora文件,将standby静态注册进去:
3、重启监听:
4、创建standby数据库的密码文件:
由于这里的standby与primary在同一台主机上,所以就直接复制了。
5、创建standby的初始化参数文件:
6、创建相应的目录:
7、创建standby数据文件存放位置:
8、使用standby pfile启动至nomount状态:
9、使用rman以auxiliary方式连接standby数据库:
10、在rman中使用duplicate方式创建standby数据库:
详细的过程会以附件的形式存在末尾。
11、在primary上执行日志切换:
12、在standby上启用managed recovery process:
13、在standby上查询已经存在的归档日志:
在主库上多切换几次,然后在standby上查看归档日志信息:
四、后续管理:
1、验证primary和standby的状态:
primary和standby在同一时刻只有一个处于open状态,其他的都是mount状态:
2、standby和primary担任的角色查询:
3、switchover的状态查询:
五、dataguard_broker的配置:
1、standby上查询参数dg_broker_start参数的值:
2、在standby上启用dg_broker_start:
3、编辑listener.ora文件:
(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>。具体含义请参考官方文档。完成之后,必须重启监听程序。重启后查询监听状态会多出一个实例,如图所示:
其中的standby_DGMGRL.xzxj.edu.cn就是刚才添加的。
4、在primary主库启用dg_broker_start:
然后编辑listener.ora文件,加入以下内容:
由于我的primary和standby在同一台机器上,所以一次编辑listener.ora文件,将其编辑好。完了之后,一定要重启监听,否则在后续操作中会产生意想不到的错误。
5、运行dgmgrl命令,创建配置信息,这个在primary节点上操作:
接着增加standby数据库:
启用刚才创建的配置信息:
6、做switchover切换:
ok,到此切换成功。可以使用sql验证下各个数据库的角色。
7、在做日志切换操作:
8、再做switchover切换回来:
ok,整个DataGuard配置切换过程到此结束