Oracle DataGuard主備切換(switchover)


Oracle DataGuard主備切換可以使用傳統的手動命令切換,也可以使用dgmgr切換,本文記錄手動切換。

 

(一)將主庫切換為物理備庫

STEP1:查看主庫狀態

SQL>  SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;

OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS    FOR DATAGUAR GUARD_S
-------------------- ---------------- -------------------- --- -------- -------
READ WRITE           PRIMARY          SESSIONS ACTIVE      YES DISABLED NONE

注意:需要檢查SWITCHOVER_STATUS參數,如果值為"SESSION ACTIVE"或者"TO STANDBY", 則主數據庫角色可以切換為備庫角色。


STEP2:將其切換到備庫,切換后,數據庫會關閉

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY [WITH SESSION SHUTDOWN];

注意:如果上一步的SWITCH_STATUS參數值為"TO STANDBY",則 WITH SESSION SHUTDOWN 可以省略。

 

STEP3:啟動到mount狀態

SQL> SHUTDOWN ABORT
SQL> STARTUP MOUNT

注意:11.2.0.4版本及其以上版本不需要執行"SHUTDOWN ABORT",因為數據庫已經在STEP2命令中關閉了。

 

(二) 將備庫切換成主庫並啟動到open
STEP1:查看備庫狀態

SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;

OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS    FOR DATAGUAR GUARD_S
-------------------- ---------------- -------------------- --- -------- -------
READ ONLY WITH APPLY PHYSICAL STANDBY TO PRIMARY           YES DISABLED NONE

注意:需要檢查SWITCH_STATUS參數,如果值為"SESSION ACTIVE"或"TO PRIMARY",則備庫可以切換為主庫。


STEP2: 切換到主庫

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY [WITH SESSION SHUTDOWN];

注意:如果上一步的SWITCH_STATUS參數值為"TO PRIMARY",則 WITH SESSION SHUTDOWN 可以省略。


STEP3: 此時數據庫為mount狀態,需打開數據庫

SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;

OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS    FOR DATAGUAR GUARD_S
-------------------- ---------------- -------------------- --- -------- -------
MOUNTED              PRIMARY          NOT ALLOWED          YES DISABLED NONE

SQL> ALTER DATABASE OPEN ;

Database altered.

SQL>  SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;

OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS    FOR DATAGUAR GUARD_S
-------------------- ---------------- -------------------- --- -------- -------
READ WRITE           PRIMARY          TO STANDBY           YES DISABLED NONE


(三)新的備庫開啟日志應用

SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

 

【完】

 

相關文檔:
1.Oracle DataGuard主備切換(switchover)
2.Oracle Dataguard故障轉移(failover)操作
3.Oracle DataGuard故障轉移(failover)后使用RMAN還原失敗的主庫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM