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;
【完】
相關文檔: |