【DataGuard】物理Data Guard之Failover轉換

secooler發表於2011-06-19
  如果可能的話(即主庫暫時還能夠訪問,還沒有從這個世界上消失),在執行Failover操作之前,我們應該將主庫中可用並且沒有應用的的日誌檔案傳到備庫。

  如果備庫執行在最大保護或者最大可用的資料保護模式下,應該先將資料保護級別調整為最大效能。方法如下

SQL> alter database set standby database to maximize performance;

Failover步驟如下。

1.檢視備庫的歸檔檔案是否連續
查詢待轉換備庫的V$ARCHIVE_GAP檢視,確認歸檔檔案是否連線:
sys@secdg> select thread#, low_sequence#, high_sequence# from v$archive_gap;

no rows selected

這裡如果有記錄返回,如果有可能的話,需要將列出的檔案手工複製到備庫。當主庫所在伺服器出現嚴重問題,比如經歷了人類無法抗拒的力量攻擊,被摧毀。那麼這步只好作罷。我們這裡只能盡力而為。

對複製過來的檔案使用如下方法進行註冊。
sys@secdg> alter database register physical logfile 'filespec1';

2.反覆執行第一步中提到的操作內容,直到返回記錄為空

3.檢視歸檔檔案是否完整
在主備庫中分別執行如下語句。
sys@secdg> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;

同樣的策略,如果有可能的話,將確實的歸檔日誌複製到備庫。

對複製過來的檔案使用如下方法進行註冊。
sys@secdg> alter database register physical logfile 'filespec1';

4.在需要Failover的備庫上準備轉換
sys@secdg> alter database recover managed standby database finish force;

Database altered.

“FORCE”關鍵字將會停止備庫中活動的RFS程式,從而可以立即執行Failover轉換,不必等待網路連線超時。

5.將物理Data Guard備庫Failover轉換為主庫
sys@secdg> select database_role from v$database;

DATABASE_ROLE
----------------
PHYSICAL STANDBY

sys@secdg> alter database commit to switchover to primary;

Database altered.

sys@secdg> select database_role from v$database;

DATABASE_ROLE
----------------
PRIMARY

6.完成備庫到主庫的轉換工作
1)如果此時資料庫狀態為MOUNTED狀態,直接可以將資料庫open
sys@secdg> select open_mode from v$database;

OPEN_MODE
----------
MOUNTED

sys@secdg> alter database open;

Database altered.

sys@secdg> select open_mode from v$database;

OPEN_MODE
----------
READ WRITE

2)如果資料庫狀態為READ ONLY狀態,需要停啟一下資料庫
sys@secdg> shutdown immediate;
sys@secdg> startup;

7.備份Failover轉換過來的主庫
此時主庫是被Failover過來的,也就是說是一個起死回生過來的新庫,理所當然的需要對其進行備份。
備份手段不限,只要是有效的備份即可。防止出現問題的時候可以進行恢復。

8.恢復失敗的主庫
此時備庫已經透過Failover方式轉換為主庫,原主庫已經徹底脫離了我們Data Guard環境。該如何處置原主庫呢?
這裡給出幾種思路:
1)另作他用;
2)將其作為現在主庫的備庫;
3)將其作為現在主庫的備庫,同時做一次Switchover恢復其主庫的身份。

9.Oracle官方文件參考連結


10.小結
  Failover是主庫出現嚴重故障不得以而為之的動作。需要酌情考慮使用。

Good luck.

secooler
11.06.19

-- The End --

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

相關文章