Oracle dataguard 正常切换和应急切换
oracle dataguard提供異地容災方案,能有效的防止單點故障和提供高可用技術,這里介紹dataguard正常主備切換和應急切換(應急切換模擬主庫出現問題無法還原,備庫脫離dataguard接管主庫對外提供服務)
1)Oracle dataguard環境搭建
傳送門:Linux 安裝oracle10g 配置dataguard 介紹和步驟?http://blog.csdn.net/w63667329/article/details/7890417 續上節環境: 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;(再檢查狀態)
SWITCHOVER_STATUS
--------------------
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;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
alter database commit to switchover to primary;
重新啟動數據庫open
shutdown immediate
startup
select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
select open_mode,database_role from v$database;
OPEN_MODE ?DATABASE_ROLE
---------- ? ? ? ? ? ? ----------------
OPEN ? ? PRIMARY
至此原主庫切換至備庫,原備庫切換至主庫了
同步測試: pridb(new): select sequence#,applied from v$archived_log;
stydb(new): select sequence#,applied from v$archived_log;
PS:圖片偷懶了,不過測試原理是一樣的,只需要保證2邊sequence序列號一致且最新的app返回YES了,就說明備庫接收到應用且恢復了。
3)應急切換
(注:模擬主庫由于故障無法正常switchover,需要執行failover,強制備庫->pridb并接管業務)
1.備庫:
由于是failover,所以理解主庫這時候已經無法正常使用,只需備庫切換至pridb
停止應用恢復模式
alter database recover managed standby database finish;
轉換standbydb為primary db
alter database commit to switchover to primary;
重啟數據庫,恢復正常業務
shutdown immediate
startup
select open_mode,database_role from v$database;
OPEN_MODE ? ? ? DATABASE_ROLE
---------- ? ? ? ? ? ? ----------------
OPEN ? ? ? ? ? ? ? ? PRIMARY
PS:failover將破壞dataguard模式,需要重新配置dataguard,聽說可以不用重新配置,后續還需要研究一下
總結
以上是生活随笔為你收集整理的Oracle dataguard 正常切换和应急切换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用了JDK自带的jconsole查看T
- 下一篇: c#做端口转发程序支持正向连接和反向链接