王鵬
(洛陽光電技術(shù)發(fā)展中心,洛陽 471000)
隨著“大數(shù)據(jù)”時代的到來,數(shù)據(jù)已成為企業(yè)最為重要的資產(chǎn)之一,信息系統(tǒng)的容災(zāi)建設(shè)則成為保護(hù)企業(yè)數(shù)據(jù)的重要手段。某企業(yè)裝配MES系統(tǒng)使用人數(shù)眾多,生產(chǎn)過程中形成的重要數(shù)據(jù)文件存儲于該系統(tǒng)上,作為核心組件的數(shù)據(jù)庫一旦出現(xiàn)故障,將引起數(shù)據(jù)丟失,給該企業(yè)的科研生產(chǎn)造成嚴(yán)重的影響。本文通過研究和應(yīng)用Oracle高可用技術(shù)Data Guard,在該企業(yè)災(zāi)備中心建立裝配MES容災(zāi)數(shù)據(jù)庫,實(shí)現(xiàn)主備數(shù)據(jù)庫同步,提升了裝配MES系統(tǒng)的容災(zāi)能力,其數(shù)據(jù)的完整性指標(biāo)和故障恢復(fù)能力均得到了顯著提高。
某企業(yè)裝配MES系統(tǒng)運(yùn)行架構(gòu)如圖1所示,該系統(tǒng)目前所采用的數(shù)據(jù)保護(hù)方式是利用NetWorker虛擬磁帶庫技術(shù)將數(shù)據(jù)復(fù)制到備份存儲上,每天備份1次,雖然采取了一定的備份手段,但裝配MES系統(tǒng)的高可用性建設(shè)還存在以下問題:
圖1 裝配MES運(yùn)行架構(gòu)圖
(1)數(shù)據(jù)庫發(fā)生故障時,只能恢復(fù)到備份時間點(diǎn)以前的數(shù)據(jù),將丟失最近備份點(diǎn)到災(zāi)難發(fā)生時的業(yè)務(wù)數(shù)據(jù)(RPO大約為8小時);系統(tǒng)崩潰需要較長的故障恢復(fù)時間(RTO大約為3個小時),嚴(yán)重影響用戶的正常使用和業(yè)務(wù)系統(tǒng)的連續(xù)性;
(2)數(shù)據(jù)庫自身的容災(zāi)能力較弱,其管理和維護(hù)對系統(tǒng)管理員的依賴程度很高,人為的誤操作會造成數(shù)據(jù)丟失或邏輯錯誤,影響數(shù)據(jù)的完整性,同時也加大了系統(tǒng)管理員的壓力。
本文基于Oracle提供的數(shù)據(jù)保護(hù)技術(shù)——Data Guard,在某企業(yè)災(zāi)備中心建立裝配MES災(zāi)備數(shù)據(jù)庫,實(shí)現(xiàn)主備數(shù)據(jù)庫同步(圖2中雙箭頭實(shí)線)。正常情況下,用戶通過裝配MES應(yīng)用訪問主數(shù)據(jù)庫(圖2中單箭頭實(shí)線),當(dāng)主數(shù)據(jù)庫發(fā)生故障不能正常訪問時,用戶能夠通過應(yīng)用訪問災(zāi)備中心的容災(zāi)數(shù)據(jù)庫(圖2中單箭頭虛線);當(dāng)主數(shù)據(jù)庫恢復(fù)正常時,用戶通過裝配MES應(yīng)用繼續(xù)訪問原主數(shù)據(jù)庫。其運(yùn)行架構(gòu)如圖2所示:
圖2 裝配MES數(shù)據(jù)庫容災(zāi)架構(gòu)圖
為滿足某企業(yè)裝配MES數(shù)據(jù)庫的容災(zāi)需求,本文完成了重做日志傳輸、重做日志應(yīng)用及主備庫切換等主要功能模塊的設(shè)計與程序?qū)崿F(xiàn),并進(jìn)行了相關(guān)試驗(yàn)驗(yàn)證與性能分析,其設(shè)計原理圖如圖3所示:
圖3 裝配MES數(shù)據(jù)庫容災(zāi)原理圖
(1)重做日志傳輸功能
本文中主數(shù)據(jù)庫聯(lián)機(jī)重做日志由6組聯(lián)機(jī)重做日志文件構(gòu)成(REDO1-REDO6),每組大小為1GB,為保證主備數(shù)據(jù)庫端重做條目的一致性,且重做條目能被及時應(yīng)用至災(zāi)備數(shù)據(jù)庫的數(shù)據(jù)文件中,組成災(zāi)備數(shù)據(jù)庫的備重做日志的備重做日志文件設(shè)計為7組(SLOG1-SLOG7),每組大小與聯(lián)機(jī)日志文件一樣,均為1GB。聯(lián)機(jī)重做日志文件和備重做日志文件均能夠?qū)崿F(xiàn)自動切換和自動歸檔(寫滿一組切換至下一組,自動對寫滿的聯(lián)機(jī)重做或備重做日志文件進(jìn)行歸檔),且歸檔日志能夠?qū)崿F(xiàn)自動回收,釋放磁盤空間。
(2)歸檔日志自動回收功能
數(shù)據(jù)庫服務(wù)器和災(zāi)備服務(wù)器本地磁盤空間均為500GB,裝配MES數(shù)據(jù)庫每天產(chǎn)生的歸檔日志為50GB,歸檔日志寫滿磁盤空間時,就會導(dǎo)致主備數(shù)據(jù)庫均不能正常訪問。本文在主備數(shù)據(jù)庫端建立快速恢復(fù)區(qū)實(shí)現(xiàn)歸檔日志自動回收功能,即重做條目成功傳送至災(zāi)備數(shù)據(jù)庫后,主數(shù)據(jù)庫中快速恢復(fù)區(qū)內(nèi)相應(yīng)的歸檔數(shù)據(jù)就可以被自動覆蓋;備重做日志文件中的重做條目成功應(yīng)用至災(zāi)備數(shù)據(jù)庫后,備數(shù)據(jù)庫快速恢復(fù)區(qū)內(nèi)相應(yīng)的歸檔條目也可以被自動覆蓋;自動回收功能最大限度地保證了主備庫歸檔日志的保留時間(歸檔日志可用來對數(shù)據(jù)庫進(jìn)行恢復(fù)),本文中主備庫歸檔日志的保留時間大約為5天。
(3)重做日志應(yīng)用功能
該功能主要實(shí)現(xiàn)將傳送至備重做日志中的重做條目實(shí)時地應(yīng)用到災(zāi)備數(shù)據(jù)庫的數(shù)據(jù)文件中,實(shí)現(xiàn)主備數(shù)據(jù)庫的數(shù)據(jù)同步。
如圖3所示,主數(shù)據(jù)庫端產(chǎn)生的重做條目傳送到備重做日志文件后,介質(zhì)恢復(fù)進(jìn)程(MRP)應(yīng)用該重做條目,立刻修改災(zāi)備數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)塊,更新災(zāi)備數(shù)據(jù)庫中相應(yīng)的記錄信息。
(4)主備庫切換功能
該功能實(shí)現(xiàn)裝配MES主數(shù)據(jù)庫的正常切換和故障切換。
如圖3所示,正常切換功能用于系統(tǒng)升級測試,通過手動切換將Primary角色的主數(shù)據(jù)庫切換至Standby角色,將Standby角色的災(zāi)備數(shù)據(jù)庫切換至Primary角色;故障切換功能實(shí)現(xiàn)當(dāng)裝配MES主數(shù)據(jù)庫出現(xiàn)故障時,可以將災(zāi)備數(shù)據(jù)庫切換成Primary角色接替主數(shù)據(jù)庫正常工作,保證用戶可以正常訪問裝配MES系統(tǒng)。
本文的研究將裝配MES主數(shù)據(jù)庫部署在Red hat Linux 6.6(64位)操作系統(tǒng)平臺上,數(shù)據(jù)庫采用Oracle 11g R2(64位)企業(yè)版,生產(chǎn)數(shù)據(jù)存放在共享存儲EMC VNX5500上;裝配MES災(zāi)備數(shù)據(jù)庫部署在Red hat Linux 6.6(64位)操作系統(tǒng)平臺上,數(shù)據(jù)庫采用Oracle 11g R2(64位)企業(yè)版,災(zāi)備數(shù)據(jù)存放在共享存儲EMC CX240上,容災(zāi)拓?fù)鋱D如圖4所示。
圖4 裝配MES系統(tǒng)容災(zāi)拓?fù)涫疽鈭D
(1)重做傳輸功能測試
本試驗(yàn)利用聯(lián)機(jī)重做日志和備重做日志自動切換和自動歸檔的特性,查詢當(dāng)前聯(lián)機(jī)重做日志文件序列號和當(dāng)前備重做日志文件的序列號,如圖5、圖6所示,序列號相同且均為155780,對主數(shù)據(jù)庫進(jìn)行增、刪、改、更新產(chǎn)生的操作日志同步到了災(zāi)備數(shù)據(jù)庫端。
圖5 當(dāng)前聯(lián)機(jī)重做日志文件序列號
圖6 當(dāng)前備重做日志文件序列號
(2)歸檔日志自動回收功能測試
本試驗(yàn)建立主備數(shù)據(jù)庫的快速恢復(fù)區(qū),快速恢復(fù)區(qū)大小均設(shè)置為300GB,將歸檔日志存放在快速恢復(fù)區(qū)內(nèi),查詢主備庫快速恢復(fù)區(qū)歸檔日志的空間使用率和可回收率,如圖7所示,主數(shù)據(jù)庫快速恢復(fù)區(qū)歸檔日志占用的空間為99.17%,這99.17%的歸檔日志均可被自動覆蓋進(jìn)行空間釋放,如圖8所示,災(zāi)備數(shù)據(jù)庫快速恢復(fù)區(qū)歸檔日志占用的空間為99.17%,其中97.3%的歸檔日志可被自動覆蓋進(jìn)行空間釋放,主備庫歸檔日志均可實(shí)現(xiàn)自動回收。
圖7 主數(shù)據(jù)庫快速恢復(fù)區(qū)
圖8 災(zāi)備數(shù)據(jù)庫快速恢復(fù)區(qū)狀態(tài)
(3)重做應(yīng)用功能測試
本試驗(yàn)在裝配MES主數(shù)據(jù)中建立測試表,對表中數(shù)據(jù)進(jìn)行添加、修改、刪除、更新等操作,然后分別提交這些操作,經(jīng)查詢?yōu)膫鋽?shù)據(jù)庫中存在相同的測試表,如圖9所示,且表中字段、數(shù)據(jù)與主數(shù)據(jù)庫中相同,從主數(shù)據(jù)庫傳輸至災(zāi)備數(shù)據(jù)庫的重做條目成功應(yīng)用至災(zāi)備數(shù)據(jù)庫中。
圖9 主備數(shù)據(jù)庫中的測試表
(4)主備庫切換測試
本試驗(yàn)?zāi)M裝配MES主數(shù)據(jù)庫發(fā)生故障,如圖10、11所示,系統(tǒng)不能正常訪問;將災(zāi)備數(shù)據(jù)庫切換成Primary角色,切換后裝配MES系統(tǒng)能夠正常訪問,故障切換功能正常。
圖10 出現(xiàn)故障時系統(tǒng)
災(zāi)備數(shù)據(jù)庫切換:
SQL>ALTER DATABASE COMMIT TO SWITCHO?VER TO PRIMARY WITH SESSION SHUTDOWN
通過本文的研究和應(yīng)用,當(dāng)主數(shù)據(jù)庫發(fā)生故障時,災(zāi)備數(shù)據(jù)庫能夠快速接替主數(shù)據(jù)庫進(jìn)行工作;故障發(fā)生時,裝配MES系統(tǒng)數(shù)據(jù)的完整性指標(biāo)RPO(即業(yè)務(wù)數(shù)據(jù)的丟失量)由8小時降低為1小時,數(shù)據(jù)庫故障恢復(fù)時間RTO由3小時降低為0.5小時。
圖11 故障切換后系統(tǒng)
本文研究和應(yīng)用的容災(zāi)技術(shù)處于國際領(lǐng)先水平,該企業(yè)的同城異地容災(zāi)機(jī)房已經(jīng)投入使用,后續(xù)可利用本項(xiàng)目研究的數(shù)據(jù)庫高可用技術(shù),針對該企業(yè)的關(guān)鍵業(yè)務(wù)系統(tǒng)如 ERP、CAPP、PDM、TDM、門戶、RAC 集群,在異地容災(zāi)機(jī)房建立災(zāi)備數(shù)據(jù)庫,提高關(guān)鍵業(yè)務(wù)系統(tǒng)的容災(zāi)能力。
[1]王樹鵬,云曉春,余翔湛.容災(zāi)的理論與關(guān)鍵技術(shù)分析[J].計算機(jī)工程與應(yīng)用,2004(28):54-58.
[2]宋錫寧.面向海量數(shù)據(jù)災(zāi)難恢復(fù)的數(shù)據(jù)摘要技術(shù)的研究與實(shí)現(xiàn)[D].國防科學(xué)技術(shù)大學(xué),2014.
[3]Oracle.Data Guard Concepts and Administration 11g Release 2(11.2)[EB/OL].(2014).http://www.oracle.com/goto/maa.
[4]Wayne R.High Availability Becoming Highly Necessary[J].AS/400 Systems Management,1997,25(11):24.
[5]Ahluwalia K S,Jain A.High Availability Design Pattern[C].Proceedings of the 2006 Conference on Pattern Language of Programs,2006.
[6]翟永.國家基礎(chǔ)地理信息中心LAN FREE的SAN備份解決方案[J].計算機(jī)應(yīng)用研究,2001,18(5):87-89.
[7]韓德志,耿紅琴,李懷陽.高可用存儲性能網(wǎng)絡(luò)技術(shù)探析[J].計算機(jī)應(yīng)用研究,2004 21(8):22-26.
[8]Noh Sichoon,Kim Jeomgoo.A High Availability Clustering and Local Balancing Mechanism for Information Security Infrastructure System[C].Proceedings of the 2009 International Conference on Hybrid Information Technology,2009.
[9]Gaja Krishna Vaidyanatha.Implementing RAID on Oracle[EB/OL].http://www.quest.com/whitepapers/Raid1.pdf,2002/2003-05.
[10]黃國平.增強(qiáng)型多維產(chǎn)品 Oracle 7[J].航空兵器,1996(02).