Dataguard failover切換實驗
官方文件推薦的標準操作語句,備庫按順序如下
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
SQL> ALTER DATABASE OPEN;
以前的一個實驗,主庫當機的情況下,備庫直接執行如下三條語句即可(三種保護模式都實驗過,都是可以的)
1.備庫執行alter database recover managed standby database finish force;
2.備庫執行alter database commit to switchover to primary with session shutdown;
3.備庫執行alter database open;
以上情況如果是採用arch傳輸或採用lgwr傳輸但是沒有real-time Apply(real-time Apply的前提就是先建立standby redo log再執行alter database recover managed standby database using current logfile disconnect from session;),主庫一些資料插入後commit但是不archive log current後,備庫會丟失這些資料,如果是最大可用模式則不會。
原來standby是open狀態,如果是最大效能模式、最大保護模式則執行以上第二步後變成了mount狀態。如果是最大可用模式則執行第一步後變成了mount狀態
主庫當機後,備庫原來的狀態不變,如果原來是MAXIMIZE PERFORMANCE、MAXIMUM AVAILABILITY、MAXIMUM PROTECTION維持不變。
備庫關機後,重啟的過程中,可以直接startup到open模式,但是select open_mode from v$database的結果還是read only
最大可用性模式下,關閉備庫DB和監聽,驗證是否轉換為最大效能模式
主庫v$database.protection_mode \v$database.protection_level由MAXIMUM AVAILABILITY\MAXIMUM AVAILABILITY變成MAXIMUM AVAILABILITY\RESYNCHRONIZATION,且主庫正常運作可以正常多次執行alter system archive log current。重啟備庫DB至 startup和監聽後,備庫執行alter database recover managed standby database using current logfile disconnect from session;就可以了,並不需要一定要執行alter database recover managed standby database disconnect from session;再alter database recover managed standby database cancel;再alter database recover managed standby database using current logfile disconnect from session;說明最大可用模式與最大保護模式不同的是,如果故障導致主資料庫無法寫重做流到異地備重做日誌時,即當最大可用模式不能實現時,自動降級為最大效能模式(但是主資料庫不會關閉且主庫protection_mode不變,只是主庫protection_level變成RESYNCHRONIZATION,說明這個自動降級是一種隱性的狀態非表現在protection_mode和protection_level中),這樣的結果使得日誌同步不再實時。
RESYNCHRONIZATION的意思:再同步\重新同步
官方文件推薦的標準操作的一次實驗過程
SQL> select database_role, switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PHYSICAL STANDBY NOT ALLOWED
ORACLE官方文件資訊:A value of either TO PRIMARY or SESSIONS ACTIVE indicates that the standby database is ready to be switched to the primary role
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
SQL> select database_role, switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PHYSICAL STANDBY TO PRIMARY
ORACLE官方文件資訊:A value of either TO PRIMARY or SESSIONS ACTIVE indicates that the standby database is ready to be switched to the primary role
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;(會把原來open read only模式切換為mouted模式)
SQL> select database_role, switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PRIMARY NOT ALLOWED
SQL> ALTER DATABASE OPEN;
切換實驗用到的一系列驗證的語句
select STATUS from v$instance;
select OPEN_MODE,DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
alter database recover managed standby database finish force;
select STATUS from v$instance;
select OPEN_MODE,DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
alter database commit to switchover to primary with session shutdown;
select STATUS from v$instance;
select OPEN_MODE,DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
alter database open;
select STATUS from v$instance;
select OPEN_MODE,DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
主庫MAXIMUM PERFORMANCE時備庫Mount和open各來一次
Standby是MOUNT狀態
Standby是OPNE狀態
主庫MAXIMUM AVAILABILITY時備庫open來一次
Standby是OPEN狀態(不用mount是因為mount無法驗證資料是否實時同步過來了,mount時無法select 使用者建立的表)
主庫MAXIMUM PROTECTION時備庫open來一次
主庫圖片
備庫圖片
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2122405/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- dataguard之物理standby庫failover 切換AI
- 【DATAGUARD】物理dg的failover切換(六)AI
- DataGuard模擬FailOver實驗AI
- Oracle 10g DataGuard物理主備切換-switchover與failoverOracle 10gAI
- 實戰dataguard主從切換
- oracle dataguard 切換Oracle
- 主備切換(failover)AI
- Oracle dataguard failover 實戰OracleAI
- 【DataGuard】物理Data Guard之Failover轉換AI
- Oracle DataGuard切換步驟Oracle
- DataGuard切換保護模式模式
- oracle 之dataguard standby 切換Oracle
- 【DATAGUARD】Oracle Dataguard物理備庫切換最佳實踐(sqlplus)OracleSQL
- dataguard主備switchover互切實驗及理解
- 【DataGuard】Oracle DataGuard 資料保護模式切換Oracle模式
- oracle11g dataguard切換Oracle
- RAC環境STANDBY的FAILOVER切換AI
- Oracle Failover - TAF 透明應用切換OracleAI
- 物理Standby角色切換作業failoverAI
- DATA GUARD物理STANDBY的FAILOVER切換AI
- 【DATAGUARD】物理dg配置客戶端無縫切換 (八.2)--Fast-Start Failover 的配置客戶端ASTAI
- Oracle 11.2.0.4 physical dataguard和snapshot dataguard切換Oracle
- dataguard 切換後更換IP,service_name
- Oracle DataGuard switchover切換一例Oracle
- DataGuard主備庫切換步驟
- dataguard之物理standby 日誌切換
- 【DATAGUARD】物理dg的switchover切換(五)
- DataGuard:Physical Standby FailoverAI
- 單節點DG的failover切換介紹AI
- RAC環境LOGICAL STANDBY的FAILOVER切換AI
- openGauss主備切換之switchover與failoverAI
- dataguard 手動切換,檢查指令碼指令碼
- 10g_dataguard_failoverAI
- DataGuard:Logical Standby FailoverAI
- MySQL高可用之MHA切換測試(switchover & failover)MySqlAI
- 11g DataGuard實現故障轉移(Failover)AI
- DataGuard---->物理StandBy的角色切換之switchover
- 基於多種場景DataGuard切換方案