馬英哲
(中國(guó)電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081)
容災(zāi)備份能夠?yàn)闃I(yè)務(wù)信息系統(tǒng)提供一套可靠的數(shù)據(jù)備份系統(tǒng),其目的在于當(dāng)主份系統(tǒng)遭受毀滅性災(zāi)難時(shí),能在較短的時(shí)間內(nèi)迅速代替或恢復(fù)業(yè)務(wù)信息系統(tǒng),其核心技術(shù)是數(shù)據(jù)復(fù)制。目前,各類數(shù)據(jù)復(fù)制技術(shù)和方法大量應(yīng)用于系統(tǒng)數(shù)據(jù)庫的災(zāi)備研究中,文獻(xiàn)[1-4]闡述了各類ORACLE數(shù)據(jù)庫同步方法,文獻(xiàn)[5-7]詳述了MySQL數(shù)據(jù)庫的同步機(jī)制,文獻(xiàn)[8]針對(duì)阿里巴巴的OceanBase數(shù)據(jù)庫論述了同步的機(jī)理,一些新興的分布式數(shù)據(jù)庫的備份也在文獻(xiàn)[9-10]進(jìn)行了說明。隨著大數(shù)據(jù)時(shí)代的到來,業(yè)務(wù)系統(tǒng)的數(shù)據(jù)不僅保存在數(shù)據(jù)庫中,業(yè)務(wù)應(yīng)用的同步也不僅依賴于數(shù)據(jù)庫,通過數(shù)據(jù)庫的備份已經(jīng)不能滿足業(yè)務(wù)應(yīng)用同步的需求,因此容災(zāi)備份系統(tǒng)的研究重點(diǎn)已經(jīng)從簡(jiǎn)單的數(shù)據(jù)級(jí)容災(zāi)發(fā)展到業(yè)務(wù)級(jí)容災(zāi)階段[11],需要結(jié)合業(yè)務(wù)系統(tǒng)的特點(diǎn)以及數(shù)據(jù)產(chǎn)生的時(shí)序,針對(duì)不同的數(shù)據(jù)類型,選擇合適的復(fù)制技術(shù)和復(fù)制方式進(jìn)行業(yè)務(wù)數(shù)據(jù)同步[12-13]。
面對(duì)業(yè)務(wù)同步應(yīng)用需求,依據(jù)業(yè)務(wù)系統(tǒng)數(shù)據(jù)流程進(jìn)行業(yè)務(wù)同步調(diào)度,提出了一種利用數(shù)據(jù)復(fù)制技術(shù)實(shí)現(xiàn)業(yè)務(wù)同步應(yīng)用的方法。
在災(zāi)備系統(tǒng)中,常用的數(shù)據(jù)復(fù)制技術(shù)有:基于存儲(chǔ)設(shè)備的數(shù)據(jù)復(fù)制技術(shù)、基于數(shù)據(jù)的日常磁帶備份技術(shù)和基于主機(jī)(數(shù)據(jù)庫軟件)的數(shù)據(jù)庫復(fù)制技術(shù)。
基于存儲(chǔ)設(shè)備的數(shù)據(jù)復(fù)制技術(shù)又稱為智能存儲(chǔ)系統(tǒng)的遠(yuǎn)程鏡像,它的數(shù)據(jù)復(fù)制是在存儲(chǔ)系統(tǒng)內(nèi)部實(shí)現(xiàn)的,與主機(jī)和應(yīng)用系統(tǒng)無關(guān)。基于存儲(chǔ)設(shè)備的數(shù)據(jù)復(fù)制技術(shù)對(duì)數(shù)據(jù)具有較高的安全保護(hù),但是其(不論同步方式還是異步方式)最大的缺點(diǎn)是遠(yuǎn)程鏡像需要相應(yīng)的存儲(chǔ)設(shè)備并具有非常好的網(wǎng)絡(luò)條件,投資很高。
基于存儲(chǔ)設(shè)備的數(shù)據(jù)復(fù)制技術(shù)在實(shí)現(xiàn)方式上可分為同步和異步2種。
① 同步數(shù)據(jù)復(fù)制:主存儲(chǔ)設(shè)備在備份存儲(chǔ)設(shè)備返回確認(rèn)信息后,才給應(yīng)用系統(tǒng)返回確認(rèn)信息。這種方式能最大程度地保持主/備機(jī)數(shù)據(jù)的一致,在災(zāi)難發(fā)生時(shí)能在最短時(shí)間內(nèi)恢復(fù)業(yè)務(wù)運(yùn)行。但這種方式增加了主機(jī)工作負(fù)載,要求系統(tǒng)能夠承受同步拷貝帶來的性能損失,對(duì)應(yīng)用系統(tǒng)有明顯的影響,對(duì)網(wǎng)絡(luò)狀況也有很高的要求。
優(yōu)點(diǎn):基本可以保證主/備機(jī)數(shù)據(jù)完全一致。
缺點(diǎn):增加了主機(jī)的工作負(fù)載,要求系統(tǒng)能夠承受同步拷貝帶來的性能損失。備份系統(tǒng)故障同樣影響應(yīng)用系統(tǒng)。
② 異步數(shù)據(jù)復(fù)制:與同步數(shù)據(jù)復(fù)制的區(qū)別在于異步數(shù)據(jù)復(fù)制系統(tǒng)將數(shù)據(jù)寫到主存儲(chǔ)設(shè)備后直接返回,不需要等待主/備機(jī)的數(shù)據(jù)同步,異步數(shù)據(jù)復(fù)制的主存儲(chǔ)設(shè)備每隔一定時(shí)間(可設(shè)置)將數(shù)據(jù)同步到備機(jī)存儲(chǔ)設(shè)備上。
優(yōu)點(diǎn):網(wǎng)絡(luò)和備份存儲(chǔ)設(shè)備的故障不會(huì)影響主存儲(chǔ)設(shè)備的正常工作。當(dāng)主/備機(jī)房之間數(shù)據(jù)鏈路帶寬成為瓶頸時(shí),異步方式可以提高性能。
缺點(diǎn):數(shù)據(jù)有可能丟失。在異步復(fù)制不能成功完成的情況下,數(shù)據(jù)的一致性難以得到保證。
使用數(shù)據(jù)庫的備份和恢復(fù)功能,可在每日日終后對(duì)主機(jī)數(shù)據(jù)庫進(jìn)行備份,次日將備份磁帶恢復(fù)到災(zāi)難備份中心主機(jī)。考慮到數(shù)據(jù)集中后,數(shù)據(jù)的存儲(chǔ)量較大,如果每日都將數(shù)據(jù)庫的所有數(shù)據(jù)用磁帶機(jī)備份下來,備份量太大,所以建議采用增量備份的方式來備份數(shù)據(jù),減小用戶的工作量。
優(yōu)點(diǎn):技術(shù)上易于實(shí)現(xiàn)。只需要一般存儲(chǔ)設(shè)備,不需要租用光纖,投資很小。
缺點(diǎn):恢復(fù)數(shù)據(jù)時(shí)間較長(zhǎng),往往造成短暫的業(yè)務(wù)停頓。
基于主機(jī)的數(shù)據(jù)庫復(fù)制是指把數(shù)據(jù)從主數(shù)據(jù)庫服務(wù)器(主機(jī))復(fù)制到從數(shù)據(jù)庫服務(wù)器(備機(jī)),二者通過TCP/IP建立連接,數(shù)據(jù)庫復(fù)制技術(shù)可以提供一種可靠、即時(shí)的備份機(jī)制。除此之外,數(shù)據(jù)庫復(fù)制技術(shù)還具有一大優(yōu)點(diǎn),即作為備份的從服務(wù)器可用于一些只讀操作,以分擔(dān)主機(jī)的部分負(fù)載。
主機(jī)數(shù)據(jù)庫在把邏輯日志緩沖區(qū)中的內(nèi)容寫往磁盤之前,先將其拷貝至數(shù)據(jù)復(fù)制緩沖區(qū)(數(shù)據(jù)復(fù)制緩沖區(qū)的大小和邏輯日志緩沖區(qū)的大小一樣),然后數(shù)據(jù)復(fù)制緩沖區(qū)的內(nèi)容在滿足一定條件時(shí)通過TCP/IP由網(wǎng)絡(luò)傳送到從服務(wù)器一端的數(shù)據(jù)復(fù)制緩沖區(qū)中。在從服務(wù)器一端,有線程負(fù)責(zé)接收數(shù)據(jù)復(fù)制緩沖區(qū)并將其存入恢復(fù)緩沖區(qū),另外有線程負(fù)責(zé)根據(jù)這些邏輯日志記錄操作數(shù)據(jù)庫,從而實(shí)現(xiàn)從服務(wù)器對(duì)主服務(wù)器的備份。
基于數(shù)據(jù)的日常磁帶備份技術(shù)顯然不適合業(yè)務(wù)同步應(yīng)用。
基于存儲(chǔ)設(shè)備的數(shù)據(jù)復(fù)制技術(shù)實(shí)現(xiàn)業(yè)務(wù)同步的工作過程如下:
① 設(shè)計(jì)業(yè)務(wù)狀態(tài)信息數(shù)據(jù)在存儲(chǔ)設(shè)備上的存儲(chǔ)結(jié)構(gòu);
② 采集業(yè)務(wù)狀態(tài)信息,將其存放到主存儲(chǔ)設(shè)備上;
③ 基于存儲(chǔ)設(shè)備的數(shù)據(jù)復(fù)制技術(shù)實(shí)現(xiàn)主/從存儲(chǔ)設(shè)備的業(yè)務(wù)狀態(tài)信息數(shù)據(jù)一致;
④ 從應(yīng)用系統(tǒng)從存儲(chǔ)設(shè)備獲取業(yè)務(wù)狀態(tài)信息數(shù)據(jù),完成從應(yīng)用系統(tǒng)的業(yè)務(wù)狀態(tài)同步。
基于主機(jī)的數(shù)據(jù)庫備份技術(shù)實(shí)現(xiàn)業(yè)務(wù)同步的工作過程如下:
① 設(shè)計(jì)業(yè)務(wù)狀態(tài)信息數(shù)據(jù)數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu),并在數(shù)據(jù)庫系統(tǒng)中建設(shè);
② 采集業(yè)務(wù)狀態(tài)信息,將其存放到數(shù)據(jù)庫中;
③ 基于主機(jī)的數(shù)據(jù)庫備份技術(shù)實(shí)現(xiàn)主/從數(shù)據(jù)庫的業(yè)務(wù)狀態(tài)信息數(shù)據(jù)一致;
④ 從應(yīng)用系統(tǒng)從數(shù)據(jù)庫中獲取業(yè)務(wù)狀態(tài)信息數(shù)據(jù),完成從應(yīng)用系統(tǒng)的業(yè)務(wù)狀態(tài)同步。
2種實(shí)現(xiàn)方法的性能都主要依賴于本身選擇的數(shù)據(jù)恢復(fù)技術(shù)的性能。此外,當(dāng)業(yè)務(wù)狀態(tài)信息數(shù)據(jù)量較大時(shí),而網(wǎng)絡(luò)環(huán)境相同,顯然以文件的方式存儲(chǔ)到存儲(chǔ)設(shè)備上比存儲(chǔ)入數(shù)據(jù)庫性能上要優(yōu)一些;但基于存儲(chǔ)設(shè)備的數(shù)據(jù)復(fù)制技術(shù)采用同步復(fù)制方式時(shí),增加系統(tǒng)處理和傳輸壓力,也會(huì)出現(xiàn)性能瓶頸,而異步復(fù)制方式數(shù)據(jù)一致性會(huì)有所損失。故業(yè)務(wù)同步應(yīng)用對(duì)業(yè)務(wù)狀態(tài)信息進(jìn)行分類與分析,根據(jù)業(yè)務(wù)狀態(tài)信息的數(shù)據(jù)量確定數(shù)據(jù)恢復(fù)技術(shù)的基本原則如下:
① 數(shù)據(jù)量大的關(guān)鍵信息采用同步復(fù)制方式的基于存儲(chǔ)設(shè)備的數(shù)據(jù)復(fù)制技術(shù);
② 數(shù)據(jù)量大的非重要信息可采用異步復(fù)制方式的基于存儲(chǔ)設(shè)備的數(shù)據(jù)復(fù)制技術(shù);
③ 數(shù)據(jù)量少的或非常關(guān)鍵的信息采用基于主機(jī)的數(shù)據(jù)庫備份技術(shù)。
某業(yè)務(wù)信息系統(tǒng)已具備主份業(yè)務(wù)中心和備份業(yè)務(wù)中心。完成兩業(yè)務(wù)中心的業(yè)務(wù)同步,根本是要完成兩中心間數(shù)據(jù)的同步。該信息系統(tǒng)需要同步的主要數(shù)據(jù)包括:運(yùn)行步驟、運(yùn)行程序、中間文件、產(chǎn)品文件、屬性和參數(shù)文件列表等。中間文件、產(chǎn)品文件和參數(shù)文件(二進(jìn)制、XML和文本等多種格式)較大,采用異步方式的基于存儲(chǔ)設(shè)備的數(shù)據(jù)復(fù)制技術(shù)。運(yùn)行步驟、運(yùn)行程序和屬性等運(yùn)行狀態(tài)信息數(shù)據(jù)量不大,且非常重要,采用基于主機(jī)的數(shù)據(jù)庫備份技術(shù)。故系統(tǒng)綜合使用2種技術(shù)進(jìn)行方案設(shè)計(jì),總體架構(gòu)采用C/S結(jié)構(gòu),數(shù)據(jù)同步服務(wù)端部署業(yè)務(wù)同步應(yīng)用服務(wù)。信息采集、信息存儲(chǔ)客戶端、信息恢復(fù)客戶端同時(shí)部署在主備兩業(yè)務(wù)中心,信息系統(tǒng)正常運(yùn)行時(shí),各類業(yè)務(wù)數(shù)據(jù)從主份業(yè)務(wù)中心同步至備份業(yè)務(wù)中心,當(dāng)主份業(yè)務(wù)中心故障后,啟動(dòng)備份業(yè)務(wù)中心接續(xù)業(yè)務(wù)運(yùn)行,同時(shí)主備業(yè)務(wù)中心備份功能互換,由備份業(yè)務(wù)中心負(fù)責(zé)數(shù)據(jù)的采集與存儲(chǔ),在主份業(yè)務(wù)中心故障修復(fù)后,完成備份業(yè)務(wù)中心向主份業(yè)務(wù)中心的數(shù)據(jù)同步,并擇機(jī)在主份業(yè)務(wù)中心進(jìn)行數(shù)據(jù)恢復(fù),使兩業(yè)務(wù)中心職能恢復(fù)正常。業(yè)務(wù)同步工作過程如圖1所示。

