袁超
摘 要 在多數(shù)企業(yè)里,信息化支撐著各種業(yè)務(wù)。很多企業(yè)關(guān)注的不僅僅是業(yè)務(wù)的安全問題,對于業(yè)務(wù)的容災(zāi)能力、災(zāi)難發(fā)生后的恢復(fù)也非常重視。本文對甲骨文公司DG產(chǎn)品進(jìn)行了研究,結(jié)合本人參與的災(zāi)備系統(tǒng)實(shí)踐經(jīng)驗(yàn),為企業(yè)的災(zāi)備系統(tǒng)建設(shè)提供了一種容災(zāi)技術(shù)方案和可借鑒的建設(shè)經(jīng)驗(yàn)。
關(guān)鍵詞 災(zāi)備系統(tǒng);容災(zāi)技術(shù):DATAGUARD
引言
災(zāi)備系統(tǒng)也稱為災(zāi)難備份系統(tǒng),它是企業(yè)預(yù)先建立的、具備業(yè)務(wù)運(yùn)行環(huán)境的備份系統(tǒng),在短時間內(nèi)能恢復(fù)業(yè)務(wù)系統(tǒng)的正常運(yùn)行。
通常企業(yè)的業(yè)務(wù)系統(tǒng)由許多硬件和軟件組成,而數(shù)據(jù)庫系統(tǒng)是其中最重要的一環(huán),因?yàn)樗鎯χ髽I(yè)最有價值的資產(chǎn):數(shù)據(jù)。當(dāng)災(zāi)難發(fā)生導(dǎo)致生產(chǎn)系統(tǒng)無法提供服務(wù)時,災(zāi)備系統(tǒng)就需要暫時接管。ORACLE DG技術(shù)通過將生產(chǎn)數(shù)據(jù)同步到災(zāi)備,并可以在短時間內(nèi)完成主備角色切換,從而保證業(yè)務(wù)系統(tǒng)的可用性。
1ORACLE DG技術(shù)原理
1.1 DG概述
通過創(chuàng)建、維護(hù)、管理和監(jiān)視一個或多個備庫,使生產(chǎn)庫能夠應(yīng)對災(zāi)難的發(fā)生而不丟失數(shù)據(jù),Oracle DG提供的是一整套技術(shù)手段。這些備庫作為生產(chǎn)庫的副本由DG來進(jìn)行維護(hù)。當(dāng)生產(chǎn)庫計(jì)劃內(nèi)或計(jì)劃外停機(jī)無法提供服務(wù)時,DG可以將任何備庫切換為生產(chǎn)角色,從而降低業(yè)務(wù)的停機(jī)時間。
1.2 DG工作原理
當(dāng)主庫的LGWR進(jìn)程寫日志時,LNS進(jìn)程從Redo buffer中讀取日志數(shù)據(jù),通過ONS將日志數(shù)據(jù)傳輸?shù)絺鋷焐?備庫上的RFS進(jìn)程接收日志數(shù)據(jù)并寫到備用日志文件中;應(yīng)用服務(wù)驗(yàn)證日志數(shù)據(jù)并應(yīng)用,從而與主庫數(shù)據(jù)保持一致。
1.3 DG日志傳輸方式和備庫類型
DG有兩種日志傳輸方式:同步和異步。
同步模式下只有當(dāng)LNS進(jìn)程確認(rèn)日志數(shù)據(jù)被傳輸?shù)絺鋷烨冶粦?yīng)用后,主庫上的提交操作才會被成功執(zhí)行。異步模式下LGWR無須等待LNS的確認(rèn)信息即可在主庫上執(zhí)行提交,對主庫的性能幾乎沒有任何的影響。
DG包含三種備庫類型:
物理備庫:主備庫的物理結(jié)構(gòu)完全相同。通過日志應(yīng)用與主庫保持同步。邏輯備庫:與主庫有相同的邏輯信息,但物理結(jié)構(gòu)可能不同。通過SQL應(yīng)用與主庫保持同步??煺諅鋷欤核鼜闹鲙旖邮杖罩緮?shù)據(jù),但并不應(yīng)用。只有當(dāng)它轉(zhuǎn)換為物理備庫時,才開始應(yīng)用日志數(shù)據(jù)。
1.4 DG保護(hù)模式和故障切換
DG支持最大性能、最大可用、最大保護(hù)三種保護(hù)模式:
運(yùn)行在最大性能模式時主庫事務(wù)正常提交,備庫故障不會影響到主庫的運(yùn)行;運(yùn)行在最大可用模式時要求主庫的事務(wù)能夠提交的條件是至少一個備庫收到日志數(shù)據(jù)后;最大保護(hù)模式下主庫日志不能寫入備庫時,會自動關(guān)閉。
DG提供了switchover和failover兩種切換方法。
failover是主庫發(fā)生災(zāi)難時的故障切換;switchover是計(jì)劃內(nèi)的角色轉(zhuǎn)換。
2ORACLE DG在災(zāi)備項(xiàng)目中的實(shí)際應(yīng)用
2.1 DG部署環(huán)境要求
在實(shí)際項(xiàng)目的DG部署中需要滿足以下關(guān)鍵要求:
(1)主備庫服務(wù)器的操作系統(tǒng)版本必須一致;
(2)主備庫的數(shù)據(jù)庫軟件版本、補(bǔ)丁號必須一致;
(3)備庫安裝數(shù)據(jù)庫軟件后,不必創(chuàng)建庫;
(4)主備庫的DB_UNIQUE_NAME必須不同;
(5)生產(chǎn)和災(zāi)備之間的網(wǎng)絡(luò)須連通;
(6)建議采用相同型號和配置的服務(wù)器。
2.2 日志傳輸方式和保護(hù)模式選擇
災(zāi)備建設(shè)中建議最大保護(hù)、最大可用模式使用同步日志傳輸模式,最大性能使用異步日志傳輸模式。
在實(shí)際的實(shí)施過程中,業(yè)務(wù)系統(tǒng)和數(shù)據(jù)丟失之間的關(guān)系需要平衡。如果采用最大保護(hù)模式,雖然可以實(shí)現(xiàn)零數(shù)據(jù)丟失,但是只要備庫出現(xiàn)問題,主庫就會自動關(guān)閉,業(yè)務(wù)系統(tǒng)就會中斷,此種模式下建議配置2個以上的備庫。最大可用模式雖然也是同步傳輸,但不會立即關(guān)閉,它會降級到最大性能模式,直到故障解除。最大性能模式不受備庫故障的影響,而且能在備庫恢復(fù)后補(bǔ)傳日志數(shù)據(jù)。在實(shí)際的項(xiàng)目中,如果生產(chǎn)和災(zāi)備間的網(wǎng)絡(luò)質(zhì)量能夠保證,延時能低于5ms,建議采用最大可用性模式;如果延時較大,建議采用最大性能模式。
2.3 備庫類型的選擇
災(zāi)備系統(tǒng)建設(shè)的初衷就是作為生產(chǎn)系統(tǒng)的備份,另外再分擔(dān)部分業(yè)務(wù)系統(tǒng)查詢工作。11G發(fā)布后,新增了ADG功能,備庫與主庫同步時,能以只讀模式打開,可以進(jìn)行數(shù)據(jù)查詢。由于物理備庫是基于塊對塊級別拷貝技術(shù),因此效率要高于邏輯備庫,且不會有SQL性能問題。在實(shí)際應(yīng)用中,建議配置物理備庫,完全能滿足企業(yè)需求。
2.4 災(zāi)備系統(tǒng)切換演練
通過對災(zāi)備系統(tǒng)進(jìn)行定期切換演練,可以驗(yàn)證和檢查災(zāi)備系統(tǒng)的容災(zāi)功能。數(shù)據(jù)庫層面可通過DG的switchover來驗(yàn)證。
switchover和failover之間的差異是:switchover是計(jì)劃內(nèi)的角色轉(zhuǎn)換,不會破壞現(xiàn)有DG架構(gòu)。因而,可以更安全地執(zhí)行切換演練。而failover則是破壞現(xiàn)有的DG架構(gòu),雖然可以執(zhí)行切換演練,但演練結(jié)束后需要重新配置DG架構(gòu),對于以演練為目的切換來說,代價太大。所以在實(shí)際的災(zāi)備切換演練中,執(zhí)行switchover就能達(dá)到目的??梢允褂肈G Broker工具來執(zhí)行切換,只需一條命令,一般能在2分鐘內(nèi)切換完成。
2.5 網(wǎng)絡(luò)帶寬要求
假設(shè)主庫的日志數(shù)據(jù)在業(yè)務(wù)最繁忙時生成的速度為1MB/s,那么對帶寬傳輸速度的最低要求就是1MB/s,帶寬的大小為1MB/s*8=8M,考慮到網(wǎng)絡(luò)損耗假設(shè)為80%,實(shí)際帶寬需求為10M。計(jì)算公式為:1/0.8*8=10Mbps。
在實(shí)際的項(xiàng)目中,不僅要考慮帶寬是否滿足日志傳輸?shù)囊?,還要考慮是否滿足災(zāi)難恢復(fù)的要求。帶寬越大,災(zāi)難恢復(fù)花費(fèi)的時間就越少,對業(yè)務(wù)的影響就越小。所以一般要求帶寬必須為千兆網(wǎng)絡(luò)。
3結(jié)束語
企業(yè)都希望自己的數(shù)據(jù)能得到最好的保護(hù),不管發(fā)生何種災(zāi)難,數(shù)據(jù)都不會丟失。災(zāi)備系統(tǒng)是一個復(fù)雜的系統(tǒng)工程,可以提升企業(yè)應(yīng)對災(zāi)難發(fā)生的能力。而Oracle DG容災(zāi)技術(shù)能完善企業(yè)的災(zāi)備系統(tǒng),避免數(shù)據(jù)丟失,保護(hù)企業(yè)的投資,對企業(yè)來說具有重要意義。
參考文獻(xiàn)
[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.