DATAGUARD失敗切換

space6212發表於2019-02-24
如果主庫出現故障無法修復的話,就需要在備庫上做failover,使得應用可以繼續執行。


在備庫做失敗切換的一般步驟是:
1、如果可能,從主庫手工複製並註冊ARCHIVED LOG到備庫上,直到備庫的V$ARCHIVE_GAP記錄為空。
2、重啟備庫
3、在備庫應用所有日誌(用finish關鍵字)
4、把備庫設定為最大效能模式
5、失敗切換
6、修改備庫的相關引數(主要是其作為STANDBY_ROLE的相關引數)

在時間充裕的情況下可以這樣做,如果時間緊迫,可以直接用下面的指令碼實現FAILOVER。

[oracle@standby ~]$ more failover.sh
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=primary
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export NLS_LANG="american_america.ZHS16GBK"

lsnrctl stop
$ORACLE_HOME/bin/sqlplus /nolog <connect / as sysdba
alter database recover managed standby database cancel;
shutdown immediate
startup mount
ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;
alter database recover managed standby database finish;
-- switch
alter database commit to switchover to primary with session shutdown;
-- open
shutdown immediate
startup
exit
EOF
lsnrctl start

指令碼先重啟一次資料庫是為了防止ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected錯誤。

最後不要忘了修改資料庫引數。

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

相關文章