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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle dataguard failover 實戰OracleAI
- 【DATAGUARD】Oracle Dataguard物理備庫切換最佳實踐(sqlplus)OracleSQL
- DATAGUARD失敗切換
- DATAGUARD強行切換
- Oracle 11.2.0.4 physical dataguard和snapshot dataguard切換Oracle
- oracle11g dataguard切換Oracle
- openGauss主備切換之switchover與failoverAI
- Oracle Dataguard故障轉移(failover)操作OracleAI
- 基於單機的DataGuard切換文件
- MySQL高可用之MHA切換測試(switchover & failover)MySqlAI
- DataGuard---->物理StandBy的角色切換之switchover
- 基於多種場景DataGuard切換方案
- PostgreSQL 13 非同步流複製+failover切換(#2.3)-202104SQL非同步AI
- Oracle DataGuard 主備切換 (switchover) oracle11gOracle
- oracle 19c使用dgmgrl來執行switchover和failover切換OracleAI
- ORACLE 12C DATAGUARD環境搭建和主從切換Oracle
- ORA-19909(一次DataGuard Failover導致的故障AI
- 物理DataGuard客戶端無縫切換--客戶端TAF 配置客戶端
- oracle 11g dg broker 開啟fast-start failover自動故障切換OracleASTAI
- 用CSS實現tab切換CSS
- 使用Broker實現DG切換
- 【ASK_ORACLE】手動配置DataGuard的自動化Client Failover(故障轉移)的serviceOracleclientAI
- 【DATAGUARD】Dataguard遠端同步配置最佳實踐
- 程式切換(上下文切換)
- 用純css實現Tab切換CSS
- 雙buffer實現無鎖切換
- StoneDB 主從切換實踐方案
- HangFire多叢集切換及DashBoard登入驗證
- 棧切換
- 純CSS實現Tab欄的切換CSS
- jquery中點選切換的實現jQuery
- 用CSS實現Tab頁切換效果CSS
- 實現Vue專案主題切換Vue
- Label和input實現純CSS切換CSS
- WPF手動實現切換頁面
- 實現一個切換配方的功能
- Sass應用之實現主題切換
- 簡單實用的JDK版本切換JDK
- Flutter UI使用Provide實現主題切換FlutterUIIDE