一、引言
隨著無(wú)償獻(xiàn)血活動(dòng)的深入開(kāi)展,獻(xiàn)血者及受血者自身保護(hù)和法律意識(shí)的提高,社會(huì)經(jīng)濟(jì)發(fā)展和精神文明建設(shè)的不斷發(fā)展,為了使無(wú)償獻(xiàn)血事業(yè)可以繼續(xù),國(guó)家衛(wèi)生部陸續(xù)出臺(tái)了血站相應(yīng)法規(guī)和管理辦法,加強(qiáng)對(duì)采供血工作的監(jiān)管。某血站(以下簡(jiǎn)稱:血站)嚴(yán)格按衛(wèi)生部《血站管理辦法》、《血站質(zhì)量管理規(guī)范》和《血站實(shí)驗(yàn)室質(zhì)量管理規(guī)范》的要求開(kāi)展無(wú)償獻(xiàn)血工作。在衛(wèi)生部《血站質(zhì)量管理規(guī)范》和《血站實(shí)驗(yàn)室質(zhì)量管理規(guī)范》中要求:必須應(yīng)用計(jì)算機(jī)管理采供血和相關(guān)服務(wù)過(guò)程;對(duì)管理信息系統(tǒng)的數(shù)據(jù)庫(kù)進(jìn)行定期備份,并確保備份庫(kù)存點(diǎn)與主體數(shù)據(jù)庫(kù)有效安全分隔。其中說(shuō)明了,計(jì)算機(jī)管理信息系統(tǒng)貫穿整個(gè)采供血過(guò)程,并由該系統(tǒng)監(jiān)測(cè)及控制血液產(chǎn)品生產(chǎn)和供應(yīng),實(shí)現(xiàn)整個(gè)血站流程的操作過(guò)程及數(shù)據(jù)處理實(shí)行自動(dòng)化全面過(guò)程控制,使得血液制品生產(chǎn)供應(yīng)可以實(shí)現(xiàn)回溯追蹤。所以,保證計(jì)算機(jī)信息系統(tǒng)的健康運(yùn)行,預(yù)防數(shù)據(jù)因錯(cuò)誤或?yàn)?zāi)難而丟失,如何異地備份保存,成為血站信息中心亟待解決的問(wèn)題。
二、系統(tǒng)現(xiàn)狀
血站的管理信息系統(tǒng)采用的是C/S架構(gòu)的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),服務(wù)器數(shù)據(jù)庫(kù)使用的是Sybase數(shù)據(jù)庫(kù),客戶機(jī)用的是Windows操作系統(tǒng),應(yīng)用程序采用PowerBuilder(簡(jiǎn)稱PB)軟件開(kāi)發(fā)工具。正常工作環(huán)境下2臺(tái)服務(wù)器為熱備份模式。
(一)備份現(xiàn)狀
通過(guò)在服務(wù)器上建立定時(shí)工作任務(wù),采用Sybase數(shù)據(jù)庫(kù)軟件DUMP DATABASE工具實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)庫(kù)自動(dòng)備份。每天晚12:00,存于磁盤陣列柜的數(shù)據(jù)庫(kù)將被完整備份,并在血站中分不同2個(gè)建筑異地保存。每個(gè)存放點(diǎn)保存最近1個(gè)月的數(shù)據(jù)庫(kù)完整備份。系統(tǒng)維護(hù)人員每個(gè)月定期將每天的備份刻錄2份光盤,也是同樣分不同2個(gè)建筑異地保存。上述備份方式,在正常的情況下,基本上能夠保證系統(tǒng)的數(shù)據(jù)安全性以及完整性。
(二)存在的問(wèn)題
雖然數(shù)據(jù)庫(kù)的備份已被復(fù)制到多個(gè)地點(diǎn)分開(kāi)存放,但是這些地點(diǎn)畢竟是在同一個(gè)單位,可靠性和安全性還是不高,如果發(fā)生對(duì)整個(gè)單位都有影響的突發(fā)事件,就還是有可能危及數(shù)據(jù)的安全,例如,大范圍的災(zāi)難:火災(zāi)、水災(zāi)、地震等。因此,能將數(shù)據(jù)備份存放到離血站較遠(yuǎn)的地點(diǎn),如另一個(gè)城市,才能減少備份數(shù)據(jù)的安全隱患。
三、異地備份與恢復(fù)
異地備份是容災(zāi)備份的一個(gè)類型。
容災(zāi)備份是通過(guò)在異地建立和維護(hù)一個(gè)備份存儲(chǔ)系統(tǒng),利用地理上的分離來(lái)保證系統(tǒng)和數(shù)據(jù)對(duì)災(zāi)難性事件的抵御能力。
根據(jù)容災(zāi)系統(tǒng)對(duì)災(zāi)難的抵抗程度,可分為數(shù)據(jù)容災(zāi)和應(yīng)用容災(zāi)。數(shù)據(jù)容災(zāi)是指建立一個(gè)異地的數(shù)據(jù)系統(tǒng),該系統(tǒng)是對(duì)本地系統(tǒng)關(guān)鍵應(yīng)用數(shù)據(jù)實(shí)時(shí)復(fù)制。當(dāng)出現(xiàn)災(zāi)難時(shí),可由異地系統(tǒng)迅速接替本地系統(tǒng)而保證業(yè)務(wù)的連續(xù)性。應(yīng)用容災(zāi)比數(shù)據(jù)容災(zāi)層次更高,即在異地建立一套完整的、與本地?cái)?shù)據(jù)系統(tǒng)相當(dāng)?shù)膫浞輵?yīng)用系統(tǒng)(可以同本地應(yīng)用系統(tǒng)互為備份,也可與本地應(yīng)用系統(tǒng)共同工作)。在災(zāi)難出現(xiàn)后,遠(yuǎn)程應(yīng)用系統(tǒng)迅速接管或承擔(dān)本地應(yīng)用系統(tǒng)的業(yè)務(wù)運(yùn)行。
設(shè)計(jì)一個(gè)容災(zāi)備份系統(tǒng),需要考慮多方面的因素,如備份/恢復(fù)數(shù)據(jù)量大小、應(yīng)用數(shù)據(jù)中心和備援?dāng)?shù)據(jù)中心之間的距離和數(shù)據(jù)傳輸方式、災(zāi)難發(fā)生時(shí)所要求的恢復(fù)速度、備援中心的管理及投入資金等。根據(jù)這些因素和不同的應(yīng)用場(chǎng)合,通常可將容災(zāi)備份分為四個(gè)等級(jí)。
I級(jí):本地備份
這一級(jí)容災(zāi)備份,實(shí)際上沒(méi)有災(zāi)難恢復(fù)能力,它只在本地進(jìn)行數(shù)據(jù)備份,并且被備份的數(shù)據(jù)只在本地保存,沒(méi)有送往異地。
II級(jí):本地備份,異地保存
在本地將關(guān)鍵數(shù)據(jù)備份,然后送到異地保存。災(zāi)難發(fā)生后,按預(yù)定數(shù)據(jù)恢復(fù)程序恢復(fù)系統(tǒng)和數(shù)據(jù)。這種方案成本低、易于配置。但當(dāng)數(shù)據(jù)量增大時(shí),存在存儲(chǔ)介質(zhì)難管理的問(wèn)題,并且當(dāng)災(zāi)難發(fā)生時(shí)存在大量數(shù)據(jù)難以及時(shí)恢復(fù)的問(wèn)題。為了解決此問(wèn)題,災(zāi)難發(fā)生時(shí),先恢復(fù)關(guān)鍵數(shù)據(jù),后恢復(fù)非關(guān)鍵數(shù)據(jù)。
III級(jí):熱備份站點(diǎn)備份
在異地建立一個(gè)熱備份點(diǎn),通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)備份。也就是通過(guò)網(wǎng)絡(luò)以同步或異步方式,把主站點(diǎn)的數(shù)據(jù)備份到備份站點(diǎn),備份站點(diǎn)一般只備份數(shù)據(jù),不承擔(dān)業(yè)務(wù)。當(dāng)出現(xiàn)災(zāi)難時(shí),備份站點(diǎn)接替主站點(diǎn)的業(yè)務(wù),從而維護(hù)業(yè)務(wù)運(yùn)行的連續(xù)性。
IV級(jí):活動(dòng)備援中心
在相隔較遠(yuǎn)的地方分別建立兩個(gè)數(shù)據(jù)中心,它們都處于工作狀態(tài),并進(jìn)行相互數(shù)據(jù)備份。當(dāng)某個(gè)數(shù)據(jù)中心發(fā)生災(zāi)難時(shí),另一個(gè)數(shù)據(jù)中心接替其工作任務(wù)。這種級(jí)別的備份根據(jù)實(shí)際要求和投入資金的多少,又可分為兩種:①兩個(gè)數(shù)據(jù)中心之間只限于關(guān)鍵數(shù)據(jù)的相互備份;②兩個(gè)數(shù)據(jù)中心之間互為鏡像,即零數(shù)據(jù)丟失等。零數(shù)據(jù)丟失是目前要求最高的一種容災(zāi)備份方式,它要求不管什么災(zāi)難發(fā)生,系統(tǒng)都能保證數(shù)據(jù)的安全。所以,它需要配置復(fù)雜的管理軟件和專用的硬件設(shè)備,需要投資相對(duì)而言是最大的,但恢復(fù)速度也是最快的。
我們選取“III級(jí):熱備份站點(diǎn)備份”類型建立異地備份,在離本血站較近的L市中心血站作為異地備份點(diǎn)。在L市中心血站內(nèi)架設(shè)一臺(tái)備份服務(wù)器,裝好與本血站相同系統(tǒng)和數(shù)據(jù),并配置一臺(tái)VPN服務(wù)器,可以實(shí)現(xiàn)連接互聯(lián)網(wǎng)和防火墻的作用。
本血站在做好原來(lái)每天的備份的同時(shí),每天每隔2小時(shí)做一次增量備份,即自動(dòng)進(jìn)行事務(wù)日志轉(zhuǎn)儲(chǔ),生成日志文件,通過(guò)VPN通道將日志文件傳送到L市中心血站備份服務(wù)器,再將之恢復(fù),這樣備份服務(wù)器與本血站工作服務(wù)器之間最大只存在2小時(shí)的數(shù)據(jù)間隔,較好的實(shí)現(xiàn)了異地異步的數(shù)據(jù)備份。
下面介紹對(duì)用戶數(shù)據(jù)庫(kù)csbt進(jìn)行異地備份恢復(fù)的過(guò)程和具體步驟。
(一)以某時(shí)刻后為例,本血站工作服務(wù)器產(chǎn)生轉(zhuǎn)儲(chǔ)文件:tran.bck,通過(guò)VPN,在L市中心血站備份服務(wù)器相應(yīng)路徑下可得到相同的同步文件。
Dump transaction csbt to ‘tran.bck’
注意:此前提是事務(wù)日志設(shè)備必須與數(shù)據(jù)設(shè)備在不同的分區(qū)上,且該設(shè)備正??捎?。
(二)在L市中心血站備份服務(wù)器執(zhí)行:
Load transaction csbt from ‘tran.bck’
(三)檢查數(shù)據(jù)庫(kù)一致性
運(yùn)行以下語(yǔ)句檢查裝載數(shù)據(jù)庫(kù)的一致性:
use csbt
dbcc checkdb / *檢查csbt 數(shù)據(jù)庫(kù)中所有表的一致性*/
checkpoint
use master
sp_dboption csbt , ‘ single user’ , true / *將csbt 設(shè)置為單用戶模式*/
checkpoint
use csbt
dbcc checkalloc ( csbt , fix )/ *檢查csbt 數(shù)據(jù)庫(kù)表的頁(yè)面分配,并修正其錯(cuò)誤*/
dbcc checkcatalog ( csbt ) / *檢查csbt 數(shù)據(jù)庫(kù)中系統(tǒng)表的一致性*/
checkpoint
use master
sp_dboption csbt , ‘ single user’ , 1 / *取消csbt 單用戶模式*/
checkpoint
(四)執(zhí)行命令online database csbt 使用戶數(shù)據(jù)庫(kù)聯(lián)機(jī)。
至此,L市中心血站備份服務(wù)器上用戶數(shù)據(jù)庫(kù)的恢復(fù)過(guò)程就結(jié)束了。此后,系統(tǒng)管理員可利用在備份服務(wù)器上生成的每天的完整備份,這樣,該備份服務(wù)器上就實(shí)現(xiàn)了與本血站服務(wù)器數(shù)據(jù)庫(kù)一致的異地備份了。
四、總結(jié)
現(xiàn)在,本血站通過(guò)本文所述方法實(shí)現(xiàn)了L市中心血站備份服務(wù)器數(shù)據(jù)庫(kù)定期異地自動(dòng)備份,保證了本血站業(yè)務(wù)數(shù)據(jù)的完整性以及異地安全存放。
參考文獻(xiàn)
[1]張艷,李舟軍,何德全.災(zāi)難備份和恢復(fù)技術(shù)的現(xiàn)狀與發(fā)展.計(jì)算機(jī)工程與科學(xué),2005,27(2):131,134.
[2]章立民.Visual Basic 2005編程開(kāi)發(fā)與界面設(shè)計(jì)秘訣[M].北京:機(jī)械工業(yè)出版社,2006.
[3]陳開(kāi)藝.連續(xù)性業(yè)務(wù)系統(tǒng)中容災(zāi)備份系統(tǒng)的建設(shè).計(jì)算機(jī)時(shí)代,2007,(11):34-35.
[4][美]庫(kù)姆斯著.鄧少鷗,鄧云佳譯.Visual Basic編程實(shí)用大全(精華版)[M].北京:中國(guó)水利出版社,2005.
[5]國(guó)務(wù)院信息化工作辦公室.重要信息系統(tǒng)災(zāi)難恢復(fù)指南