DG物理standby,failover步骤
环境为11gR2,oracle linux 6.4;物理standby,单实例;假设primary(db20)异常关闭数据库,需要切换物理standby(db66)为新primary 数据库;
步骤1:检查归档日志是否缺失
如果异常的primary数据库还能够mount上,则启动到mount状态,然后执行SQL,补发日志;
SQL> ALTER SYSTEM FLUSH REDO TO target_db_name;
target_db_name 为db_unique_name,log_archive_dest_n中指定的;如果执行成功,则可以保证数据无丢失;
如果异常主库不能mount,则需要拷贝备库缺失的归档日志到备库,然后注册;
SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';
步骤2:备库停止redo应用
db66:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
步骤3:手动完成所有redo应用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
如果执行没有报任何错误,则执行步骤4;如果报错并不能够解决,则执行activate, SQL> ALTER DATABASE ACTIVATE PHYSICAL STANDBY DATABASE;
然后执行步骤6;
步骤4:查询备库状态
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
-----------------
TO PRIMARY
1 row selected
如果SWITCHOVER_STATUS 为TO PRIMARY 或 SESSIONS ACTIVE值,为正常状态,可以switchover为primary;
步骤5:切换到主库
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
步骤6:打开新主库到open
SQL> ALTER DATABASE OPEN;
打开新主库;备份新主库,然后启动其他物理备库已经停止的日志应用;
打开新主库是报错:
SQL> startup open
ORACLE instance started.
Total System Global Area 839282688 bytes
Fixed Size 2233000 bytes
Variable Size 637537624 bytes
Database Buffers 192937984 bytes
Redo Buffers 6574080 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Session ID: 191 Serial number: 3
查看alert日志文件,如下:
Error 12514 received logging on to the standby
LGWR: Error 12514 verifying archivelog destination LOG_ARCHIVE_DEST_2
Destination LOG_ARCHIVE_DEST_2 is UNSYNCHRONIZED
LGWR: Continuing...
LGWR: Minimum of 1 applicable standby database required
Errors in file /u01/app/oracle/diag/rdbms/db66/oradb/trace/oradb_lgwr_12367.trc:
ORA-16072: a minimum of one standby database destination is required
LGWR (ospid: 12367): terminating the instance due to error 16072
System state dump requested by (instance=1, osid=12367 (LGWR)), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/db66/oradb/trace/oradb_diag_12357.trc
Dumping diagnostic data in directory=[cdmp_20140228172732], requested by (instance=1, osid=12367 (LGWR)), summary=[abnormal instance termination].
Instance terminated by LGWR, pid = 12367
通过上面的内容,发现报错在归档日志位置LOG_ARCHIVE_DEST_2,这个参数设置DG下primary数据库的日志传送;由于原来的DG是maximize protect模式,而在failover后,原primary无法达到,则报错;修改DG的保护模式为maximize availability即可
SQL> alter database set standby database to maximize availability;
Database altered.
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY RESYNCHRONIZATION
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16976507/viewspace-1266120/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16976507/viewspace-1266120/