遠端磁盤鏡像是一種被廣泛應用的資料保護技術,然而在對 Oracle 資料庫進行備份的實際應用中,由于該技術本身所固有的局限,使得其無法很好地實作資料庫的完整備份,為此,本文提出以Or
acle的容災技術Data Guard,來實作Oracle資料庫的完整備份。 Data Guard是Oracle公司提出的資料庫容災技術,它提供了一種管理、監測和自動運作的體系結構,用于建立和維護一個或多個備份資料庫。與遠端磁盤鏡像技術的根本差別在于,Data Guard是在邏輯級,通過傳輸和運作資料庫日志檔案,來保持生産和備份資料庫的資料一緻性。一旦資料庫因某種情況而不可用時,備份資料庫将正常切換或故障切換為新的生産資料庫,以達到無資料損失或最小化資料損失的目的,為業務系統提供持續的資料服務能力。 Data Guard體系結構 一個Data Guard環境可配置一個生産資料庫和最多至9個備份資料庫系統,生産和備份資料庫之間通過Oracle Net技術互聯,并且沒有任何距離上的限制(Data Guard體系結構如圖2所示)。
實體備份資料庫 實體上提供了與生産資料庫在資料塊級的一緻性鏡像。實體備份資料庫是通過Redo Apply技術來保障資料鏡像能力。 邏輯備份資料庫 通過SQL Apply(即Log Miner)技術,将接收到的日志檔案還原成SQL語句,并在邏輯備份資料庫上執行,進而達到資料一緻性的目的。 Data Guard的保護模式 ● 最大保護模式: 該模式以犧牲生産資料庫性能為代價,換取無資料損失的能力。 ● 最大可用模式: 該模式也能提供無資料損失,對生産資料庫的影響較小。 ● 最大性能模式: 該模式允許少量資料損失,但能為生産資料庫提供最大性能。 與遠端磁盤鏡像技術比較 Data Guard和遠端磁盤鏡像技術的總體比較 遠端磁盤鏡像技術是存儲層的資料保護方案,對于Oracle資料庫而言,Oracle Data Guard提供了更有效、可行,更完備的資料庫容災方案。以下是兩種方案的總體比較:
異步遠端磁盤鏡像技術的潛在問題 遠端磁盤鏡像技術可采用異步方式,達到降低網絡延時、減輕對生産系統影響等目的。但用這種方式進行Oracle資料庫的鏡像,卻存在一個潛在問題:無法保證寫操作順序的一緻性(write-order consistency),導緻出現資料壞塊的可能性增大。最壞情況,可能導緻備份資料庫無法打開。 而Data Guard基于邏輯級,傳輸的是與業務邏輯完整性相關的日志檔案。Data Guard是以日志檔案為邊界,會自動檢驗日志檔案的完整性,并可進行斷點日志檔案的檢查(log gap detection),通過FAL背景程序自動重傳斷點日志檔案。是以,備份資料庫的一緻性會得到保證。 網絡傳輸量分析 網絡傳輸量的大小直接關系到容災方案實施的可行性。在原理上,Data Guard隻是傳輸一份日志檔案,而磁盤鏡像技術将傳輸資料檔案、聯機日志、歸檔日志、控制檔案等所有發生變化的檔案。例如,針對交易處理,Data Guard隻傳輸相應DML語句的日志資訊,而磁盤鏡像技術将傳輸該交易所涉及的所有資料塊,以及歸檔日志等資料。根據統計資料顯示,磁盤鏡像的網絡傳輸量是Data Guard的7倍,而磁盤I/O次數是Data Guard的27倍。 以某銀行業務系統為執行個體: 該系統日交易量達到高峰時,日志檔案将有60GB,網絡傳輸率要求6Mbps/秒。使用磁盤鏡像技術,網絡傳輸率則至少會達到6×7 = 42Mbps/秒。如果還要考慮DB2、CICS、MQ等系統對線路的複用,以及系統的擴充,即便采用155Mbps的線路,從廣域網絡建設和運作成本等考慮,磁盤鏡像進行資料庫容災也難以實施。 遠端災備分析 遠端磁盤鏡像技術由于受底層通信技術(光纖、ESCON等)限制,一般都有距離限制,如幾十或百公裡,如果要在廣域網實施遠端磁盤鏡像,則需要大量的網絡中繼和轉發裝置,這樣,網絡裝置投入将大量增加,而且網絡延時的增加,對生産系統的影響也将加大。 相比之下,Data Guard基于Oracle Net Services(即标準的TCP/IP協定) 傳輸資料。TCP/IP協定是ESCON之上的傳輸協定,由于在資訊包轉發、路由和擁塞控制等方面更為優化,同時TCP/IP與底層通信協定無關(以太網、ATM、SONET等),而且,TCP/IP可以并行地進行若幹資訊包的傳輸。是以,TCP/IP的效率更高、網絡延時更低,對生産系統的影響也更小。 資料保護能力分析 在各種故障中,故障率最高的是磁盤故障(Corruption)。一旦出現磁盤壞塊,磁盤鏡像技術将忠實地将這種錯誤傳播到備份資料庫的磁盤中,導緻備份資料庫無法使用。而由于Data Guard傳輸的是日志檔案,而且傳輸之前對日志檔案的完整性進行了校驗,是以,不可能發生因系統磁盤出現實體壞塊,或磁盤控制器故障等,将資料塊寫壞而導緻備份資料庫出現壞塊的情況。 投資回報率(ROI)分析 Data Guard軟體對硬體沒有特殊的要求,網絡隻要求TCP/IP。備份資料庫可以建立在相對低檔的系統和廉價的磁盤陣列中。而磁盤鏡像技術不僅需要單獨購買昂貴的磁盤鏡像軟體,而且對硬體要求也很苛刻。 此外,Data Guard具有備份資料庫的查詢統計功能,而磁盤鏡像技術建立的備份資料庫在正常情況下處于閑置狀态,隻有在發生故障時,才能投入應用;為降低生産資料庫的負載,Data Guard還可以将實體備份功能移植到備份資料庫進行,備份資料庫産生的實體備份資料,同樣可用于生産資料庫的恢複操作。 互為補充的關系 在實際應用中,Oracle資料庫與遠端磁盤鏡像技術應該是互為補充的關系。理論上,遠端磁盤鏡像可在存儲層實作所有系統的容災,而Data Guard則提供了更有效、可行、成本更低的Oracle資料庫災備方案。Oracle已推出了OSCP(Oracle's Storage Compatibility Program)計劃,有關存儲和硬體廠商可以與Oracle相關技術進行相容性驗證,使用者也可通過驗證名單選擇全面的災備技術。Oracle針對災備系統的應用需求,提出了以下基本建議: ● 對Oracle資料庫系統,選擇Data Guard方案; ● 對檔案系統和非Oracle系統,選擇遠端磁盤鏡像技術。 點評:Oracle——适用于資料庫的高效備份 亮點:Oracle Data Guard容災方案是專為資料庫備份而設計的,它提供了遠端磁盤鏡像技術所無法實作的功能,特别是在遠端資料庫備份過程中,Data Guard的優勢更加明顯。對于Oracle資料庫遠端異步備份而言,Data Guard則提供了更有效可行、成本更低的Oracle資料庫災備方案,而遠端磁盤鏡像技術卻無法保證寫操作順序的一緻性,導緻資料壞塊的可能性增大,甚至有可能使備份資料庫無法打開。另外在網絡資源占用上,Data Guard隻傳輸相應DML語句的日志資訊,而磁盤鏡像技術傳輸交易所涉及的所有資料塊及歸檔日志資料,其傳輸量是Data Guard的7倍。 更為關鍵的是,磁盤鏡像技術将忠實地将源磁盤中的錯誤傳播到備份資料庫的磁盤中,導緻備份資料庫無法使用。而Data Guard傳輸的是日志檔案,而且傳輸之前對日志檔案的完整性進行了校驗,是以,不可能發生損壞資料塊的現象,使得資料安全性得到提高。 不足:在實際應用中,Oracle Data Guard與遠端磁盤鏡像技術應該是互為補充的關系,遠端磁盤鏡像是在存儲層實作所有系統的容災,而Oracle Data Guard方案僅僅适用于對Oracle資料庫系統的容災備份。