軟件測試中Oralce關于災難防護的幾種關鍵技術綜述與分析比對
一、 Oracle Data Guard
Oracle9i推出了一種功能強大,更能有效地實施災難恢復的解決方案Oracle Data Guard。
Oracle Data Guard采用主數據庫正常運行,一或多個備用數據庫進行備份的方式保護數據庫,備用數據庫的備份、管理和監視工作都是自動完成的,當主數據庫宕機發生時,至少有一個備用數據庫馬上投入使用,使應用程序的運行不會間斷,避免了系統的癱瘓。
(一)、Data Guard的功能簡介
1.數據庫的切換
允許DBA將主數據庫切換到備用數據庫,此備用數據庫變為主數據庫,響應用戶的請求,而原主數據庫變為備用數據庫。Data Guard的這種特性保證了數據不會丟失,避免數據庫恢復期間無法處理用戶的請求。
2.通過分布式組態,增強數據庫的可用性
Oracle Data Guard是由主數據庫和一到多個備用數據庫構成,這些在Data Guard的環境中稱為站點,通常各個站點以松散的方式分布在各地,以網絡連接,所以,即使遇到地震、火災、洪水等自然災害,數據庫的數據也會得到很好地保護。Data Guard的結構由下圖所示:
3.同步主站點與備用站點的數據
在Data Guard環境中,將一個站點設置為主站點,用來響應用戶的請求,事務對數據庫所做的修改,以歸檔日志的形式由日志傳輸服務自動從主站點傳送到各個備用站點,以實現備用站點與主站點的同步。
4.防止數據庫的物理損壞
由于主站點的物理損壞不可能通過歸檔日志文件傳輸到備用站點,所以降低了由物理損壞帶給數據庫的風險。
(二)、數據庫的切換
將主數據庫切換到備用數據庫,此備用數據庫變為主數據庫,而原主數據庫變為備用數據庫。數據庫的切換可以從主數據庫角色切換到備用數據庫角色,也可從備用數據庫角色切換到主數據庫角色。
1.主數據庫的工作模式:
Guaranteed protection:
規定在修改主數據庫時,至少有一個備用數據庫有效。假如主備之間的連接中斷,通過中斷主實例來禁止數據的分歧,保證無數據丟失。這種模式對數據庫性能的影響最大。
Instant protection:
規定在修改主數據庫時,至少有一個備用數據庫有效。與Guaranteed protection模式不同的是當主備之間的連接中斷,允許數據分歧,并當恢復連接后,解決數據分歧的現象。無數據丟失,對主數據庫的性能有較小的影響。
Rapid protection:
指出主數據庫的修改在備用數據庫上有效。有數據丟失,最小化對數據庫性能的影響。
Delayed protection:
指出主數據庫的修改最終在備用數據庫上有效。Rapid protection和Delayed protection模式即使在網絡連接有效時,也允許主數據庫與所有的備用數據庫有數據分歧,數據的丟失量等同于主數據庫聯機重做日志的未歸檔數。最小化對數據庫性能的影響。
四種模式的區別詳見下表:
主數據庫 保護模式 |
保護策略 |
網絡連接 |
主數據庫 操作狀態 |
Switchover |
Failover |
Guaranteed |
保護 |
連接 |
無數據分歧 |
無數據丟失 |
無數據丟失 |
未連接 |
關閉實例 |
不可能 |
無數據丟失 | ||
Instant |
未保護 |
連接 |
無數據分歧 |
無數據丟失 |
無數據丟失 |
未連接 |
Delayed 保護模式 |
不可能 |
數據丟失 | ||
Rapid |
未保護 |
連接 |
存在數據分歧 |
無數據丟失 |
數據丟失 |
未連接 |
Delayed 保護模式 |
不可能 |
數據丟失 | ||
Delayed |
未保護 |
連接 |
存在數據分歧 |
無數據丟失 |
數據丟失 |
未連接 |
存在數據分歧 |
不可能 |
數據丟失 |
2.備用數據庫的工作模式:
Managed recovery mode:
最大化保護數據,主數據庫將聯機重做日志歸檔到備用數據庫,備用數據庫自動應用這些日志進行數據庫的恢復。
Read-only mode:
備用數據庫不能應用歸檔日志。在這種模式下,只能對備用數據庫進行查詢。當備用數據庫重新處于mount方式,主數據庫繼續將日志歸檔到備用數據庫上。
雖然備用數據庫不能同時處于兩種模式,但可在兩種模式間進行切換。在大多數的Data Guard環境中,備用數據庫應處于恢復管理模式。
3.Failover和Switchover的區別
Failover:
-
將主數據庫offline,備用數據庫online,這種操作由系統和軟件失敗引起。
-
即使在備用數據庫上應用重做日志,也可能出現數據丟失的現象,除非備用數據庫運行在guaranteed protection模式。
-
原主數據庫重新使用時必須重新啟動實例。
-
其它的備用數據庫也需重新啟動實例。
Switchover:
-
故意將主數據庫offline,而將另一備用數據庫online,它能夠切換到備用數據庫而不需同步操作。如:可使用Switchover完成系統的平滑升級。
-
即使在備用數據庫上不應用重做日志,也不會造成數據的丟失。
-
數據庫不需重新啟動實例。這使主數據庫幾乎能立即在備用數據庫上恢復它的功能,因此可經常進行定期維護而不需中斷操作。
Failover和Switchover的區別為:當Failover發生,備用數據庫切換為主數據庫之后,它丟失了備用數據庫的所有能力,也就是說,不能再返回到備用模式;而Switchover可以,備用數據庫可切換為主數據庫,也可從主數據庫再切換回備用數據庫。
4.主數據庫與備用數據庫的切換
當主數據庫操作在Guaranteed protection和Instant protection兩種模式下,可保證數據庫在切換的過程中不丟失數據,這意味著主數據庫的所有歸檔日志都必須應用在備用數據庫上。假如歸檔日志沒有完全應用,或主數據庫工作在Rapid和Delayed protection模式,數據庫的切換將導致數據的丟失,數據丟失的總量可由主數據庫歸檔日志路徑屬性和備用數據庫歸檔日志的應用來決定。
文章來源于領測軟件測試網 http://www.kjueaiud.com/