主机名 | ip | DB Version | db_name | db_unique_name | |
主库 | orcl | 192.168.56.120 | 11.2.0.4 | orcl | orcl |
备库 | orcl_stby | 192.168.56.121 | 11.2.0.4 | orcl | orcl_stby |
Notes:
1、db_unique_name主备库不能相同。
2、db_name主备库需保持一致。
3、主备库DB版本需保持一致。
提前搭建好ADG,请参考:
ADG单实例搭建系列之(Active Database Duplicate Using Image Copies)
一、Enable Broker--both databases (primary and standby)
ALTER SYSTEM SET dg_broker_start=true;
二、Register server with the broker
dgmgrl sys/oracle@orcl
##pri是configuration名称,随意
##第一个orcl是db_unique_name
##第二个orcl是TNSNAME
CREATE CONFIGURATION pri AS PRIMARY DATABASE IS orcl CONNECT IDENTIFIER IS orcl;
##第一个orcl_stby是db_unique_name
##第二个orcl_stby是TNSNAME
ADD DATABASE orcl_stby AS CONNECT IDENTIFIER IS orcl_stby MAINTAINED AS PHYSICAL;
ENABLE CONFIGURATION;
三、Check the configuration and database
SHOW CONFIGURATION;
SHOW DATABASE orcl;
SHOW DATABASE orcl_stby;
四、Database Switchover
Configure Listener Both Primary and Standby
vi $TNS_AMDIN/listener.ora
##GLOBAL_DBNAME是db_unique_name+DGMGRL
##primary add
(SID_DESC =
(GLOBAL_DBNAME = orcl_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db)
(SID_NAME = orcl)
)
##standby add
(SID_DESC =
(GLOBAL_DBNAME = orcl_stby_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db)
(SID_NAME = orcl)
)
Notes:如果listener.ora不配置DGMGRL静态监听,SWITCHOVER将报错:ORA-12514。
SWITCHOVER TO orcl_stby;
主切备:
备切主:
五、Database Failover主库提前开启FLASHBACK,Failover后还可以切回备库,防止主库废掉。
ALTER DATABASE FLASHBACK ON;
ALTER SYSTEM SET db_recovery_file_dest_size=5G;
##备库DGMGRL操作
FAILOVER TO orcl_stby IMMEDIATE;
原主库切换为备库:
##备库DGMGRL操作
REINSTATE DATABASE orcl;
六、Snapshot Standby
Snapshot standby database是ORACLE 11g的新特性。允许Physical standby短时间的使用read write模式。必须是ADG才支持。
注意:一旦snapshot standby被激活的时间超出了primary 的最大负载时间,再次的本地更新操作将会产生额外的异常。
##主库DGMGRL操作
CONVERT DATABASE orcl_stby TO SNAPSHOT STANDBY;
切回物理备库:
##主库DGMGRL执行
CONVERT DATABASE orcl_stby TO PHYSICAL STANDBY;