Oracle Data Guard (四) Failover

1.檢查Standby數據庫上有遺漏掉Log

用下列命令檢查是否有漏掉的log:

SQL> select thread#,log_sequence#,high_sequence# from v$archive_gap;


把漏掉的log文件從primary 數據庫拷貝到standby數據庫指定的log目錄,用以下命令註冊進standby數據庫:

SQL> alter database register physical logfile ‘filespec1’;

2.在Standby數據庫上停止log 應用進程

SQL> alter database recover managed standby database cancel;

SQL> alter database recover managed standby database finish;


如果應用所有redo log時遇到錯誤,可以用以下命令執行failover:
SQL> alter database activate physical standby database;

3.檢查Standby數據庫的狀態

SQL> select switchover_status from v$database;

只有狀態爲 "TO PRIMARY" 或者 "SESSIONS ACTIVE" 才能對Standby數據庫進行角色切換。

4.切換Standby數據庫爲Primary角色

SQL> alter database commit to switchover to primary with session shutdown;

SQL> alter database open;

5.修復Primary數據庫

得到新Primary 角色的standby數據庫的SCN:

SQL> select to_char(standby_became_primary_scn) from v$database;


還原Primary數據庫到上面得到的SCN:
RMAN> RUN
{
Set until scn <standby_became_primary_scn+1>;
Restore database;
Recover database;

}


切換primary數據庫爲physical standby角色:

SQL> alter database covert to physical standby;

SQL> shutdown immediate;

SQL> startup mount;


打開爲只讀方式同步log file,然後再重啓動:

SQL> alter database open read only;

SQL> shutdown immediate;

SQL> startup mount;


在primary數據庫上啓用log應用進程:

SQL> alter database recover managed standby database using current logfile disconnect;


另外可以從當前Primary角色的standby數據庫的備份去重建primary數據庫,或者重複standby執行過程,通過RMAN腳本重建primary數據庫。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章