袁超
摘 要 在多數企業里,信息化支撐著各種業務。很多企業關注的不僅僅是業務的安全問題,對于業務的容災能力、災難發生后的恢復也非常重視。本文對甲骨文公司DG產品進行了研究,結合本人參與的災備系統實踐經驗,為企業的災備系統建設提供了一種容災技術方案和可借鑒的建設經驗。
關鍵詞 災備系統;容災技術:DATAGUARD
引言
災備系統也稱為災難備份系統,它是企業預先建立的、具備業務運行環境的備份系統,在短時間內能恢復業務系統的正常運行。
通常企業的業務系統由許多硬件和軟件組成,而數據庫系統是其中最重要的一環,因為它存儲著企業最有價值的資產:數據。當災難發生導致生產系統無法提供服務時,災備系統就需要暫時接管。ORACLE DG技術通過將生產數據同步到災備,并可以在短時間內完成主備角色切換,從而保證業務系統的可用性。
1ORACLE DG技術原理
1.1 DG概述
通過創建、維護、管理和監視一個或多個備庫,使生產庫能夠應對災難的發生而不丟失數據,Oracle DG提供的是一整套技術手段。這些備庫作為生產庫的副本由DG來進行維護。當生產庫計劃內或計劃外停機無法提供服務時,DG可以將任何備庫切換為生產角色,從而降低業務的停機時間。
1.2 DG工作原理
當主庫的LGWR進程寫日志時,LNS進程從Redo buffer中讀取日志數據,通過ONS將日志數據傳輸到備庫上;備庫上的RFS進程接收日志數據并寫到備用日志文件中;應用服務驗證日志數據并應用,從而與主庫數據保持一致。
1.3 DG日志傳輸方式和備庫類型
DG有兩種日志傳輸方式:同步和異步。
同步模式下只有當LNS進程確認日志數據被傳輸到備庫且被應用后,主庫上的提交操作才會被成功執行。異步模式下LGWR無須等待LNS的確認信息即可在主庫上執行提交,對主庫的性能幾乎沒有任何的影響。
DG包含三種備庫類型:
物理備庫:主備庫的物理結構完全相同。通過日志應用與主庫保持同步。邏輯備庫:與主庫有相同的邏輯信息,但物理結構可能不同。通過SQL應用與主庫保持同步。快照備庫:它從主庫接收日志數據,但并不應用。只有當它轉換為物理備庫時,才開始應用日志數據。
1.4 DG保護模式和故障切換
DG支持最大性能、最大可用、最大保護三種保護模式:
運行在最大性能模式時主庫事務正常提交,備庫故障不會影響到主庫的運行;運行在最大可用模式時要求主庫的事務能夠提交的條件是至少一個備庫收到日志數據后;最大保護模式下主庫日志不能寫入備庫時,會自動關閉。
DG提供了switchover和failover兩種切換方法。
failover是主庫發生災難時的故障切換;switchover是計劃內的角色轉換。
2ORACLE DG在災備項目中的實際應用
2.1 DG部署環境要求
在實際項目的DG部署中需要滿足以下關鍵要求:
(1)主備庫服務器的操作系統版本必須一致;
(2)主備庫的數據庫軟件版本、補丁號必須一致;
(3)備庫安裝數據庫軟件后,不必創建庫;
(4)主備庫的DB_UNIQUE_NAME必須不同;
(5)生產和災備之間的網絡須連通;
(6)建議采用相同型號和配置的服務器。
2.2 日志傳輸方式和保護模式選擇
災備建設中建議最大保護、最大可用模式使用同步日志傳輸模式,最大性能使用異步日志傳輸模式。
在實際的實施過程中,業務系統和數據丟失之間的關系需要平衡。如果采用最大保護模式,雖然可以實現零數據丟失,但是只要備庫出現問題,主庫就會自動關閉,業務系統就會中斷,此種模式下建議配置2個以上的備庫。最大可用模式雖然也是同步傳輸,但不會立即關閉,它會降級到最大性能模式,直到故障解除。最大性能模式不受備庫故障的影響,而且能在備庫恢復后補傳日志數據。在實際的項目中,如果生產和災備間的網絡質量能夠保證,延時能低于5ms,建議采用最大可用性模式;如果延時較大,建議采用最大性能模式。
2.3 備庫類型的選擇
災備系統建設的初衷就是作為生產系統的備份,另外再分擔部分業務系統查詢工作。11G發布后,新增了ADG功能,備庫與主庫同步時,能以只讀模式打開,可以進行數據查詢。由于物理備庫是基于塊對塊級別拷貝技術,因此效率要高于邏輯備庫,且不會有SQL性能問題。在實際應用中,建議配置物理備庫,完全能滿足企業需求。
2.4 災備系統切換演練
通過對災備系統進行定期切換演練,可以驗證和檢查災備系統的容災功能。數據庫層面可通過DG的switchover來驗證。
switchover和failover之間的差異是:switchover是計劃內的角色轉換,不會破壞現有DG架構。因而,可以更安全地執行切換演練。而failover則是破壞現有的DG架構,雖然可以執行切換演練,但演練結束后需要重新配置DG架構,對于以演練為目的切換來說,代價太大。所以在實際的災備切換演練中,執行switchover就能達到目的。可以使用DG Broker工具來執行切換,只需一條命令,一般能在2分鐘內切換完成。
2.5 網絡帶寬要求
假設主庫的日志數據在業務最繁忙時生成的速度為1MB/s,那么對帶寬傳輸速度的最低要求就是1MB/s,帶寬的大小為1MB/s*8=8M,考慮到網絡損耗假設為80%,實際帶寬需求為10M。計算公式為:1/0.8*8=10Mbps。
在實際的項目中,不僅要考慮帶寬是否滿足日志傳輸的要求,還要考慮是否滿足災難恢復的要求。帶寬越大,災難恢復花費的時間就越少,對業務的影響就越小。所以一般要求帶寬必須為千兆網絡。
3結束語
企業都希望自己的數據能得到最好的保護,不管發生何種災難,數據都不會丟失。災備系統是一個復雜的系統工程,可以提升企業應對災難發生的能力。而Oracle DG容災技術能完善企業的災備系統,避免數據丟失,保護企業的投資,對企業來說具有重要意義。
參考文獻
[1] 佚名.Oracle官方文檔:Oracle? Data Guard Concepts and Administration 11g Release 2 (11.2)[ED/OL].https://www.doc88.com/p-6701552258020.html,2016-11-13.
[2] Oracle官方文檔:Oracle? Data Guard Concepts and Administration 12c Release 2 (12.2)[ED/OL].https://docs.oracle.com/database/121/SBYDB/title.htm,2017-5-8.