设置从库的日志模式为SYNC,为改为Max Availability模式做好准备:
EDIT DATABASE stdby SET PROPERTY 'LogXptMode'='SYNC';
DGMGRL> EDIT DATABASE stdby SET PROPERTY 'LogXptMode'='SYNC';
Property "LogXptMode" updated
也设置主库日志模式为SYNC,为以后主库切换为从库再切回来做准备:
EDIT DATABASE pri SET PROPERTY 'LogXptMode'='SYNC';
DGMGRL> EDIT DATABASE pri SET PROPERTY 'LogXptMode'='SYNC';
Property "LogXptMode" updated
设置主从库为Max Availability模式:
EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;
Operation requires shutdown of instance "prod" on database "pri"
Shutting down instance "prod"...
Database closed.
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "prod" on database "pri"
Starting instance "prod"...
ORACLE instance started.
Database mounted.
配置主从库的Failover的目标:
edit database pri set property 'FastStartFailoverTarget'='stdby';
DGMGRL> edit database pri set property 'FastStartFailoverTarget'='stdby';
Property "FastStartFailoverTarget" updated
edit database stdby set property 'FastStartFailoverTarget'='pri';
DGMGRL> edit database stdby set property 'FastStartFailoverTarget'='pri';
Property "FastStartFailoverTarget" updated
设定FastStartFailoverThreshold值,这个设置是决定了primary坏了多长时间之后会执行自动的failover操作,这里我们设置的是30秒:
EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold = 30;
DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold = 30;
Property "faststartfailoverthreshold" updated
检查主从库都在flashback开启状态:
select name, current_scn, flashback_on from v$database;
SQL> select name, current_scn, flashback_on from v$database;
NAME CURRENT_SCN FLASHBACK_ON
--------- ----------- ------------------
PROD 732929 YES
如果不是,启用flashback:
alter system set db_recovery_file_dest_size=2G;
alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area/';
alter database flashback on;