【DG】Data Guard主備庫Switchover切換
一、 切換前檢查
1. 備庫檢查manager recovery 處於執行狀態
SQL> SELECT PROCESS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'MRP%';
2. 主庫檢查database 處於實時應用狀態
SQL> SELECT RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID=2;
RECOVERY_MODE
-----------------------
MANAGED REAL TIME APPLY
如果備庫沒有處於實時應用狀態,就需要重啟實時應用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
3. 確保主庫和備庫臨時檔案匹配
對於臨時檔案,確保主庫存在的臨時檔案備庫也應存在。在初始備庫建立後,主庫新建立的臨時檔案不會傳到備庫。主備庫執行以下SQL :
SQL> SELECT TMP.NAME FILENAME, BYTES, TS.NAME TABLESPACE
FROM V$TEMPFILE TMP, V$TABLESPACE TS WHERE TMP.TS#=TS.TS#;
如果查詢不匹配,需要立即修正不匹配內容。
4. 確保所有資料檔案均為online 狀態
SQL> SELECT NAME FROM V$DATAFILE WHERE STATUS='OFFLINE';
如果有資料檔案處於offline 狀態,在 switchover 之前需要將資料檔案 offline 。
5. 確保備庫不存在GAP
備庫執行
SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
1 8 0 82
如果沒有返回結果,則說明不存在GAP (斷檔);如果存在結果,則說明存在 GAP 。上述結果說明, GAP 內容包含歸檔日誌 sequence80,81,82 。需要主庫複製上述歸檔日誌,傳輸到備庫,並且註冊在備庫,如下
SQl> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';
二、 思路清晰
step1: 清理引數和 jobs
step2: 確保主庫切換狀態正常
step3: 主庫執行 switchover
step4: 檢查備庫切換狀態正常
step5: 備庫執行 switchover
step6: 開啟新主庫和備庫
step7: 新備庫實時應用日誌
step8: 檢查主備庫狀態
三、 switchover 切換
1. 清理可能阻塞切換的parameters and jobs
1) 檢視當前執行的JOBS
SQL> SELECT * FROM DBA_JOBS_RUNNING;
SQL> SELECT OWNER, JOB_NAME, START_DATE, END_DATE, ENABLED FROM DBA_SCHEDULER_JOBS WHERE ENABLED='TRUE' AND OWNER <> 'SYS' ;
如果有正在執行的job, 如果有必要就終止這些 job 。
2) 終止當前的job
SQL> EXECUTE DBMS_SCHEDULER.DISABLE(job_name);
2. 確保主庫switchover_status 正常
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
注:主庫的狀態應為to primary 或 session active 。如果主庫狀態為 session active ,那麼在切換時需要追加 with session shutdown 選項。如果主庫是 RAC ,那麼在切換前停止第二個節點。
3. 主庫執行switchover 到備庫
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION SHUTDOWN;
4. 檢查備庫switchover_status 正常
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
to primary
5. 備庫switchover 為主庫
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
此時,新主庫處於Mount 狀態,新備庫處於 shutdown 狀態
6. 開啟新主庫
SQL> alter database open;
7. 開啟新備庫
SQL> startup;
此時新備庫模式為read only ;
8. 新備庫實時應用日誌
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
9. 檢查主備庫狀態
SQL> select db_unique_name,open_mode,database_role,switchover_status from v$database;
---- end ----
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31529886/viewspace-2708832/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【DG】Data Guard主備庫Failove切換AI
- openGauss主備切換之switchover與failoverAI
- 12c data guard 使用 sqlplus 主備切換最佳實踐SQL
- Oracle DataGuard 主備切換 (switchover) oracle11gOracle
- Oracle 11g dg switchover切換操作流程Oracle
- 【DG】Data Guard搭建(physical standby)
- 使用Data Guard Broker進行Data Guard物理備用庫配置(Oracle 19c)Oracle
- Oracle:DG 的 switchoverOracle
- 【ASK_ORACLE】Oracle Data Guard(一)DG架構Oracle架構
- 主備庫記憶體不一致的Data Guard環境搭建記憶體
- DG的切換操作
- SQLServer2012映象主庫掛掉如何切換到映象備庫SQLServer
- dg切換操作文件
- oracle dg切換操作示例Oracle
- Oracle 單機切換為主備Oracle
- DataGuard---->物理StandBy的角色切換之switchover
- MySQL 5.7 主庫崩潰切備庫MySql
- DATA GUARD主庫丟失資料檔案的恢復(3)
- DATA GUARD主庫丟失資料檔案的恢復(1)
- DATA GUARD主庫丟失資料檔案的恢復(2)
- Mysql 5.6 Master和Slave 主備切換MySqlAST
- dg主庫建立檔案備庫未同步解決方法
- 使用Broker實現DG切換
- Oracle RAC DG手動切換Oracle
- 12c DG新特性 - Active Data Guard Far Sync (Doc ID 2179719.1)
- G008-ORACLE-DG ORACLE 19C Active Data Guard DML RedirectionOracle
- MySQL高可用之MHA切換測試(switchover & failover)MySqlAI
- Spring Boot中自定義註解+AOP實現主備庫切換Spring Boot
- 【ASK_ORACLE】Oracle Data Guard(二)物理備庫的概念和優勢Oracle
- 【ASK_ORACLE】Oracle Data Guard(四)快照備庫的概念和優勢Oracle
- Oracle DG異構主備支援Oracle
- 案例:DG主庫未設定force logging導致備庫壞塊
- 【ASK_ORACLE】Oracle Data Guard(三)邏輯備庫的概念和優勢Oracle
- Oracle 11g 一主多備切換方案Oracle
- RAC+單例項DG的切換單例
- ORACLE DG之備庫角色Oracle
- Data Guard備庫日誌的實時應用與非實時應用
- 【DG】Oracle之級聯DG--(cascade dg) --(一主一備一級聯)Oracle