圖1 業(yè)務(wù)同步工作流程
Time Navigator軟件兼容各類數(shù)據(jù)復(fù)制技術(shù),通過業(yè)務(wù)系統(tǒng)與Time Navigator之間進(jìn)行控制信息交互,完成對(duì)各類業(yè)務(wù)數(shù)據(jù)同步與恢復(fù)的控制。業(yè)務(wù)同步應(yīng)用服務(wù)采用Time Navigator Server進(jìn)行管理,業(yè)務(wù)數(shù)據(jù)通過業(yè)務(wù)系統(tǒng)完成數(shù)據(jù)文件的組織與存儲(chǔ),信息存儲(chǔ)客戶端、信息恢復(fù)客戶端部署調(diào)度控制器、調(diào)度代理以及Time Navigator Client完成在2種工作模式下數(shù)據(jù)的復(fù)制,Time Navigator Client輔助Server進(jìn)行信息采集,根據(jù)業(yè)務(wù)信息系統(tǒng)主備工作模式以及業(yè)務(wù)數(shù)據(jù)不同的備份方式,通過調(diào)度控制器向各調(diào)度代理發(fā)送控制指令[14],調(diào)度代理通過調(diào)用控制臺(tái)命令[15]與Time Navigator Server進(jìn)行交互,設(shè)置各系統(tǒng)備份工作模式和各業(yè)務(wù)數(shù)據(jù)的復(fù)制方式和策略,并獲取相應(yīng)的執(zhí)行結(jié)果進(jìn)行過程監(jiān)視。具體設(shè)計(jì)架構(gòu)如圖2所示。

