DataGuard:Logical Standby Failover

oracle_kai發表於2009-05-15

DataGuard:Logical Standby Failover

大致步驟如下:

1.檢查standby庫是否接受到完整的歸檔日誌

檢查primary庫的最大歸檔日誌號 

  db2>select max(sequence#) from v$archived_log;

             MAX(SEQUENCE#)

             --------------

             205

standby庫執行(邏輯standby沒有提供型別v$archive_gap檢視)

      db1>select thread#,SEQUENCE#,applied from dba_logstdby_log;

   THREAD#  SEQUENCE# APPLIED

---------- ---------- --------

         1        203 YES

         1        204 YES

         1        205 CURRENT

 

standby庫中的205號歸檔檔案的狀態為current,說明還沒有應用,有可能是standby庫停止了sql apply

db1>col realtime_apply for a10

db1>col state  for a20

db1>select session_id,realtime_apply,state from v$logstdby_state;

SESSION_ID REALTIME_A STATE

---------- ---------- --------------------

        22 Y          SQL APPLY NOT ON

 

通過v$logstdby_state 檢視可以看到,sql apply現在停止了,手工啟動sql apply

db1>alter database start logical standby apply immediate;

db1>select session_id,realtime_apply,state from v$logstdby_state;

SESSION_ID REALTIME_A STATE

---------- ---------- --------------------

        22 Y          LOADING DICTIONARY

db1>select thread#,SEQUENCE#,applied from dba_logstdby_log;

   THREAD#  SEQUENCE# APPLIED

---------- ---------- --------

         1        205 YES

 

如果不相等,只能到主庫歸檔路徑比對歸檔檔名來確定,將primary尚未傳送至standby的歸檔檔案手工複製到待轉換的邏輯standby伺服器,然後在standby端通過 ALTER DATABASE REGISTER LOGICAL LOGFILE ''; 命令將檔案手工註冊

 

2.檢查standby機器的引數配置,以符合failover後的primary庫設定(參看之前的建立配置部分)

 

3.failover切換

db1>alter database activate logical  standby database finish apply;

db1>select database_role from v$database;

DATABASE_ROLE

----------------

PRIMARY

 

Failover切換成功

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

相關文章