熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle 9i Data Guard進行數據庫的災難防護

2022-06-13   來源: Oracle 

  Oraclei Data Guard 通過使用稱為standby database的數據庫來防止出現數據的災難它通過將primary database數據庫的重做日志傳到並應用到standby database數據庫來使standby database數據庫與primary database數據庫同步
  
  可以將重做日志直接從primary database數據庫同步寫到standby database數據庫來完成完全沒有數據損失的災難保護這會給primary database數據庫的性能帶來一定的性能損失
  
  可以將歸檔的重做日志從primary database數據庫異步寫到standby database數據庫來使primary database數據庫在極少損失性能的前提下最小化地減少數據的丟失
  
  如果重做日志數據到達standby database數據庫後快速應用到standby database數據庫則在primary database數據庫出現問題時可以快速地 failover 到standby database數據庫然而如果延緩一定時間後再應用重做日志數據可以避免primary database數據庫的錯誤快速地傳播到standby database數據庫
  
  如附圖所示當聯機重做日志在本地歸檔時它們同時通過 Oracle Net 傳送到了standby database
  
  數據庫數據保護級別
  可以用如下的方式設置standby database數據庫來達到不同的數據庫數據保護級別
  Guaranteed protection規定在修改主數據庫時至少有一個備用數據庫有效假如主(Primary Database)備(Standby Database)之間的連接中斷Oracle會通過中斷主實例的工作來防止主備數據庫之間的數據的不一致保證無數據丟失這種模式對數據庫性能的影響較大
  
  Instant protection規定在修改主數據庫時至少有一個備用數據庫有效與Guaranteed protection模式不同的是當主備數據庫之間的連接中斷時允許主備數據庫之間的數據的不一致並當恢復連接後解決數據不一致的現象這種模式對主數據庫的性能有較小的影響
  
  Rapid protection主數據庫的修改快速應用在備用數據庫上會出現數據丟失但對數據庫性能的影響小
  
  Delayed protection主數據庫的修改在延遲一定的時間後應用在備用數據庫上Rapid protection和Delayed protection模式即使在網絡連接有效時也允許主數據庫與所有的備用數據庫有數據分歧數據的丟失量等同於主數據庫聯機重做日志的未歸檔數這種方式對數據庫性能的影響小
  
  如何限制數據的丟失量
  在primary/standby配置下所有的歸檔日志被發送到了standby 節點這使standby 節點的數據保持著更新但是如果primary 數據庫意外關閉聯機的日志將會丟失因為它們尚未歸檔並發送到standby節點這使得 primary 和standby 數據庫之間會有一個差異
  
  Oraclei 可以用以下的方法來限制這個差異
  
  DBA可以選擇讓LGWR在將重做日志數據寫到本地磁盤的同時將數據發送到 standby 數據庫該功能稱為standby零數據丟失(standby zero data loss)這種方法從本質的角度講提供了遠程重做日志鏡像但帶來的問題是會極大地損失性能
  
  設置系統初始化參數ARCHIVE_LAG_TARGET該參數是一個日志文件開始使用到被發送到standby數據庫的時間間隔該參數的推薦值是 秒(需要注意的是沒有傳送到 standby 數據庫的已經提交的事務會丟失因此長的事務會使standby數據庫損失更多的數據)
  
  Oraclei Data Guard數據防護與Oracle Standby Database的關系Oracle Standby Database 是最經常使用的最有效的災難解決方案在過去版本的基礎上Oraclei 又進行了許多改進使其功能遠遠超過了基本的災難恢復要求通過將復雜的工作自動化並對監控警告以及控制機制的大規模改進Standby Database 和一些新的模塊可以幫助DBA 從錯誤操作癱瘓以及其它的災難中恢復(這些災難都可能毀掉數據庫)另外通過使用Oraclei Standby Database由於硬件和軟件升級造成的宕機時間也可以極度縮短
  
  Oraclei 將改進過的版本的Standby Database功能與幾個新增加的防止用戶錯誤和癱瘓的模塊合起來稱為Oraclei Data Guard
  
  Oracle Automated Standby Database 提供了創建和自動維護生產數據庫拷貝的手段來防止災難的發生Oracle Automated Standby Database 具有以下的功能
  
  當primary database 產生日志後系統自動用歸檔日志更新standby databases一個primary database可以最多有個standby databases個standby databases是與primary database完全一樣的拷貝它們都可以接管primary database的處理
  
  Oracle使用標准的恢復方法來將歸檔日志應用到每個standby databases這些日志的應用是自動的DBA也可以人工應用這些日志
  
  primary database 處於打開和活動狀態而standby database處於恢復或者打開只讀狀態
  
  大多數的基於Oracle的災難保護方案包括一個Automated Standby Database因為Oracle數據庫可以用備份和日志恢復所以任何應用都可以使用Automated Standby Database通過Oracle Net傳輸歸檔日志對primary database的性能影響可以忽略不計
  
  物理的Standby Database和邏輯的Standby Database
  
  Standby Database可以分為物理的Standby Database和邏輯的Standby Database
  
  物理 Standby Database物理 Standby Database是Oracle Automated Standby Database的Oraclei版本它們之間只有一個差異日志傳輸服務現在是一個分離的模塊並支持物理standby database和新的邏輯standby database
  
  物理Standby Database的含義是Standby Database在物理上與primary database 一樣因為恢復是使用 ROWID 一塊對一塊進行的Standby Database的數據塊與primary database的數據快一樣數據庫模式一定是一樣的且不能以讀/寫的方式打開
  
  邏輯 Standby Database邏輯 Standby Database是將歸檔的日志轉化為SQL事務並將它們應用到打開的Standby Database因為數據庫是打開的它在物理上與primary database是不一樣的然而從邏輯角度講Standby Database與primary database是一樣的因此可以接管primary database的處理在這種情況下Standby Database還可以並發地進行其它的工作例如建立一些與primary database不一樣的索引和物化視圖完成決策支持等任務
  
  邏輯 Standby Database 是最重要的數據保護特性就像物理 standby database一樣它使用歸檔的日志在standby database上進行處理在primary database出現問題的情況下也沒有問題
  
  當選擇使用物理standby database邏輯standby database或兩者都用時要考慮以下一系列的因素
  
  邏輯standby database可用於兩個目的當要對邏輯standby database進行改變時其數據庫可以打開
  
  邏輯standby database需要DBA更高的技能
  
  使數據保護極大化的解決方案通常包括邏輯的和物理的standby databases數據庫Failover和Switchover當主數據庫發生宕機且不能及時恢復時Oracle會丟棄主數據庫將備用數據庫轉變為主數據庫當 failover之後備用數據庫變成為主數據庫從而丟失了備用數據庫的所有能力也就是說不能再返回到備用模式
  
  Failover 有以下特點
  主數據庫offline備用數據庫online這種操作由系統和軟件失敗引起
  
  即使在備用數據庫上應用重做日志也可能出現數據丟失的現象除非備用數據庫運行在guaranteed protection模式下
  
  原主數據庫重新使用時必須reinstantiated(start instance)
  
  其它的備用數據庫也需reinstantiated
  
  在主數據庫正常工作時Oracle 允許 DBA 將主數據庫切換到備用數據庫此備用數據庫變為主數據庫而原主數據庫變為備用數據庫
  
  數據庫的切換可以從主數據庫角色切換到備用數據庫角色也可從備用數據庫角色切換到主數據庫角色
  
  Switchover 有以下特點
  故意將主數據庫offline而將另一備用數據庫online可以如使用Switchover 功能完成系統的平滑升級工作
  
  即使在備用數據庫上不應用重做日志也不會造成數據的丟失
  
  數據庫不需reinstantiated這使主數據庫幾乎能立即在備用數據庫上恢復它的功能因此可經常進行定期維護而不需中斷操作
  
  Oraclei Data Guard的一些部件日志傳輸服務(Log Transport Services)
  
  Log Transport Services會被物理的和邏輯的standby database 都用到它提供的功能包括控制不同的日志傳輸機制日志傳輸錯誤處理和報告以及在系統失敗後獲取丟失的日志使用任何新的日志傳輸模式數據的保護都可以得到保證
  
  Oraclei Data Guard Broker
  Data Guard broker提供了對日志傳輸服務的監測控制和自動化以及邏輯和物理standby的部件例如通過只用一個命令就可以啟動 failoverData Guard broker可被用於控制主要角色從primary到任何一種standby database轉移的整個過程用戶可以從種不同的界面來選擇進行角色轉換使standby database 從primary database接管生產數據庫的處理一種選擇是使用新的Oracle Enterprise Manager Data Guard Manager該圖形用戶界面工具可進行大多的配置工作和操作功能另一種選擇是一個命令行工具它提供了基本的監測改變角色需要的所有命令以及配置和設置Oraclei Data Guard環境的能力
  
  Data Guard Manager 是Oracle Enterpr
From:http://tw.wingwit.com/Article/program/Oracle/201311/17072.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.