圖2 設(shè)計(jì)架構(gòu)
調(diào)度控制器通過TCP消息將控制指令發(fā)送給調(diào)度代理,消息分為2種:執(zhí)行命令參數(shù)和控制臺(tái)腳本參數(shù)。調(diào)度代理收到消息后根據(jù)不同的消息類型,調(diào)用相應(yīng)的控制臺(tái)程序執(zhí)行。具體處理步驟如圖3所示。

圖3 調(diào)度代理工作活動(dòng)流程
由圖3可知,整個(gè)業(yè)務(wù)同步應(yīng)用實(shí)現(xiàn)的核心在于調(diào)度代理如何完成業(yè)務(wù)同步邏輯到業(yè)務(wù)數(shù)據(jù)復(fù)制的轉(zhuǎn)換。以業(yè)務(wù)數(shù)據(jù)文件的復(fù)制為例,需要完成以下主要配置工作:主從服務(wù)器配置、雙向同步應(yīng)用配置、同步策略配置和數(shù)據(jù)同步監(jiān)控。具體配置如下:
(1) 編寫配置腳本NewApp.tsh
① 聲明變量
variable handleMyHost NULL_HANDLE
variable handleMyDestinationHost NULL_HANDLE
variable handleMyNewApplication NULL_HANDLE
variable handleMyNewReplication NULL_HANDLE
variable handleMyNewStrategy NULL_HANDLE
variable handleMyNewBackup NULL_HANDLE
② 完成主備業(yè)務(wù)中心文件存儲(chǔ)服務(wù)器配置
as HostName test2
as HostType 64
create HostMyHost
as HostName test3
as HostType 64
create HostMyDestinationHost
③ 完成主份業(yè)務(wù)中心文件復(fù)制應(yīng)用程序配置
as ApplicationHost MyHost
as ApplicationName test2.fs
as ApplicationType 3
as ApplicationEnable 1
as ApplicationOwner test2Administrator
as ApplicationOwnerPassword Windows2000
variablestringlist str_Env
TINA_FS_ROOT_DIR=c:MyDocument
as ApplicationEnvironment str_Env
erase str_Env
create ApplicationMyNewApplication
④ 完成備份業(yè)務(wù)中心文件存儲(chǔ)應(yīng)用程序配置
as ApplicationParentApp MyNewApplication
as ApplicationName test2.fs.rep
as ApplicationType 3
as ApplicationEnable 1
as ApplicationOwner test3Administrator
as ApplicationOwnerPassword Windows2000
variablestringlist str_Env
TINA_FS_ROOT_DIR=c:YourDocument
as ApplicationEnvironment str_Env
erasestr_Env
as ApplicationHost MyDestinationHost
create ApplicationMyNewReplication
⑤ 完成文件復(fù)制策略配置
variable handleMyHostGroup NULL_HANDLE
as ApplicationHostGroup &MyHostGroup
get MyNewApplication
as StrategyName 1
as StrategyType 3
as StrategyReplicaDestApp MyNewReplication
as StrategyHostGroup MyHostGroup
as StrategyReplicaKeepInst 1
create StrategyMyNewStrategy
⑥ 完成文件復(fù)制應(yīng)用
as BackupClassPath /
as BackupClassHostGroup MyHostGroup
as BackupClassStrategyName 1
create BackupClass MyNewBackup
⑦ 執(zhí)行腳本
tina_shell -catalog tina_test1-file c:NewApp.tsh
(2) 啟動(dòng)復(fù)制作業(yè)
tina_start_backup application test21.fsstrat A incr sync v_jobid catalog test1_tina identity admin:
(3) 獲取執(zhí)行結(jié)果
tina_acct -host test1-volume_unit kilo-start_date 201010100000 -output_format xml -file c:export.xml -catalog test1_tina -identity admin:
配置完成后,系統(tǒng)在日常運(yùn)行過程中根據(jù)備份策略自動(dòng)完成文件和數(shù)據(jù)庫的增量和全部備份。
該系統(tǒng)的RPO指標(biāo)為10 min,RTO指標(biāo)為2 h。經(jīng)過對(duì)該業(yè)務(wù)系統(tǒng)的數(shù)據(jù)分析,日常運(yùn)行每日新增文件數(shù)據(jù)量約20 GB,包括500 MB的XML文件和19.5 GB的圖像文件。每日數(shù)據(jù)增長(zhǎng)有2次峰值,每次持續(xù)30 min。數(shù)據(jù)庫日志增長(zhǎng)率平均每日400 MB左右。因此,為滿足RPO=10 min的指標(biāo),自動(dòng)增量備份策略設(shè)定為5 min。根據(jù)千兆局域網(wǎng)數(shù)據(jù)傳輸效率和速率分析,每5 min可完成7.5 GB數(shù)據(jù)備份,能夠滿足業(yè)務(wù)系統(tǒng)數(shù)據(jù)備份的數(shù)據(jù)量要求。該業(yè)務(wù)系統(tǒng)為軟件系統(tǒng),業(yè)務(wù)系統(tǒng)的恢復(fù)包括數(shù)據(jù)庫恢復(fù)、軟件的啟動(dòng)和新增數(shù)據(jù)的加載3個(gè)步驟。時(shí)間占用率較多是數(shù)據(jù)庫恢復(fù),由于系統(tǒng)長(zhǎng)期運(yùn)行備份,在恢復(fù)數(shù)據(jù)庫時(shí)需要對(duì)大量數(shù)據(jù)庫數(shù)據(jù)進(jìn)行恢復(fù),可能會(huì)造成恢復(fù)時(shí)間巨大,影響業(yè)務(wù)系統(tǒng)業(yè)務(wù)恢復(fù),因此可采用每周定期恢復(fù)部分的策略,每次數(shù)據(jù)庫恢復(fù)時(shí)間在30 min以內(nèi),保證RTO指標(biāo)的完成。
通過對(duì)各類數(shù)據(jù)復(fù)制技術(shù)優(yōu)缺點(diǎn)的分析,結(jié)合業(yè)務(wù)系統(tǒng)業(yè)務(wù)同步需求,制定出業(yè)務(wù)系統(tǒng)的業(yè)務(wù)同步工作流程,并據(jù)此設(shè)計(jì)業(yè)務(wù)同步應(yīng)用的架構(gòu),實(shí)現(xiàn)了調(diào)度控制策略與業(yè)務(wù)應(yīng)用的有機(jī)結(jié)合,提高了數(shù)據(jù)復(fù)制的實(shí)時(shí)性,并支持主備系統(tǒng)之間的往復(fù)切換,提高了業(yè)務(wù)系統(tǒng)的健壯性。使用Time Navigator軟件作為業(yè)務(wù)系統(tǒng)與業(yè)務(wù)同步系統(tǒng)之間交互的橋梁,充分利用了Time Navigator支持面廣、高性能且穩(wěn)定等特點(diǎn),提高了系統(tǒng)運(yùn)行的穩(wěn)定性。應(yīng)用表明,系統(tǒng)
設(shè)計(jì)達(dá)到了應(yīng)用級(jí)災(zāi)備等級(jí),可支持長(zhǎng)期穩(wěn)定可靠運(yùn)行。