DG中備庫為SWITCHOVER PENDING時是否能進行主備切換
隨後檢視了一些文章,大概說是由於斷檔導致,而且還不能進行正常切換,要恢復丟失了的歸檔日誌到備庫。
---收集了一些關於DG中主備庫的Switchover_Status:
NOT ALLOWED |
當前的不是帶有備用資料庫的主資料庫 |
PREPARING DICTIONARY |
該邏輯備用資料庫正在向一個主資料庫和其他備用資料庫傳送它的重做資料,以便為切換做準備 |
PREPARING SWITCHOVER |
接受用於切換的重做資料時,邏輯備用配置會使用它 |
RECOVERY NEEDED |
備用資料庫還沒有接收到切換請求 |
SESSIONS ACTIVE |
在主資料庫中存在活動的SQL會話;在繼續執行之前必須斷開這些會話 |
SWITCHOVER PENDING |
適用於那些已收到主資料庫切換請求但是還沒有處理該請求的備用資料庫 |
SWITCHOVER LATENT |
切換沒有完成並返回到主資料庫 |
TO LOGICAL STANDBY |
主資料庫已經收到了來自邏輯備用資料庫的完整的字典 |
TO PRIMARY |
該備用資料庫可以轉換為主資料庫 |
TO STANDBY |
該主資料庫可以轉換為備用資料庫 |
----引用出現過類似情況案例的博文:
---博主在進行切換過程中,已經把主庫切換成備庫後原備庫的Switchover_Status為 SWITCHOVER PENDING:
SQL>alter database commit to switchover to physical standby with session shutdown;並且shutdown immediate;startup mount;
這時,在standby上檢視switchover status:
SQL>select switchover_status from v$database;
SWITCHOVER_STATUS
---------------------------------
SWITCHOVER PENDING
居然顯示為pending!這說明這個standby已經接收到了primary傳來的to primary的通知,但是還沒有執行。
那麼為什麼沒有執行呢?透過v$archived_log我們可以找到答案。
SQL>select dest_id,sequence#,archived,applied from v$archived_log order by 1,2;
可以看到目前dest_id為2也就是這個備庫上有日誌號為28的log還沒有apply,繼續跟蹤alert log,看到它說:
ORA-00314: log 5 of thread 1,expedted sequence# 28 doesn't match 0
這裡提示我們28這個日誌不存在!去standby的log_archive_dest_1去找一找,果然沒有找到28的日誌。於是我們可以透過複製,並註冊:
$cp primary/1_28_803392039.log standby/
SQL>alter database register logfile '1_28_803392039.log';
System altered.
這是再去看alert log,發現備庫成功切換成新主庫。
---主庫:
SQL> select open_mode,protection_mode,switchover_status,database_role from v$database;
OPEN_MODE PROTECTION_MODE SWITCHOVER_STATUS DATABASE_ROLE
-------------------- -------------------- -------------------- ----------------
READ WRITE MAXIMUM PERFORMANCE SESSIONS ACTIVE PRIMARY
---備庫:
SQL> select open_mode,protection_mode,switchover_status,database_role from v$database;
OPEN_MODE PROTECTION_MODE SWITCHOVER_STATUS DATABASE_ROLE
-------------------- -------------------- -------------------- ----------------
READ ONLY WITH APPLY MAXIMUM PERFORMANCE SWITCHOVER PENDING PHYSICAL STANDBY
--上面提到的那種情況就是說是由於備庫斷檔原因導致備庫的Switchover_Status為SWITCHOVER PENDING。
但在我的案例中,情況有所不一樣,我的DG備庫情況是剛從failover切換中把原主庫恢復成為新備庫,就出現了
備註的Switchover_Status為SWITCHOVER PENDING。
----當時的主備庫的切換狀態:
--我最後去核查歸檔,發現主備庫都沒有斷檔情況,所有被傳輸到備庫的歸檔日誌都成功被應用,也就是說不是斷檔導致。
後面我還嘗試做了主備庫之間角色的切換,結果是正常切換成功。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2135699/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備庫的切換狀態為SWITCHOVER PENDING時進行dataguard主備庫角色切換
- 【DG】Data Guard主備庫Switchover切換
- 【DG】Data Guard主備庫Failove切換AI
- 再次使用DGbroker做switchover主備切換
- DATA GUARD物理備庫的SWITCHOVER切換
- Oracle DataGuard 主備切換 (switchover) oracle11gOracle
- openGauss主備切換之switchover與failoverAI
- DataGuard切換(主庫為Rac+備庫為Rac)
- Oracle 12c Data guard 物理主備庫正常切換(switchover)流程Oracle
- Oracle 11g Data guard 物理主備庫正常切換(switchover)流程Oracle
- Data Guard主備庫切換
- 利用RMAN搭建DATAGARD進行主備切換
- Oracle 單機切換為主備Oracle
- DataGuard主備庫切換步驟
- MySQL 主備庫切換記錄MySql
- 執行主備庫切換以解決主庫儲存不足
- Oracle 10g DataGuard物理主備切換-switchover與failoverOracle 10gAI
- 【DataGuard】10g物理standby主備switchover方式切換詳述
- 主備切換的準備工作
- DG中主庫與備庫角色的交換
- dataguard主備switchover互切實驗及理解
- 【DATAGUARD】物理dg的switchover切換(五)
- 邏輯DG主備庫轉換的failoverAI
- 主備切換(failover)AI
- 主備切換的準備工作(二)
- Oracle Data Guard主庫備庫角色切換(Switchovers)Oracle
- failover切換後恢復原來主庫為新備庫AI
- mysql主從複製+主備切換MySql
- Oracle10G Dataguard 多個備庫 - 主庫和物理備庫的切換Oracle
- 單節點DG的switchover切換介紹
- Oracle 11g dg switchover切換操作流程Oracle
- 主備庫切換以解決主庫儲存空間不足
- 邏輯備庫Switchover
- DataGaurd環境主庫崩潰後將備庫切為主庫
- DG日誌不應用,GAP,主備切換解決思路與辦法
- Spring Boot中自定義註解+AOP實現主備庫切換Spring Boot
- Mysql 5.6 Master和Slave 主備切換MySqlAST
- MySQL 5.7 主庫崩潰切備庫MySql