DATAGUARD強行切換

space6212發表於2019-07-21

主庫出問題時,我們可以對備庫做失敗切換,使得應用繼續執行。但是做失敗切換的前提是:
主庫的日誌完全傳送到備庫上(包括聯機日誌上的redo資訊),如果DATAGUARD是執行在最大保護或者最大可用模式下,這種切換一般沒有問題。
但是如果DATAGUARD執行在最大效能保護模式下,可能需要用強行切換的方式來啟用備庫了。
強行切換與普通的失敗切換的最大差別是:強行切換在資料庫開啟時需要resetlogs。由此帶來的後果是:
1、可能有資料丟失
2、破壞了整個DATAGUARD的結構。
如果存在多個standby,則其他的standby在沒有重建的情況下不能以被啟用的庫作為priamry,所有的standby必須要重建。



所以,不到萬不得已,不要輕易強行切換備庫。
下面提供一個強行切換的指令碼:
[oracle@standby ~]$ more activestandby.sh
lsnrctl stop
$ORACLE_HOME/bin/sqlplus /nolog <connect / as sysdba
alter database recover managed standby database cancel;
recover managed standby database cancel;
alter database activate standby database;
shutdown immediate
startup
exit
EOF
lsnrctl start

在執行這個指令碼後,在備庫的alert會看到如下資訊:
RESETLOGS after incomplete recovery UNTIL CHANGE 8799100
Resetting resetlogs activation ID 1463929150 (0x5741c93e)
Online log /u01/oracle/oradata/primary/redo01.log: Thread 1 Group 1 was previously cleared
Online log /u01/oracle/oradata/primary/redo02.log: Thread 1 Group 2 was previously cleared
Online log /u01/oracle/oradata/primary/redo03.log: Thread 1 Group 3 was previously cleared
Online log /u01/oracle/oradata/primary/redo10.log: Thread 1 Group 10 was previously cleared
Standby became primary SCN: 8799098
Wed Aug 15 20:44:17 2007
Setting recovery target incarnation to 2
Wed Aug 15 20:44:20 2007
ACTIVATE STANDBY: Complete - Database shutdown required (primary)
Wed Aug 15 20:44:20 2007
Completed: alter database activate standby database

這表明資料庫在重啟後會被resetlogs。

最後不要忘了修改被啟用的庫的一些與原來DATAGUARD相關的引數。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63848/,如需轉載,請註明出處,否則將追究法律責任。

相關文章