趙宇蘭
(山西大學(xué)商務(wù)學(xué)院,山西 太原 030031)
武警醫(yī)院異地容災(zāi)備份系統(tǒng)的設(shè)計(jì)
趙宇蘭
(山西大學(xué)商務(wù)學(xué)院,山西 太原 030031)
本文采用SAN網(wǎng)絡(luò)技術(shù)和DataGuard數(shù)據(jù)同步技術(shù)設(shè)計(jì)適應(yīng)太原市武警醫(yī)院發(fā)展的網(wǎng)絡(luò)異地容災(zāi)備份系統(tǒng)。該設(shè)計(jì)方案能夠提供日常的數(shù)據(jù)同步復(fù)制,災(zāi)難發(fā)生時(shí)的業(yè)務(wù)接管和災(zāi)后的系統(tǒng)恢復(fù)功能,方案的實(shí)施可使武警醫(yī)院MIS系統(tǒng)具備對(duì)抗人為或自然災(zāi)害所導(dǎo)致的數(shù)據(jù)丟失和系統(tǒng)崩潰等問題的能力。
容災(zāi)備份;DataGuard;醫(yī)院系統(tǒng)
隨著全球信息化水平的大幅提升,各行各業(yè)都開始建立起自己的數(shù)據(jù)中心,用以承載企業(yè)部門的應(yīng)用系統(tǒng)。龐大的系統(tǒng)會(huì)產(chǎn)生海量的數(shù)據(jù),數(shù)據(jù)集中也帶來難以預(yù)料的技術(shù)風(fēng)險(xiǎn),如果發(fā)生災(zāi)難,將導(dǎo)致業(yè)務(wù)數(shù)據(jù)丟失和應(yīng)用服務(wù)無法正常運(yùn)轉(zhuǎn)。為了能夠應(yīng)付醫(yī)院MIS系統(tǒng)對(duì)數(shù)據(jù)完整性和安全性、業(yè)務(wù)持續(xù)性和穩(wěn)定性等方面的需求,太原市武警醫(yī)院采用定期自動(dòng)備份策略和災(zāi)后恢復(fù)計(jì)劃,用于信息系統(tǒng)在災(zāi)難發(fā)生后數(shù)據(jù)和應(yīng)用服務(wù)的恢復(fù)。但這種方法無法保證醫(yī)院業(yè)務(wù)7×24小時(shí)持續(xù)運(yùn)轉(zhuǎn)。本文旨在為武警醫(yī)院MIS系統(tǒng)建立一個(gè)更高水平的異地容災(zāi)備份策略,使其不僅能夠具備對(duì)抗人為和自然災(zāi)難的能力,還能應(yīng)對(duì)MIS系統(tǒng)業(yè)務(wù)持續(xù)性方面的嚴(yán)苛要求。
1.1 醫(yī)院MIS系統(tǒng)現(xiàn)狀
太原市武警醫(yī)院信息系統(tǒng)目前使用Oracle數(shù)據(jù)庫作為后臺(tái)數(shù)據(jù)庫服務(wù)器,業(yè)務(wù)系統(tǒng)包括醫(yī)院信息系統(tǒng)HIS、放射學(xué)信息系統(tǒng)RIS、影像歸檔共享系統(tǒng)PACS和電子病歷系統(tǒng)ERM四個(gè)子系統(tǒng),可以對(duì)門診掛號(hào)、就診、電子病歷、電子處方、結(jié)算、檢驗(yàn)檢查、取藥及出入院管理等一系列的信息化活動(dòng)進(jìn)行有效的管理。
1.2 醫(yī)院MIS系統(tǒng)災(zāi)備現(xiàn)狀分析
醫(yī)院目前已采取了服務(wù)器的雙機(jī)熱備份,建設(shè)了冗余網(wǎng)絡(luò)和存儲(chǔ),啟用了UPS不間斷電源等措施來保障業(yè)務(wù)中心在出現(xiàn)網(wǎng)絡(luò)單鏈路不通、存儲(chǔ)單硬盤故障、單服務(wù)器故障、單操作系統(tǒng)崩潰或臨時(shí)停電時(shí)可以正常運(yùn)行。然而在發(fā)生數(shù)據(jù)庫人為錯(cuò)誤操作、病毒入侵、恐怖襲擊、突發(fā)災(zāi)害等引起的業(yè)務(wù)中心意外崩潰時(shí),現(xiàn)有的保障措施則可能會(huì)無法發(fā)揮作用,從而導(dǎo)致數(shù)據(jù)丟失、系統(tǒng)全線中斷等情況的發(fā)生。
1.3 醫(yī)院異地容災(zāi)需求分析
由于醫(yī)院業(yè)務(wù)必須7×24小時(shí)不間斷運(yùn)行,保證信息系統(tǒng)可用、系統(tǒng)數(shù)據(jù)不會(huì)丟失是構(gòu)建武警醫(yī)院異地容災(zāi)備份系統(tǒng)的最終目標(biāo)。
根據(jù)上述分析,醫(yī)院的災(zāi)備系統(tǒng)應(yīng)滿足以下要求:
1) 確保加入容災(zāi)備份系統(tǒng)的系統(tǒng)數(shù)據(jù)因任何意外事故所導(dǎo)致的業(yè)務(wù)中心故障、系統(tǒng)無法正常運(yùn)行、生產(chǎn)數(shù)據(jù)丟失的情況下,災(zāi)備中心仍存有完整的數(shù)據(jù)。
2) 為了便于使用備份副本恢復(fù)生產(chǎn)數(shù)據(jù)的情況,主庫數(shù)據(jù)應(yīng)實(shí)時(shí)更新到備用庫。
3) 模擬業(yè)務(wù)中心在異地建立與之等同的應(yīng)用系統(tǒng),即災(zāi)備中心,一旦業(yè)務(wù)中心意外癱瘓,災(zāi)備中心可以接替業(yè)務(wù)中心來對(duì)外提供持續(xù)的服務(wù)。當(dāng)業(yè)務(wù)中心因?yàn)閼?yīng)用軟件、網(wǎng)絡(luò)線路、服務(wù)器、電源或存儲(chǔ)介質(zhì)等故障而無法正常運(yùn)行時(shí),可以切換到災(zāi)備中心的相應(yīng)設(shè)備來支持業(yè)務(wù)的持續(xù)性。業(yè)務(wù)中心恢復(fù)正常后,在此期間災(zāi)備中心的數(shù)據(jù)變化拷貝回業(yè)務(wù)中心,然后由業(yè)務(wù)中心繼續(xù)提供服務(wù)。
2.1 技術(shù)選擇
根據(jù)醫(yī)院的現(xiàn)狀和需求,綜合考慮系統(tǒng)業(yè)務(wù)、數(shù)據(jù)庫版本和經(jīng)濟(jì)效益等因素,確定使用DataGuard技術(shù)[1]進(jìn)行災(zāi)難備份,采用心跳協(xié)議[2]進(jìn)行災(zāi)難檢測(cè),采用IP漂移技術(shù)[2]實(shí)現(xiàn)災(zāi)難切換。
Oracle的DataGuard可在保證數(shù)據(jù)零丟失的同時(shí),實(shí)現(xiàn)最快的主備庫切換恢復(fù)功能,且其組件由Oracle自帶,無需購買,能帶來更大的投資回報(bào)。其原理為通過多個(gè)服務(wù)進(jìn)程的相互配合實(shí)現(xiàn)日志復(fù)制到備庫并重演的工作。
2.2 初步方案設(shè)計(jì)
本設(shè)計(jì)主要實(shí)現(xiàn)兩個(gè)功能,一是在業(yè)務(wù)中心正常運(yùn)轉(zhuǎn)時(shí),醫(yī)院MIS系統(tǒng)調(diào)用主數(shù)據(jù)庫來響應(yīng)操作請(qǐng)求,將數(shù)據(jù)同步到災(zāi)備中心的備份數(shù)據(jù)庫,保持主備兩庫的數(shù)據(jù)一致;一旦因?yàn)?zāi)難導(dǎo)致業(yè)務(wù)中心故障,容災(zāi)中心憑借冗余的應(yīng)用環(huán)境自動(dòng)或手動(dòng)進(jìn)行災(zāi)難替換,接替業(yè)務(wù)中心的業(yè)務(wù)服務(wù);當(dāng)業(yè)務(wù)中心恢復(fù)正常,服務(wù)回切。另一個(gè)是備份數(shù)據(jù)庫可以作為統(tǒng)計(jì)查詢庫來減輕業(yè)務(wù)中心的工作負(fù)載。初步方案設(shè)計(jì)如圖1所示。
圖1 災(zāi)備系統(tǒng)初步方案
2.2.1 業(yè)務(wù)中心的數(shù)據(jù)庫崩潰應(yīng)急方案
當(dāng)業(yè)務(wù)中心的主數(shù)據(jù)庫因某些原因不可訪問時(shí),災(zāi)難切換模塊立即啟動(dòng)系統(tǒng)切換功能,通過IP地址漂移技術(shù)由備份數(shù)據(jù)庫來支撐應(yīng)用層的數(shù)據(jù)交換工作,使業(yè)務(wù)能夠繼續(xù)進(jìn)行;當(dāng)主數(shù)據(jù)庫恢復(fù)正常后,將主數(shù)據(jù)庫修復(fù)期間變更的業(yè)務(wù)數(shù)據(jù)同步到主庫,然后通過切換由主數(shù)據(jù)庫繼續(xù)提供服務(wù)。
2.2.2 業(yè)務(wù)中心應(yīng)用層崩潰應(yīng)急方案
當(dāng)業(yè)務(wù)中心應(yīng)用層因某些原因(如應(yīng)用系統(tǒng)崩潰、服務(wù)器故障等)不可訪問時(shí),通過IP地址漂移技術(shù)由備用系統(tǒng)來加載系統(tǒng)應(yīng)用,使用主數(shù)據(jù)庫的相應(yīng)存儲(chǔ)地址作為訪問路徑來保證業(yè)務(wù)連續(xù)性;當(dāng)業(yè)務(wù)中心的應(yīng)用層恢復(fù)正常,則由生產(chǎn)系統(tǒng)繼續(xù)提供應(yīng)用層的服務(wù)。
2.2.3 數(shù)據(jù)庫及應(yīng)用層均崩潰應(yīng)急方案
當(dāng)業(yè)務(wù)中心的數(shù)據(jù)庫和應(yīng)用層均崩潰時(shí),由災(zāi)備中心來提供服務(wù),在對(duì)客戶端完全透明的情況下完成災(zāi)難替換,由災(zāi)備系統(tǒng)和備份數(shù)據(jù)庫來代替醫(yī)院MIS系統(tǒng)和主數(shù)據(jù)庫;當(dāng)業(yè)務(wù)中心恢復(fù)正常后,進(jìn)行災(zāi)難回切。
2.3 系統(tǒng)的總體架構(gòu)
2.3.1 醫(yī)院災(zāi)備系統(tǒng)的總體架構(gòu)圖
災(zāi)備系統(tǒng)總體架構(gòu)如圖2所示,在災(zāi)備中心分別建立醫(yī)院業(yè)務(wù)系統(tǒng)各自的虛擬機(jī)及容災(zāi)應(yīng)用系統(tǒng)。當(dāng)業(yè)務(wù)中心在正常運(yùn)行時(shí),將業(yè)務(wù)數(shù)據(jù)定期復(fù)制到災(zāi)難恢復(fù)中心,以保證數(shù)據(jù)的一致性;當(dāng)業(yè)務(wù)中心發(fā)生故障須進(jìn)行災(zāi)難恢復(fù),由虛擬機(jī)提供業(yè)務(wù)服務(wù)。
圖2 醫(yī)院災(zāi)備系統(tǒng)的總體架構(gòu)圖
2.3.2 醫(yī)院災(zāi)備系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖3所示,在本院的其他樓宇內(nèi)建設(shè)一個(gè)災(zāi)備中心,并鋪設(shè)網(wǎng)絡(luò)線路分別連接業(yè)務(wù)中心的兩個(gè)交換機(jī)上,實(shí)現(xiàn)網(wǎng)絡(luò)冗余,然后搭建災(zāi)備環(huán)境。在災(zāi)備服務(wù)器上依次安裝操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用系統(tǒng)插件以及醫(yī)院業(yè)務(wù)系統(tǒng),并將最新的數(shù)據(jù)庫副本拷貝到統(tǒng)一存儲(chǔ)中,業(yè)務(wù)中心的關(guān)鍵數(shù)據(jù)要通過網(wǎng)絡(luò)定期拷貝到災(zāi)備中心。
2.4 系統(tǒng)總體流程設(shè)計(jì)
系統(tǒng)的流程設(shè)計(jì)如圖4所示,首先對(duì)生產(chǎn)系統(tǒng)進(jìn)行循環(huán)檢測(cè),看其是否正常運(yùn)行,當(dāng)一切正常時(shí),只需將數(shù)據(jù)同步到災(zāi)備系統(tǒng);當(dāng)檢測(cè)到業(yè)務(wù)中心停止運(yùn)行時(shí),災(zāi)備系統(tǒng)將自動(dòng)或手動(dòng)地進(jìn)行容災(zāi)切換,以保證業(yè)務(wù)連續(xù)性,在此期間仍進(jìn)行循環(huán)檢測(cè),看生產(chǎn)系統(tǒng)是否已恢復(fù)正常,若業(yè)務(wù)中心恢復(fù)正常,就進(jìn)行系統(tǒng)恢復(fù)。該災(zāi)備系統(tǒng)的主要功能模塊有災(zāi)難檢測(cè)、同步復(fù)制、災(zāi)難切換和系統(tǒng)恢復(fù)。
1) 災(zāi)難檢測(cè)模塊
災(zāi)難檢測(cè)模塊用于判斷生產(chǎn)系統(tǒng)是否發(fā)生故障,并在災(zāi)難發(fā)生時(shí)及時(shí)報(bào)警,便于管理員定位故障和實(shí)施容災(zāi)切換[3]。檢測(cè)原理為:由災(zāi)備系統(tǒng)周期性地發(fā)出響應(yīng)數(shù)據(jù)包,如果生產(chǎn)服務(wù)器立即響應(yīng),說明服務(wù)器正常,若該包未在規(guī)定時(shí)間內(nèi)得到響應(yīng),備份服務(wù)器則通過備用信道發(fā)送響應(yīng)數(shù)據(jù)包,若無響應(yīng),則排除鏈路故障的可能,否則說明是網(wǎng)絡(luò)故障。
圖3 醫(yī)院災(zāi)備系統(tǒng)的網(wǎng)絡(luò)拓?fù)鋱D
圖4 醫(yī)院災(zāi)備系統(tǒng)的流程設(shè)計(jì)圖
2) 同步復(fù)制模塊
同步復(fù)制模塊是災(zāi)備的基礎(chǔ),它通過DataGuard技術(shù)將業(yè)務(wù)中心的在線日志和歸檔日志拷貝到備份數(shù)據(jù)庫,并根據(jù)StandBy類型的應(yīng)用相應(yīng)日志。
3) 災(zāi)難切換模塊
災(zāi)難切換模塊在接收到災(zāi)難檢測(cè)模塊發(fā)送的報(bào)警信息后,按照預(yù)定的容災(zāi)應(yīng)急方案,以自動(dòng)或手動(dòng)模式進(jìn)行容災(zāi)切換,并由災(zāi)備系統(tǒng)響應(yīng)客戶端請(qǐng)求[4]。
4) 系統(tǒng)恢復(fù)模塊
由于災(zāi)備中心的環(huán)境配置通常要低于業(yè)務(wù)中心,因此當(dāng)業(yè)務(wù)中心恢復(fù)正常時(shí),系統(tǒng)恢復(fù)模塊要在保證數(shù)據(jù)零丟失和對(duì)客戶端透明的情況下,回切到業(yè)務(wù)中心。
3.1 環(huán)境配置要求
以EMR模塊災(zāi)備系統(tǒng)為例,配置如表1所示:
表1 災(zāi)備配置表
3.2 同步復(fù)制模塊
3.2.1 主庫的配置
1) 檢查主庫是否為歸檔模式,如果不是需重啟數(shù)據(jù)庫到mount階段,修改數(shù)據(jù)庫的歸檔狀態(tài)。
2) 修改主庫的force logging模式,以提高速度,防止重做日志遺漏修改記錄。
3) 根據(jù)主庫的備份文件和初始化參數(shù)文件生成備庫控制文件standby.ctl和初始化參數(shù)文件pfileWDS.ora文件,并拷貝到備庫的相應(yīng)路徑下。
4) 修改主庫的初始化參數(shù)文件。①指定數(shù)據(jù)庫唯一標(biāo)識(shí),列出同一個(gè)DataGuard環(huán)境中的所有數(shù)據(jù)庫,即主庫和備庫;②指定歸檔文件的生成路徑;③歸檔日志傳輸給備庫的參數(shù)設(shè)置為在線同步復(fù)制,并標(biāo)識(shí)參數(shù)有效;④指定主庫和備庫的連接服務(wù)名為fal_server=wjerm2;⑤設(shè)置主庫數(shù)據(jù)變更時(shí),備庫自動(dòng)管理的參數(shù);⑥重啟主庫,使所設(shè)參數(shù)生效。
5) 在listener.ora文件中配置oracle監(jiān)聽服務(wù)。
6) 在tnsname.ora文件中配置網(wǎng)絡(luò)服務(wù)名。
3.2.2 備庫的配置
1) 建立備庫相關(guān)目錄,創(chuàng)建控制文件。
2) 以“主庫為備庫,備庫為主庫”的形式,參照對(duì)主庫的配置進(jìn)行備庫的相應(yīng)操作。
3) 使用DataGuard的數(shù)據(jù)同步命令,啟動(dòng)系統(tǒng)后臺(tái)進(jìn)程來使數(shù)據(jù)庫處于實(shí)時(shí)恢復(fù)狀態(tài)。
4) 進(jìn)行主備庫聯(lián)通測(cè)試。
3.2.3 同步復(fù)制的檢測(cè)
為了確定同步復(fù)制模塊是否正常運(yùn)作,需對(duì)其進(jìn)行檢測(cè),驗(yàn)證方法如下:
1) 通過比較主備庫各自最近在線日志是否一致來判斷在線日志的傳輸是否正常。
2) 通過比較備用庫最近的被應(yīng)用日志和最近接收到的日志文件來判斷日志的應(yīng)用是否正常。
3.3 災(zāi)難切換模塊
災(zāi)難切換有兩種情況,一種是業(yè)務(wù)中心發(fā)生故障時(shí),啟用備用庫;另一種是業(yè)務(wù)中心進(jìn)行系統(tǒng)升級(jí)或硬件維護(hù)時(shí),啟用備用庫。針對(duì)這兩種情況,DataGuard分別提供了計(jì)劃內(nèi)停用的轉(zhuǎn)換開關(guān)switchover和計(jì)劃外終止的故障切換failover[5]。
災(zāi)難切換流程如圖5所示。
上述設(shè)計(jì)中主要給出了醫(yī)院ERM系統(tǒng)的容災(zāi)方案,其他系統(tǒng)可以以相同的方法來建立災(zāi)備模塊。
針對(duì)太原市武警醫(yī)院MIS系統(tǒng)對(duì)數(shù)據(jù)完整性和安全性、業(yè)務(wù)持續(xù)性和穩(wěn)定性等方面的需求,采用DataGuard、心跳協(xié)議和IP漂移等技術(shù)設(shè)計(jì)網(wǎng)絡(luò)異地容災(zāi)備份策略,并給出了災(zāi)備系統(tǒng)的總體架構(gòu)和詳細(xì)的技術(shù)實(shí)現(xiàn)。不足之處,關(guān)于災(zāi)難預(yù)警、短信報(bào)警,以及整個(gè)應(yīng)急響應(yīng)的全員聯(lián)動(dòng)等功能還未實(shí)現(xiàn),有待深入解決。
圖5 災(zāi)難切換流程
[1] 劉旭輝.華為3Com稅務(wù)數(shù)據(jù)中心解決方案[J].中國(guó)新通信,2006(13):88-90.
[2] 朱鐵兵.瑞金醫(yī)院容災(zāi)智能處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2014.
[3] Grewe L,Krishnagiri S,Crisobal J.DiRect:A Disaster Recover System [C],Proceedings of SPIE-The Intemational Society for Optical Engineering.2014:480-489.
[4] 于俊.基于等級(jí)的災(zāi)備系統(tǒng)模型與方法研究[D].北京:北京郵電大學(xué),2015.
[5] 李麗虹,吳江,唐杰.On-line Data Backup Method Based on Data Volume Snapshot:CN 1567262 A[P].2005.
Design of Disaster Recovery System for Armed Police Hospital
Zhao Yulan
(BusinessCollegeofShanxiUniversity,TaiyuanShanxi030031,China)
This paper uses SAN and DataGuard technology to design the long-distance network disaster tolerance system,which is suitable for Taiyuan Armed Police Hospital. The design scheme can provide the synchronous replication of the daily data, the business taking over at the time of disaster and the system recovery function after the disaster. It can solve such problems such as data loss and system crash caused by man-made or natural disasters for MIS of armed police hospital.
disaster recovery;DataGuard;hospital system
2017-04-10
趙宇蘭(1979- ),女,山西晉中市人,副教授,碩士研究生,主要研究領(lǐng)域?yàn)榇髷?shù)據(jù)處理,分布式數(shù)據(jù)庫系統(tǒng)。
1674- 4578(2017)03- 0023- 04
TP392
A