天天看點

Oracle dataguard 正常切換和應急切換

Oracle dataguard 正常切換和應急切換

oracle dataguard提供異地容災方案,能有效的防止單點故障和提供高可用技術,這裡介紹dataguard正常主備切換和應急切換(應急切換模拟主庫出現問題無法還原,備庫脫離dataguard接管主庫對外提供服務)

1)Oracle dataguard環境搭建

續上節環境: pridb 172.25.56.149

stydb 172.25.56.150

2)正常主備切換(switchover)

主庫pridb:

select switchover_status from v$database;(查詢目前狀态)

SWITCHOVER_STATUS

--------------------

SESSIONS ACTIVE

alter database commit to switchover to physical standby with session shutdown;(切換至standby模式)

重新啟動資料庫至mount狀态;

shutdown immediate

startup mount

select switchover_status from v$database;(再檢查狀态)

TO PRIMARY

alter database recover managed standby databasedisconnect;(開啟standby應用恢複模式)

檢查狀态

select open_mode,database_role from v$database;

OPEN_MODE  DATABASE_ROLE

----------             ----------------

MOUNTED       PHYSICAL STANDBY

備庫stydb:

select switchover_status from v$database;

alter database commit to switchover to primary;

重新啟動資料庫open

startup

OPEN     PRIMARY

至此原主庫切換至備庫,原備庫切換至主庫了

同步測試:

pridb(new):

select sequence#,applied from v$archived_log;

stydb(new):

PS:圖檔偷懶了,不過測試原理是一樣的,隻需要保證2邊sequence序列号一緻且最新的app傳回YES了,就說明備庫接收到應用且恢複了。

3)應急切換

(注:模拟主庫由于故障無法正常switchover,需要執行failover,強制備庫->pridb并接管業務)

1.備庫:

由于是failover,是以了解主庫這時候已經無法正常使用,隻需備庫切換至pridb

停止應用恢複模式

alter database recover managed standby database finish;

轉換standbydb為primary db

重新開機資料庫,恢複正常業務

OPEN_MODE       DATABASE_ROLE

OPEN                 PRIMARY

PS:failover将破壞dataguard模式,需要重新配置dataguard,聽說可以不用重新配置,不過本人未實驗成功,有方法的可以大家一起溝通下.