馬英哲
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
容災備份能夠為業(yè)務信息系統(tǒng)提供一套可靠的數(shù)據(jù)備份系統(tǒng),其目的在于當主份系統(tǒng)遭受毀滅性災難時,能在較短的時間內(nèi)迅速代替或恢復業(yè)務信息系統(tǒng),其核心技術是數(shù)據(jù)復制。目前,各類數(shù)據(jù)復制技術和方法大量應用于系統(tǒng)數(shù)據(jù)庫的災備研究中,文獻[1-4]闡述了各類ORACLE數(shù)據(jù)庫同步方法,文獻[5-7]詳述了MySQL數(shù)據(jù)庫的同步機制,文獻[8]針對阿里巴巴的OceanBase數(shù)據(jù)庫論述了同步的機理,一些新興的分布式數(shù)據(jù)庫的備份也在文獻[9-10]進行了說明。隨著大數(shù)據(jù)時代的到來,業(yè)務系統(tǒng)的數(shù)據(jù)不僅保存在數(shù)據(jù)庫中,業(yè)務應用的同步也不僅依賴于數(shù)據(jù)庫,通過數(shù)據(jù)庫的備份已經(jīng)不能滿足業(yè)務應用同步的需求,因此容災備份系統(tǒng)的研究重點已經(jīng)從簡單的數(shù)據(jù)級容災發(fā)展到業(yè)務級容災階段[11],需要結(jié)合業(yè)務系統(tǒng)的特點以及數(shù)據(jù)產(chǎn)生的時序,針對不同的數(shù)據(jù)類型,選擇合適的復制技術和復制方式進行業(yè)務數(shù)據(jù)同步[12-13]。
面對業(yè)務同步應用需求,依據(jù)業(yè)務系統(tǒng)數(shù)據(jù)流程進行業(yè)務同步調(diào)度,提出了一種利用數(shù)據(jù)復制技術實現(xiàn)業(yè)務同步應用的方法。
在災備系統(tǒng)中,常用的數(shù)據(jù)復制技術有:基于存儲設備的數(shù)據(jù)復制技術、基于數(shù)據(jù)的日常磁帶備份技術和基于主機(數(shù)據(jù)庫軟件)的數(shù)據(jù)庫復制技術。
基于存儲設備的數(shù)據(jù)復制技術又稱為智能存儲系統(tǒng)的遠程鏡像,它的數(shù)據(jù)復制是在存儲系統(tǒng)內(nèi)部實現(xiàn)的,與主機和應用系統(tǒng)無關?;诖鎯υO備的數(shù)據(jù)復制技術對數(shù)據(jù)具有較高的安全保護,但是其(不論同步方式還是異步方式)最大的缺點是遠程鏡像需要相應的存儲設備并具有非常好的網(wǎng)絡條件,投資很高。
基于存儲設備的數(shù)據(jù)復制技術在實現(xiàn)方式上可分為同步和異步2種。
① 同步數(shù)據(jù)復制:主存儲設備在備份存儲設備返回確認信息后,才給應用系統(tǒng)返回確認信息。這種方式能最大程度地保持主/備機數(shù)據(jù)的一致,在災難發(fā)生時能在最短時間內(nèi)恢復業(yè)務運行。但這種方式增加了主機工作負載,要求系統(tǒng)能夠承受同步拷貝帶來的性能損失,對應用系統(tǒng)有明顯的影響,對網(wǎng)絡狀況也有很高的要求。
優(yōu)點:基本可以保證主/備機數(shù)據(jù)完全一致。
缺點:增加了主機的工作負載,要求系統(tǒng)能夠承受同步拷貝帶來的性能損失。備份系統(tǒng)故障同樣影響應用系統(tǒng)。
② 異步數(shù)據(jù)復制:與同步數(shù)據(jù)復制的區(qū)別在于異步數(shù)據(jù)復制系統(tǒng)將數(shù)據(jù)寫到主存儲設備后直接返回,不需要等待主/備機的數(shù)據(jù)同步,異步數(shù)據(jù)復制的主存儲設備每隔一定時間(可設置)將數(shù)據(jù)同步到備機存儲設備上。
優(yōu)點:網(wǎng)絡和備份存儲設備的故障不會影響主存儲設備的正常工作。當主/備機房之間數(shù)據(jù)鏈路帶寬成為瓶頸時,異步方式可以提高性能。
缺點:數(shù)據(jù)有可能丟失。在異步復制不能成功完成的情況下,數(shù)據(jù)的一致性難以得到保證。
使用數(shù)據(jù)庫的備份和恢復功能,可在每日日終后對主機數(shù)據(jù)庫進行備份,次日將備份磁帶恢復到災難備份中心主機??紤]到數(shù)據(jù)集中后,數(shù)據(jù)的存儲量較大,如果每日都將數(shù)據(jù)庫的所有數(shù)據(jù)用磁帶機備份下來,備份量太大,所以建議采用增量備份的方式來備份數(shù)據(jù),減小用戶的工作量。
優(yōu)點:技術上易于實現(xiàn)。只需要一般存儲設備,不需要租用光纖,投資很小。
缺點:恢復數(shù)據(jù)時間較長,往往造成短暫的業(yè)務停頓。
基于主機的數(shù)據(jù)庫復制是指把數(shù)據(jù)從主數(shù)據(jù)庫服務器(主機)復制到從數(shù)據(jù)庫服務器(備機),二者通過TCP/IP建立連接,數(shù)據(jù)庫復制技術可以提供一種可靠、即時的備份機制。除此之外,數(shù)據(jù)庫復制技術還具有一大優(yōu)點,即作為備份的從服務器可用于一些只讀操作,以分擔主機的部分負載。
主機數(shù)據(jù)庫在把邏輯日志緩沖區(qū)中的內(nèi)容寫往磁盤之前,先將其拷貝至數(shù)據(jù)復制緩沖區(qū)(數(shù)據(jù)復制緩沖區(qū)的大小和邏輯日志緩沖區(qū)的大小一樣),然后數(shù)據(jù)復制緩沖區(qū)的內(nèi)容在滿足一定條件時通過TCP/IP由網(wǎng)絡傳送到從服務器一端的數(shù)據(jù)復制緩沖區(qū)中。在從服務器一端,有線程負責接收數(shù)據(jù)復制緩沖區(qū)并將其存入恢復緩沖區(qū),另外有線程負責根據(jù)這些邏輯日志記錄操作數(shù)據(jù)庫,從而實現(xiàn)從服務器對主服務器的備份。
基于數(shù)據(jù)的日常磁帶備份技術顯然不適合業(yè)務同步應用。
基于存儲設備的數(shù)據(jù)復制技術實現(xiàn)業(yè)務同步的工作過程如下:
① 設計業(yè)務狀態(tài)信息數(shù)據(jù)在存儲設備上的存儲結(jié)構(gòu);
② 采集業(yè)務狀態(tài)信息,將其存放到主存儲設備上;
③ 基于存儲設備的數(shù)據(jù)復制技術實現(xiàn)主/從存儲設備的業(yè)務狀態(tài)信息數(shù)據(jù)一致;
④ 從應用系統(tǒng)從存儲設備獲取業(yè)務狀態(tài)信息數(shù)據(jù),完成從應用系統(tǒng)的業(yè)務狀態(tài)同步。
基于主機的數(shù)據(jù)庫備份技術實現(xiàn)業(yè)務同步的工作過程如下:
① 設計業(yè)務狀態(tài)信息數(shù)據(jù)數(shù)據(jù)庫存儲結(jié)構(gòu),并在數(shù)據(jù)庫系統(tǒng)中建設;
② 采集業(yè)務狀態(tài)信息,將其存放到數(shù)據(jù)庫中;
③ 基于主機的數(shù)據(jù)庫備份技術實現(xiàn)主/從數(shù)據(jù)庫的業(yè)務狀態(tài)信息數(shù)據(jù)一致;
④ 從應用系統(tǒng)從數(shù)據(jù)庫中獲取業(yè)務狀態(tài)信息數(shù)據(jù),完成從應用系統(tǒng)的業(yè)務狀態(tài)同步。
2種實現(xiàn)方法的性能都主要依賴于本身選擇的數(shù)據(jù)恢復技術的性能。此外,當業(yè)務狀態(tài)信息數(shù)據(jù)量較大時,而網(wǎng)絡環(huán)境相同,顯然以文件的方式存儲到存儲設備上比存儲入數(shù)據(jù)庫性能上要優(yōu)一些;但基于存儲設備的數(shù)據(jù)復制技術采用同步復制方式時,增加系統(tǒng)處理和傳輸壓力,也會出現(xiàn)性能瓶頸,而異步復制方式數(shù)據(jù)一致性會有所損失。故業(yè)務同步應用對業(yè)務狀態(tài)信息進行分類與分析,根據(jù)業(yè)務狀態(tài)信息的數(shù)據(jù)量確定數(shù)據(jù)恢復技術的基本原則如下:
① 數(shù)據(jù)量大的關鍵信息采用同步復制方式的基于存儲設備的數(shù)據(jù)復制技術;
② 數(shù)據(jù)量大的非重要信息可采用異步復制方式的基于存儲設備的數(shù)據(jù)復制技術;
③ 數(shù)據(jù)量少的或非常關鍵的信息采用基于主機的數(shù)據(jù)庫備份技術。
某業(yè)務信息系統(tǒng)已具備主份業(yè)務中心和備份業(yè)務中心。完成兩業(yè)務中心的業(yè)務同步,根本是要完成兩中心間數(shù)據(jù)的同步。該信息系統(tǒng)需要同步的主要數(shù)據(jù)包括:運行步驟、運行程序、中間文件、產(chǎn)品文件、屬性和參數(shù)文件列表等。中間文件、產(chǎn)品文件和參數(shù)文件(二進制、XML和文本等多種格式)較大,采用異步方式的基于存儲設備的數(shù)據(jù)復制技術。運行步驟、運行程序和屬性等運行狀態(tài)信息數(shù)據(jù)量不大,且非常重要,采用基于主機的數(shù)據(jù)庫備份技術。故系統(tǒng)綜合使用2種技術進行方案設計,總體架構(gòu)采用C/S結(jié)構(gòu),數(shù)據(jù)同步服務端部署業(yè)務同步應用服務。信息采集、信息存儲客戶端、信息恢復客戶端同時部署在主備兩業(yè)務中心,信息系統(tǒng)正常運行時,各類業(yè)務數(shù)據(jù)從主份業(yè)務中心同步至備份業(yè)務中心,當主份業(yè)務中心故障后,啟動備份業(yè)務中心接續(xù)業(yè)務運行,同時主備業(yè)務中心備份功能互換,由備份業(yè)務中心負責數(shù)據(jù)的采集與存儲,在主份業(yè)務中心故障修復后,完成備份業(yè)務中心向主份業(yè)務中心的數(shù)據(jù)同步,并擇機在主份業(yè)務中心進行數(shù)據(jù)恢復,使兩業(yè)務中心職能恢復正常。業(yè)務同步工作過程如圖1所示。
圖1 業(yè)務同步工作流程
Time Navigator軟件兼容各類數(shù)據(jù)復制技術,通過業(yè)務系統(tǒng)與Time Navigator之間進行控制信息交互,完成對各類業(yè)務數(shù)據(jù)同步與恢復的控制。業(yè)務同步應用服務采用Time Navigator Server進行管理,業(yè)務數(shù)據(jù)通過業(yè)務系統(tǒng)完成數(shù)據(jù)文件的組織與存儲,信息存儲客戶端、信息恢復客戶端部署調(diào)度控制器、調(diào)度代理以及Time Navigator Client完成在2種工作模式下數(shù)據(jù)的復制,Time Navigator Client輔助Server進行信息采集,根據(jù)業(yè)務信息系統(tǒng)主備工作模式以及業(yè)務數(shù)據(jù)不同的備份方式,通過調(diào)度控制器向各調(diào)度代理發(fā)送控制指令[14],調(diào)度代理通過調(diào)用控制臺命令[15]與Time Navigator Server進行交互,設置各系統(tǒng)備份工作模式和各業(yè)務數(shù)據(jù)的復制方式和策略,并獲取相應的執(zhí)行結(jié)果進行過程監(jiān)視。具體設計架構(gòu)如圖2所示。
圖2 設計架構(gòu)
調(diào)度控制器通過TCP消息將控制指令發(fā)送給調(diào)度代理,消息分為2種:執(zhí)行命令參數(shù)和控制臺腳本參數(shù)。調(diào)度代理收到消息后根據(jù)不同的消息類型,調(diào)用相應的控制臺程序執(zhí)行。具體處理步驟如圖3所示。
圖3 調(diào)度代理工作活動流程
由圖3可知,整個業(yè)務同步應用實現(xiàn)的核心在于調(diào)度代理如何完成業(yè)務同步邏輯到業(yè)務數(shù)據(jù)復制的轉(zhuǎn)換。以業(yè)務數(shù)據(jù)文件的復制為例,需要完成以下主要配置工作:主從服務器配置、雙向同步應用配置、同步策略配置和數(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è)務中心文件存儲服務器配置
as HostName test2
as HostType 64
create HostMyHost
as HostName test3
as HostType 64
create HostMyDestinationHost
③ 完成主份業(yè)務中心文件復制應用程序配置
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è)務中心文件存儲應用程序配置
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
⑤ 完成文件復制策略配置
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
⑥ 完成文件復制應用
as BackupClassPath /
as BackupClassHostGroup MyHostGroup
as BackupClassStrategyName 1
create BackupClass MyNewBackup
⑦ 執(zhí)行腳本
tina_shell -catalog tina_test1-file c:NewApp.tsh
(2) 啟動復制作業(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)在日常運行過程中根據(jù)備份策略自動完成文件和數(shù)據(jù)庫的增量和全部備份。
該系統(tǒng)的RPO指標為10 min,RTO指標為2 h。經(jīng)過對該業(yè)務系統(tǒng)的數(shù)據(jù)分析,日常運行每日新增文件數(shù)據(jù)量約20 GB,包括500 MB的XML文件和19.5 GB的圖像文件。每日數(shù)據(jù)增長有2次峰值,每次持續(xù)30 min。數(shù)據(jù)庫日志增長率平均每日400 MB左右。因此,為滿足RPO=10 min的指標,自動增量備份策略設定為5 min。根據(jù)千兆局域網(wǎng)數(shù)據(jù)傳輸效率和速率分析,每5 min可完成7.5 GB數(shù)據(jù)備份,能夠滿足業(yè)務系統(tǒng)數(shù)據(jù)備份的數(shù)據(jù)量要求。該業(yè)務系統(tǒng)為軟件系統(tǒng),業(yè)務系統(tǒng)的恢復包括數(shù)據(jù)庫恢復、軟件的啟動和新增數(shù)據(jù)的加載3個步驟。時間占用率較多是數(shù)據(jù)庫恢復,由于系統(tǒng)長期運行備份,在恢復數(shù)據(jù)庫時需要對大量數(shù)據(jù)庫數(shù)據(jù)進行恢復,可能會造成恢復時間巨大,影響業(yè)務系統(tǒng)業(yè)務恢復,因此可采用每周定期恢復部分的策略,每次數(shù)據(jù)庫恢復時間在30 min以內(nèi),保證RTO指標的完成。
通過對各類數(shù)據(jù)復制技術優(yōu)缺點的分析,結(jié)合業(yè)務系統(tǒng)業(yè)務同步需求,制定出業(yè)務系統(tǒng)的業(yè)務同步工作流程,并據(jù)此設計業(yè)務同步應用的架構(gòu),實現(xiàn)了調(diào)度控制策略與業(yè)務應用的有機結(jié)合,提高了數(shù)據(jù)復制的實時性,并支持主備系統(tǒng)之間的往復切換,提高了業(yè)務系統(tǒng)的健壯性。使用Time Navigator軟件作為業(yè)務系統(tǒng)與業(yè)務同步系統(tǒng)之間交互的橋梁,充分利用了Time Navigator支持面廣、高性能且穩(wěn)定等特點,提高了系統(tǒng)運行的穩(wěn)定性。應用表明,系統(tǒng)
設計達到了應用級災備等級,可支持長期穩(wěn)定可靠運行。