王鵬
(洛陽光電技術發(fā)展中心,洛陽 471000)
隨著“大數(shù)據(jù)”時代的到來,數(shù)據(jù)已成為企業(yè)最為重要的資產(chǎn)之一,信息系統(tǒng)的容災建設則成為保護企業(yè)數(shù)據(jù)的重要手段。某企業(yè)裝配MES系統(tǒng)使用人數(shù)眾多,生產(chǎn)過程中形成的重要數(shù)據(jù)文件存儲于該系統(tǒng)上,作為核心組件的數(shù)據(jù)庫一旦出現(xiàn)故障,將引起數(shù)據(jù)丟失,給該企業(yè)的科研生產(chǎn)造成嚴重的影響。本文通過研究和應用Oracle高可用技術Data Guard,在該企業(yè)災備中心建立裝配MES容災數(shù)據(jù)庫,實現(xiàn)主備數(shù)據(jù)庫同步,提升了裝配MES系統(tǒng)的容災能力,其數(shù)據(jù)的完整性指標和故障恢復能力均得到了顯著提高。
某企業(yè)裝配MES系統(tǒng)運行架構(gòu)如圖1所示,該系統(tǒng)目前所采用的數(shù)據(jù)保護方式是利用NetWorker虛擬磁帶庫技術將數(shù)據(jù)復制到備份存儲上,每天備份1次,雖然采取了一定的備份手段,但裝配MES系統(tǒng)的高可用性建設還存在以下問題:

圖1 裝配MES運行架構(gòu)圖
(1)數(shù)據(jù)庫發(fā)生故障時,只能恢復到備份時間點以前的數(shù)據(jù),將丟失最近備份點到災難發(fā)生時的業(yè)務數(shù)據(jù)(RPO大約為8小時);系統(tǒng)崩潰需要較長的故障恢復時間(RTO大約為3個小時),嚴重影響用戶的正常使用和業(yè)務系統(tǒng)的連續(xù)性;
(2)數(shù)據(jù)庫自身的容災能力較弱,其管理和維護對系統(tǒng)管理員的依賴程度很高,人為的誤操作會造成數(shù)據(jù)丟失或邏輯錯誤,影響數(shù)據(jù)的完整性,同時也加大了系統(tǒng)管理員的壓力。
本文基于Oracle提供的數(shù)據(jù)保護技術——Data Guard,在某企業(yè)災備中心建立裝配MES災備數(shù)據(jù)庫,實現(xiàn)主備數(shù)據(jù)庫同步(圖2中雙箭頭實線)。正常情況下,用戶通過裝配MES應用訪問主數(shù)據(jù)庫(圖2中單箭頭實線),當主數(shù)據(jù)庫發(fā)生故障不能正常訪問時,用戶能夠通過應用訪問災備中心的容災數(shù)據(jù)庫(圖2中單箭頭虛線);當主數(shù)據(jù)庫恢復正常時,用戶通過裝配MES應用繼續(xù)訪問原主數(shù)據(jù)庫。其運行架構(gòu)如圖2所示:

圖2 裝配MES數(shù)據(jù)庫容災架構(gòu)圖
為滿足某企業(yè)裝配MES數(shù)據(jù)庫的容災需求,本文完成了重做日志傳輸、重做日志應用及主備庫切換等主要功能模塊的設計與程序?qū)崿F(xiàn),并進行了相關試驗驗證與性能分析,其設計原理圖如圖3所示:

圖3 裝配MES數(shù)據(jù)庫容災原理圖
(1)重做日志傳輸功能
本文中主數(shù)據(jù)庫聯(lián)機重做日志由6組聯(lián)機重做日志文件構(gòu)成(REDO1-REDO6),每組大小為1GB,為保證主備數(shù)據(jù)庫端重做條目的一致性,且重做條目能被及時應用至災備數(shù)據(jù)庫的數(shù)據(jù)文件中,組成災備數(shù)據(jù)庫的備重做日志的備重做日志文件設計為7組(SLOG1-SLOG7),每組大小與聯(lián)機日志文件一樣,均為1GB。聯(lián)機重做日志文件和備重做日志文件均能夠?qū)崿F(xiàn)自動切換和自動歸檔(寫滿一組切換至下一組,自動對寫滿的聯(lián)機重做或備重做日志文件進行歸檔),且歸檔日志能夠?qū)崿F(xiàn)自動回收,釋放磁盤空間。
(2)歸檔日志自動回收功能
數(shù)據(jù)庫服務器和災備服務器本地磁盤空間均為500GB,裝配MES數(shù)據(jù)庫每天產(chǎn)生的歸檔日志為50GB,歸檔日志寫滿磁盤空間時,就會導致主備數(shù)據(jù)庫均不能正常訪問。本文在主備數(shù)據(jù)庫端建立快速恢復區(qū)實現(xiàn)歸檔日志自動回收功能,即重做條目成功傳送至災備數(shù)據(jù)庫后,主數(shù)據(jù)庫中快速恢復區(qū)內(nèi)相應的歸檔數(shù)據(jù)就可以被自動覆蓋;備重做日志文件中的重做條目成功應用至災備數(shù)據(jù)庫后,備數(shù)據(jù)庫快速恢復區(qū)內(nèi)相應的歸檔條目也可以被自動覆蓋;自動回收功能最大限度地保證了主備庫歸檔日志的保留時間(歸檔日志可用來對數(shù)據(jù)庫進行恢復),本文中主備庫歸檔日志的保留時間大約為5天。
(3)重做日志應用功能
該功能主要實現(xiàn)將傳送至備重做日志中的重做條目實時地應用到災備數(shù)據(jù)庫的數(shù)據(jù)文件中,實現(xiàn)主備數(shù)據(jù)庫的數(shù)據(jù)同步。
如圖3所示,主數(shù)據(jù)庫端產(chǎn)生的重做條目傳送到備重做日志文件后,介質(zhì)恢復進程(MRP)應用該重做條目,立刻修改災備數(shù)據(jù)庫中對應的數(shù)據(jù)塊,更新災備數(shù)據(jù)庫中相應的記錄信息。
(4)主備庫切換功能
該功能實現(xiàn)裝配MES主數(shù)據(jù)庫的正常切換和故障切換。
如圖3所示,正常切換功能用于系統(tǒng)升級測試,通過手動切換將Primary角色的主數(shù)據(jù)庫切換至Standby角色,將Standby角色的災備數(shù)據(jù)庫切換至Primary角色;故障切換功能實現(xiàn)當裝配MES主數(shù)據(jù)庫出現(xiàn)故障時,可以將災備數(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災備數(shù)據(jù)庫部署在Red hat Linux 6.6(64位)操作系統(tǒng)平臺上,數(shù)據(jù)庫采用Oracle 11g R2(64位)企業(yè)版,災備數(shù)據(jù)存放在共享存儲EMC CX240上,容災拓撲圖如圖4所示。

圖4 裝配MES系統(tǒng)容災拓撲示意圖
(1)重做傳輸功能測試
本試驗利用聯(lián)機重做日志和備重做日志自動切換和自動歸檔的特性,查詢當前聯(lián)機重做日志文件序列號和當前備重做日志文件的序列號,如圖5、圖6所示,序列號相同且均為155780,對主數(shù)據(jù)庫進行增、刪、改、更新產(chǎn)生的操作日志同步到了災備數(shù)據(jù)庫端。

圖5 當前聯(lián)機重做日志文件序列號

圖6 當前備重做日志文件序列號
(2)歸檔日志自動回收功能測試
本試驗建立主備數(shù)據(jù)庫的快速恢復區(qū),快速恢復區(qū)大小均設置為300GB,將歸檔日志存放在快速恢復區(qū)內(nèi),查詢主備庫快速恢復區(qū)歸檔日志的空間使用率和可回收率,如圖7所示,主數(shù)據(jù)庫快速恢復區(qū)歸檔日志占用的空間為99.17%,這99.17%的歸檔日志均可被自動覆蓋進行空間釋放,如圖8所示,災備數(shù)據(jù)庫快速恢復區(qū)歸檔日志占用的空間為99.17%,其中97.3%的歸檔日志可被自動覆蓋進行空間釋放,主備庫歸檔日志均可實現(xiàn)自動回收。

圖7 主數(shù)據(jù)庫快速恢復區(qū)

圖8 災備數(shù)據(jù)庫快速恢復區(qū)狀態(tài)
(3)重做應用功能測試
本試驗在裝配MES主數(shù)據(jù)中建立測試表,對表中數(shù)據(jù)進行添加、修改、刪除、更新等操作,然后分別提交這些操作,經(jīng)查詢?yōu)膫鋽?shù)據(jù)庫中存在相同的測試表,如圖9所示,且表中字段、數(shù)據(jù)與主數(shù)據(jù)庫中相同,從主數(shù)據(jù)庫傳輸至災備數(shù)據(jù)庫的重做條目成功應用至災備數(shù)據(jù)庫中。

圖9 主備數(shù)據(jù)庫中的測試表
(4)主備庫切換測試
本試驗模擬裝配MES主數(shù)據(jù)庫發(fā)生故障,如圖10、11所示,系統(tǒng)不能正常訪問;將災備數(shù)據(jù)庫切換成Primary角色,切換后裝配MES系統(tǒng)能夠正常訪問,故障切換功能正常。

圖10 出現(xiàn)故障時系統(tǒng)
災備數(shù)據(jù)庫切換:
SQL>ALTER DATABASE COMMIT TO SWITCHO?VER TO PRIMARY WITH SESSION SHUTDOWN
通過本文的研究和應用,當主數(shù)據(jù)庫發(fā)生故障時,災備數(shù)據(jù)庫能夠快速接替主數(shù)據(jù)庫進行工作;故障發(fā)生時,裝配MES系統(tǒng)數(shù)據(jù)的完整性指標RPO(即業(yè)務數(shù)據(jù)的丟失量)由8小時降低為1小時,數(shù)據(jù)庫故障恢復時間RTO由3小時降低為0.5小時。

圖11 故障切換后系統(tǒng)
本文研究和應用的容災技術處于國際領先水平,該企業(yè)的同城異地容災機房已經(jīng)投入使用,后續(xù)可利用本項目研究的數(shù)據(jù)庫高可用技術,針對該企業(yè)的關鍵業(yè)務系統(tǒng)如 ERP、CAPP、PDM、TDM、門戶、RAC 集群,在異地容災機房建立災備數(shù)據(jù)庫,提高關鍵業(yè)務系統(tǒng)的容災能力。
[1]王樹鵬,云曉春,余翔湛.容災的理論與關鍵技術分析[J].計算機工程與應用,2004(28):54-58.
[2]宋錫寧.面向海量數(shù)據(jù)災難恢復的數(shù)據(jù)摘要技術的研究與實現(xiàn)[D].國防科學技術大學,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]翟永.國家基礎地理信息中心LAN FREE的SAN備份解決方案[J].計算機應用研究,2001,18(5):87-89.
[7]韓德志,耿紅琴,李懷陽.高可用存儲性能網(wǎng)絡技術探析[J].計算機應用研究,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]黃國平.增強型多維產(chǎn)品 Oracle 7[J].航空兵器,1996(02).