国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于交易報(bào)文的數(shù)據(jù)實(shí)時(shí)同步方法研究

2017-12-08 03:26:13
關(guān)鍵詞:異地日志備份

尚 海 鷹

(上海久譽(yù)軟件系統(tǒng)有限公司 上海 200233)

基于交易報(bào)文的數(shù)據(jù)實(shí)時(shí)同步方法研究

尚 海 鷹

(上海久譽(yù)軟件系統(tǒng)有限公司 上海 200233)

概括并分析了計(jì)算機(jī)信息系統(tǒng)中常見(jiàn)的異地?cái)?shù)據(jù)同步方法。針對(duì)事務(wù)處理系統(tǒng)的大業(yè)務(wù)量場(chǎng)景,純系統(tǒng)級(jí)的數(shù)據(jù)實(shí)時(shí)同步方法受限于線路帶寬的制約。提出的基于交易報(bào)文的數(shù)據(jù)實(shí)時(shí)同步方法,將事務(wù)處理系統(tǒng)的交易報(bào)文歸納為應(yīng)用級(jí)的報(bào)文重做日志,采用報(bào)文分解與封裝、報(bào)文同步與緩沖池管理等方法與策略,以很低的線路帶寬實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的實(shí)時(shí)同步目標(biāo)。通過(guò)真實(shí)業(yè)務(wù)數(shù)據(jù)系統(tǒng)性的實(shí)驗(yàn)與分析,驗(yàn)證了方法的可行性與有效性?;谔岢龅姆椒?,大業(yè)務(wù)量下應(yīng)用級(jí)容災(zāi)備份的實(shí)現(xiàn)成本可顯著降低。

事務(wù)處理系統(tǒng) 容災(zāi)備份 重做日志 數(shù)據(jù)復(fù)制 數(shù)據(jù)恢復(fù)目標(biāo)

0 引 言

隨著計(jì)算機(jī)信息系統(tǒng)在互聯(lián)網(wǎng)時(shí)代的業(yè)務(wù)模式不斷創(chuàng)新,人們對(duì)網(wǎng)絡(luò)應(yīng)用的依賴愈益緊密。各類金融信息、隱私信息散布在網(wǎng)絡(luò)化的信息系統(tǒng)中,這些數(shù)據(jù)關(guān)系著廣大用戶及企業(yè)的切身利益。近幾年來(lái),黑客入侵、業(yè)務(wù)數(shù)據(jù)竊密、數(shù)據(jù)篡改偽造、蠕蟲(chóng)與勒索病毒等非法行為在網(wǎng)絡(luò)上的施虐已引起社會(huì)各界的高度警覺(jué)[1],信息安全形勢(shì)日趨嚴(yán)峻,信息系統(tǒng)的業(yè)務(wù)持續(xù)性及業(yè)務(wù)數(shù)據(jù)保護(hù)絲毫不可懈怠。

依照國(guó)家有關(guān)計(jì)算機(jī)信息系統(tǒng)安全保護(hù)等級(jí)劃分準(zhǔn)則,關(guān)鍵業(yè)務(wù)信息系統(tǒng)擬在異地建立一個(gè)應(yīng)用級(jí)的災(zāi)難備份中心,通過(guò)數(shù)據(jù)同步技術(shù),保持兩地業(yè)務(wù)數(shù)據(jù)的一致性與完整性。

數(shù)據(jù)同步作為異地災(zāi)難備份的核心任務(wù),需要部署相應(yīng)的設(shè)備設(shè)施及租用廣域網(wǎng)線路。企業(yè)在這類信息安全措施上的投入是沒(méi)有直接回報(bào)的,年復(fù)一年的運(yùn)行費(fèi)用,對(duì)企業(yè)是個(gè)負(fù)擔(dān)。

對(duì)于大業(yè)務(wù)量的事務(wù)處理系統(tǒng),為避免業(yè)務(wù)數(shù)據(jù)的丟失,異地?cái)?shù)據(jù)實(shí)時(shí)同步需要占用很高的線路帶寬,甚至依賴于裸光纖上的波分復(fù)用技術(shù),這樣的成本對(duì)于效益一般的企業(yè)或者非營(yíng)利性的公用事業(yè)單位均難以承受。

本文提出基于交易報(bào)文的數(shù)據(jù)實(shí)時(shí)同步方法,其目的就是化解大業(yè)務(wù)量事務(wù)處理系統(tǒng)中數(shù)據(jù)實(shí)時(shí)同步與實(shí)現(xiàn)成本之間的矛盾,以低帶寬的線路條件實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)零丟失的備份與恢復(fù)目標(biāo)。

1 事務(wù)處理系統(tǒng)的數(shù)據(jù)復(fù)制技術(shù)

事務(wù)處理系統(tǒng)的業(yè)務(wù)數(shù)據(jù)一般由關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)管理,主備數(shù)據(jù)庫(kù)之間需要維持?jǐn)?shù)據(jù)同步。數(shù)據(jù)同步技術(shù)的目的就是維持主備數(shù)據(jù)庫(kù)業(yè)務(wù)數(shù)據(jù)的一致性。

數(shù)據(jù)庫(kù)系統(tǒng)管理著各類數(shù)據(jù)表,其存儲(chǔ)空間依照邏輯關(guān)系大致映照為數(shù)據(jù)庫(kù)表空間及相關(guān)的數(shù)據(jù)文件、文件系統(tǒng)及相關(guān)的邏輯卷或裸設(shè)備、磁盤(pán)陣列邏輯分配單元LUN及相對(duì)應(yīng)的磁盤(pán)卷組(RAID組)。各層面供應(yīng)商在數(shù)據(jù)復(fù)制這個(gè)細(xì)分領(lǐng)域各顯神通,維持?jǐn)?shù)據(jù)一致性的技術(shù)與開(kāi)銷也十分復(fù)雜,其典型的技術(shù)方案,如表1所示。

表1 數(shù)據(jù)復(fù)制技術(shù)的分類

磁盤(pán)陣列層面的數(shù)據(jù)復(fù)制技術(shù)對(duì)于上層的操作系統(tǒng)及數(shù)據(jù)庫(kù)基本透明,具體的數(shù)據(jù)復(fù)制策略一般可由系統(tǒng)管理員配置與實(shí)施。數(shù)據(jù)復(fù)制可以采用異步方式或?qū)崟r(shí)同步方式。該方法采用的技術(shù)與存儲(chǔ)設(shè)備有關(guān),需要存儲(chǔ)設(shè)備廠商專門(mén)軟件授權(quán),費(fèi)用高、靈活性差。鑒于其塊結(jié)構(gòu)存儲(chǔ)的特點(diǎn),復(fù)制數(shù)據(jù)的冗余率高[2],復(fù)制流量大,其實(shí)時(shí)同步方式通常對(duì)線路帶寬的要求很高。另外,該層面缺乏與數(shù)據(jù)庫(kù)事務(wù)保護(hù)機(jī)制的溝通,異步復(fù)制方式恢復(fù)時(shí)容易導(dǎo)致業(yè)務(wù)數(shù)據(jù)的丟失,嚴(yán)重時(shí)可導(dǎo)致數(shù)據(jù)庫(kù)的恢復(fù)失敗。

文件系統(tǒng)或邏輯卷的數(shù)據(jù)復(fù)制技術(shù)與磁盤(pán)陣列的數(shù)據(jù)復(fù)制技術(shù)相似,但無(wú)需依賴特定的存儲(chǔ)設(shè)備,軟件授權(quán)成本低。該技術(shù)增加了宿主服務(wù)器的處理器資源負(fù)擔(dān),在復(fù)雜的計(jì)算環(huán)境下數(shù)據(jù)復(fù)制的穩(wěn)定性較差,容易造成備份端系統(tǒng)的數(shù)據(jù)不一致而導(dǎo)致恢復(fù)失敗。

面向數(shù)據(jù)庫(kù)系統(tǒng)的復(fù)制技術(shù)通過(guò)在線日志或歸檔日志同步數(shù)據(jù),具有顯著的穩(wěn)定性與可恢復(fù)性,數(shù)據(jù)傳輸?shù)娜哂喽容^低,異步日志傳遞對(duì)線路帶寬沒(méi)有特別要求,一般關(guān)系型數(shù)據(jù)庫(kù)的內(nèi)核均支持該方式的數(shù)據(jù)同步。大交易量的數(shù)據(jù)庫(kù)系統(tǒng)若采用實(shí)時(shí)同步方式傳遞在線日志記錄,則對(duì)線路的帶寬及穩(wěn)定性亦有較高的要求。其同步機(jī)制相當(dāng)于跨數(shù)據(jù)庫(kù)的二階段事務(wù)提交,異地?cái)?shù)據(jù)庫(kù)未成功接收到在線交易日志或未能返回成功的事務(wù)重做信息,則本地?cái)?shù)據(jù)庫(kù)系統(tǒng)相關(guān)事務(wù)便會(huì)掛起,進(jìn)而引起業(yè)務(wù)系統(tǒng)停頓。

數(shù)據(jù)表的復(fù)制一般用于兩個(gè)獨(dú)立活動(dòng)的數(shù)據(jù)庫(kù)系統(tǒng),以維持某類業(yè)務(wù)數(shù)據(jù)的一致性。復(fù)制哪些表或表中的哪些數(shù)據(jù)行,與應(yīng)用系統(tǒng)的設(shè)計(jì)密切相關(guān)[3],故數(shù)據(jù)表的復(fù)制由應(yīng)用程序開(kāi)發(fā)者或業(yè)務(wù)系統(tǒng)維護(hù)人員來(lái)配置與管理。鑒于數(shù)據(jù)表管理的復(fù)雜性,大型事務(wù)處理系統(tǒng)很少采用表級(jí)復(fù)制技術(shù)來(lái)實(shí)現(xiàn)系統(tǒng)級(jí)的異地容災(zāi)備份。

本文基于對(duì)事務(wù)處理系統(tǒng)及其業(yè)務(wù)流程的深入理解,以應(yīng)用軟件開(kāi)發(fā)及數(shù)據(jù)庫(kù)管理的雙視角,提出一種融入到應(yīng)用程序框架的業(yè)務(wù)數(shù)據(jù)實(shí)時(shí)同步方法,意在克服純系統(tǒng)級(jí)數(shù)據(jù)同步技術(shù)的局限性,化解數(shù)據(jù)同步技術(shù)在完整性、實(shí)時(shí)性與實(shí)現(xiàn)成本之間的矛盾,體驗(yàn)異地容災(zāi)備份的最佳實(shí)踐。

2 事務(wù)處理系統(tǒng)中的數(shù)據(jù)流分析

一個(gè)規(guī)?;氖聞?wù)處理系統(tǒng)由若干層次構(gòu)成,如前置通信層或者業(yè)務(wù)界面層、事務(wù)邏輯處理層、業(yè)務(wù)數(shù)據(jù)管理層等。業(yè)務(wù)界面層的服務(wù)程序部署在后臺(tái)的一般為B/S架構(gòu),部署在客戶端的一般為C/S架構(gòu)。C/S架構(gòu)需要在平臺(tái)測(cè)部署前置通信程序,以接收客戶端提交的事務(wù)交易報(bào)文。無(wú)論何種架構(gòu),前端系統(tǒng)通常將事務(wù)封裝成約定的交易報(bào)文格式交付給后端系統(tǒng)進(jìn)一步處理。

B/S架構(gòu)的系統(tǒng)由于界面呈現(xiàn)的元素,如頁(yè)面、表單、圖片等需從后臺(tái)系統(tǒng)實(shí)時(shí)獲取,互聯(lián)網(wǎng)業(yè)務(wù)門(mén)戶一般部署較高的帶寬,但業(yè)務(wù)界面上的瀏覽與操作并不會(huì)持續(xù)產(chǎn)生事務(wù)的提交,B/S架構(gòu)實(shí)際事務(wù)的提交流量與C/S架構(gòu)下事務(wù)的提交流量相仿。

本文在后續(xù)章節(jié)中將各類架構(gòu)的交易報(bào)文形成端,統(tǒng)稱為交易報(bào)文層。

事務(wù)處理系統(tǒng)每個(gè)層面的數(shù)據(jù)流量呈金字塔形態(tài),從前端交易報(bào)文的形成至后臺(tái)業(yè)務(wù)數(shù)據(jù)的落地,數(shù)據(jù)流量以量級(jí)遞增。如表2所示。百字節(jié)的單筆業(yè)務(wù)交易有可能牽動(dòng)百K字節(jié)存儲(chǔ)塊的變更。

表2 業(yè)務(wù)數(shù)據(jù)的層次與流量

各事務(wù)處理系統(tǒng)之間通常租用點(diǎn)到點(diǎn)專線進(jìn)行業(yè)務(wù)數(shù)據(jù)交換。三大通信運(yùn)營(yíng)商以2 M帶寬的DDN、SDH、MSTP等各類型線路為租賃及計(jì)費(fèi)單元,符合實(shí)際應(yīng)用中的業(yè)務(wù)數(shù)據(jù)流量需求[4]。單個(gè)業(yè)務(wù)網(wǎng)點(diǎn)通常采用更低的9600 bps~64 Kbps帶寬線路或采用逐漸流行的GPRS無(wú)線APN方式接入,事務(wù)處理后臺(tái)系統(tǒng)以E1線路或運(yùn)營(yíng)商無(wú)線APN專網(wǎng)線路等實(shí)現(xiàn)廣域網(wǎng)鏈路匯聚,匯聚線路總帶寬一般在2 Mbps至30 Mbps之間。

顯然,事務(wù)處理系統(tǒng)在交易報(bào)文的收發(fā)端其數(shù)據(jù)流量甚少,數(shù)據(jù)冗余度極低,交易報(bào)文以精簡(jiǎn)的格式包羅了事務(wù)處理系統(tǒng)的業(yè)務(wù)變更信息。通常單個(gè)交易報(bào)文從幾十字節(jié)到幾百字節(jié)不等,100萬(wàn)筆的業(yè)務(wù)量才產(chǎn)生幾十兆至幾百兆的總數(shù)據(jù)流量。若將主生產(chǎn)系統(tǒng)收到的交易報(bào)文實(shí)時(shí)復(fù)制到異地備份系統(tǒng),理論上以最小的代價(jià)實(shí)現(xiàn)了業(yè)務(wù)數(shù)據(jù)的同步。

3 交易報(bào)文的同步方法實(shí)現(xiàn)

3.1 融合同步的策略

交易報(bào)文必須經(jīng)過(guò)業(yè)務(wù)邏輯層的處理才能落地為持久態(tài)的業(yè)務(wù)數(shù)據(jù)。單純采用交易報(bào)文的同步方式,需要在異地開(kāi)啟活動(dòng)的應(yīng)用系統(tǒng)及相應(yīng)的數(shù)據(jù)庫(kù)。這種雙活的應(yīng)用模式實(shí)際運(yùn)用十分復(fù)雜。建立在實(shí)際業(yè)務(wù)環(huán)境中的數(shù)據(jù)庫(kù)管理系統(tǒng)還承擔(dān)著日常業(yè)務(wù)管理的訪問(wèn)需求。這些后臺(tái)管理業(yè)務(wù),通過(guò)不同的程序?qū)訑?shù)據(jù)庫(kù)系統(tǒng),如此,本地?cái)?shù)據(jù)庫(kù)與異地?cái)?shù)據(jù)庫(kù)隨著活動(dòng)時(shí)間的積累將存在很大的差異性。采用存儲(chǔ)系統(tǒng)層面雙向數(shù)據(jù)實(shí)時(shí)同步的機(jī)制,雖可以消除差異,但結(jié)構(gòu)復(fù)雜且成本巨大[5]。實(shí)際上異地雙活應(yīng)用系統(tǒng)也非必要的業(yè)務(wù)需求。

為避免兩地?cái)?shù)據(jù)庫(kù)的差異性,本文提出的交易報(bào)文同步方法并非孤立地應(yīng)用在實(shí)際系統(tǒng)中。該方法的核心思想是在數(shù)據(jù)流量大的底層(如數(shù)據(jù)庫(kù)層)采用數(shù)據(jù)異步復(fù)制技術(shù),在數(shù)據(jù)流量小的上層(交易報(bào)文層)采用數(shù)據(jù)實(shí)時(shí)同步復(fù)制技術(shù),從而彌補(bǔ)系統(tǒng)層數(shù)據(jù)異步復(fù)制造成的近期交易數(shù)據(jù)的缺失,使數(shù)據(jù)同步完整性、實(shí)時(shí)性與技術(shù)成本之間的矛盾得以化解。

3.2 交易報(bào)文同步方法的構(gòu)成

本文提出的交易報(bào)文實(shí)時(shí)同步方法建立在事務(wù)處理系統(tǒng)應(yīng)用軟件及數(shù)據(jù)庫(kù)管理系統(tǒng)的環(huán)境下[6]。

生產(chǎn)數(shù)據(jù)庫(kù)系統(tǒng)將歸檔日志傳遞到異地?cái)?shù)據(jù)庫(kù)系統(tǒng),異地?cái)?shù)據(jù)庫(kù)系統(tǒng)將接收到的歸檔日志重做回備份數(shù)據(jù)庫(kù),這是一個(gè)穩(wěn)定的、成本低廉的備份數(shù)據(jù)庫(kù)同步與恢復(fù)機(jī)制,但備份數(shù)據(jù)庫(kù)與生產(chǎn)數(shù)據(jù)庫(kù)始終存在著差異(在線日志或未歸檔日志中的事務(wù)數(shù)據(jù))。

交易報(bào)文的同步方法旨在兩地事務(wù)處理系統(tǒng)中部署一對(duì)交易報(bào)文的同步管理程序與交易同步報(bào)文緩沖池,簡(jiǎn)稱交易報(bào)文同步系統(tǒng)。主系統(tǒng)同步程序?qū)⒋幚淼慕灰讏?bào)文分解、驗(yàn)證與再封裝,封裝后的交易同步報(bào)文增加了交易識(shí)別號(hào)、時(shí)間戳、會(huì)話標(biāo)識(shí)號(hào)等必要的信息[7],可理解為應(yīng)用級(jí)的交易重做日志,并按設(shè)定的工作模式持續(xù)地將應(yīng)用級(jí)的交易同步報(bào)文傳遞到異地系統(tǒng)。本地應(yīng)用系統(tǒng)在處理交易報(bào)文的后續(xù)流程中將交易識(shí)別號(hào)等相關(guān)信息隨數(shù)據(jù)庫(kù)事務(wù)的提交同步記錄到交易狀態(tài)表。

在災(zāi)難恢復(fù)過(guò)程中,異地備份數(shù)據(jù)庫(kù)通過(guò)歸檔日志恢復(fù)后,通常處于不完全恢復(fù)狀態(tài),此時(shí)異地應(yīng)用系統(tǒng)比較交易狀態(tài)表與交易同步報(bào)文緩沖池的相關(guān)信息,將差額交易數(shù)據(jù)提取并重新交付后續(xù)應(yīng)用程序處理,這可理解為適時(shí)恢復(fù)數(shù)據(jù)的策略,從而實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的零丟失目標(biāo)。交易狀態(tài)表用來(lái)識(shí)別備份數(shù)據(jù)庫(kù)歸檔日志已恢復(fù)了哪些成功提交的事務(wù)[8]。

交易同步報(bào)文緩沖池實(shí)際上是一個(gè)先進(jìn)先出交易同步報(bào)文存儲(chǔ)區(qū),簡(jiǎn)稱FIFO緩沖區(qū),用以保存事務(wù)處理系統(tǒng)近期產(chǎn)生的交易數(shù)據(jù)或稱交易重做日志。主備系統(tǒng)兩端各維持一個(gè)交易同步報(bào)文緩沖池,以滿足不同工作模式下的報(bào)文同步需求。

同步管理程序由同步通信程序、緩沖池管理程序等組成。同步通信程序負(fù)責(zé)兩地系統(tǒng)之間的交易同步報(bào)文的封裝與傳輸,緩沖池管理程序負(fù)責(zé)管理FIFO緩沖區(qū),定時(shí)判別備份數(shù)據(jù)庫(kù)中歸檔日志的恢復(fù)狀態(tài),清除緩沖池內(nèi)過(guò)時(shí)的交易同步報(bào)文。

3.3 交易報(bào)文的分解規(guī)則

規(guī)則1:針對(duì)批量交易事務(wù),設(shè)T為原始交易報(bào)文,i為當(dāng)前交易識(shí)別序號(hào),n為T(mén)中包含的面向數(shù)據(jù)庫(kù)的事務(wù)對(duì)象數(shù)量。若n>1,則多個(gè)事務(wù)對(duì)象依次序拆分成多個(gè)交易同步報(bào)文,即{Ti,Ti+1,…,Ti+n-1}。

規(guī)則2:針對(duì)聯(lián)機(jī)會(huì)話事務(wù),多個(gè)交易報(bào)文對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)事務(wù)對(duì)象,則標(biāo)記事務(wù)起始報(bào)文及事務(wù)結(jié)束報(bào)文,以會(huì)話識(shí)別號(hào)為關(guān)聯(lián)值,識(shí)別整體事務(wù)對(duì)象。標(biāo)示為:Tb為會(huì)話起始報(bào)文,Te為會(huì)話結(jié)束報(bào)文,k為會(huì)話識(shí)別號(hào),交易同步報(bào)文子集{Ti.SessionID=k,i=b,b+1,b+2,…,e}被識(shí)別為整體事務(wù)。

規(guī)則3:針對(duì)文件收發(fā)事務(wù),建立事務(wù)起始報(bào)文及事務(wù)結(jié)束報(bào)文。識(shí)別文件對(duì)象收發(fā)的完整性,支持大文件斷點(diǎn)續(xù)傳。

3.4 交易報(bào)文同步的工作模式

為滿足特定的業(yè)務(wù)需求,交易報(bào)文同步系統(tǒng)設(shè)計(jì)為多種工作模式,各模式工作方式,如表3所示。

表3 交易報(bào)文同步系統(tǒng)的工作模式

最高一致性模式下,主系統(tǒng)交易報(bào)文層的應(yīng)用程序必須確認(rèn)交易同步報(bào)文寫(xiě)入本地及異地的FIFO緩沖區(qū)后,再將交易報(bào)文交付后續(xù)應(yīng)用程序處理。此時(shí),若數(shù)據(jù)同步線路故障,則該應(yīng)用程序掛起,不再繼續(xù)工作,直至故障恢復(fù)或同步工作模式切換。這種模式可保持兩地系統(tǒng)最高的事務(wù)數(shù)據(jù)一致性。

最高可用性模式下,主系統(tǒng)交易報(bào)文層的應(yīng)用程序?qū)⒔灰淄綀?bào)文寫(xiě)入本地FIFO緩沖區(qū)后,交易報(bào)文隨即交付后續(xù)應(yīng)用程序處理。同步管理程序以后臺(tái)任務(wù)方式將本地FIFO緩沖區(qū)的交易同步報(bào)文傳遞到對(duì)端系統(tǒng),或稱異步模式。此時(shí)若數(shù)據(jù)同步線路故障,主系統(tǒng)業(yè)務(wù)處理流程不受影響。這種模式符合生產(chǎn)系統(tǒng)絕對(duì)優(yōu)先原則,任何備份措施的故障不應(yīng)該造成生產(chǎn)系統(tǒng)的停頓。

自動(dòng)管理模式在同步線路故障時(shí)事務(wù)處理流程有短暫的延時(shí),延時(shí)時(shí)間取決于兩地交易報(bào)文同步系統(tǒng)之間設(shè)定的健康檢查條件。一般情形下,設(shè)定單位時(shí)間內(nèi)數(shù)次獲取不到對(duì)端系統(tǒng)的正常應(yīng)答信息,則判定通信故障。自動(dòng)管理模式體現(xiàn)了備份措施能用則用,但備份措施故障時(shí)業(yè)務(wù)系統(tǒng)還得繼續(xù)工作的原則。這個(gè)模式也是應(yīng)用實(shí)踐中的推薦模式。

4 實(shí)驗(yàn)與分析

實(shí)驗(yàn)數(shù)據(jù)源自于特大型城市的公共交通一卡通支付清算業(yè)務(wù)系統(tǒng)。實(shí)驗(yàn)環(huán)境由該系統(tǒng)的原型測(cè)試系統(tǒng)組成,主系統(tǒng)及備系統(tǒng)各由二臺(tái)HPUX小型機(jī)及一臺(tái)HP XP20000存儲(chǔ)構(gòu)成,其中一臺(tái)小型機(jī)部署Oracle數(shù)據(jù)庫(kù)系統(tǒng),另一臺(tái)部署清算業(yè)務(wù)應(yīng)用系統(tǒng)。二臺(tái)小型機(jī)及存儲(chǔ)系統(tǒng)具備較高配置,滿足每秒處理800筆業(yè)務(wù)交易的能力。

為了便于實(shí)驗(yàn)環(huán)境的搭建及各種實(shí)驗(yàn)條件的控制,主備系統(tǒng)均位于同一機(jī)房。兩個(gè)系統(tǒng)之間采用專屬以太網(wǎng)線路連接,并通過(guò)以太網(wǎng)接口速率的協(xié)商控制,滿足千兆、百兆及十兆等數(shù)據(jù)同步線路帶寬的實(shí)驗(yàn)條件。

測(cè)試數(shù)據(jù)庫(kù)表空間基礎(chǔ)容量2 TB左右,沉淀3年以上的業(yè)務(wù)數(shù)據(jù)。每個(gè)在線日志200 MB。6 000萬(wàn)筆測(cè)試業(yè)務(wù)數(shù)據(jù)來(lái)自實(shí)際生產(chǎn)系統(tǒng)3至4個(gè)交易日業(yè)務(wù)數(shù)據(jù)的積累。實(shí)驗(yàn)環(huán)境下測(cè)試輔助程序通過(guò)讀取交易累積目錄下的業(yè)務(wù)數(shù)據(jù)文件形成原始交易報(bào)文直接交付給應(yīng)用系統(tǒng)的前置通信程序。

實(shí)驗(yàn)共分三輪,每輪使用2 000萬(wàn)筆交易業(yè)務(wù)測(cè)試數(shù)據(jù)。

第一輪測(cè)試采用數(shù)據(jù)庫(kù)在線日志實(shí)時(shí)同步方式,實(shí)驗(yàn)觀察該方式下對(duì)系統(tǒng)性能的影響及網(wǎng)絡(luò)帶寬的要求。該輪實(shí)驗(yàn)主備數(shù)據(jù)庫(kù)運(yùn)行在Oracle Dataguard最大保障模式下(無(wú)數(shù)據(jù)丟失),主備系統(tǒng)之間網(wǎng)絡(luò)帶寬千兆。2 000萬(wàn)筆交易處理用了近30個(gè)小時(shí),平均每秒處理約200筆交易。鑒于這個(gè)結(jié)果,更低帶寬的同步條件已無(wú)測(cè)試必要。

第二輪測(cè)試采用數(shù)據(jù)庫(kù)歸檔日志異步傳輸方式及交易報(bào)文實(shí)時(shí)同步方式。實(shí)驗(yàn)觀察該方式下對(duì)系統(tǒng)性能的影響及網(wǎng)絡(luò)帶寬的要求。該輪實(shí)驗(yàn)主備數(shù)據(jù)庫(kù)運(yùn)行在Oracle Dataguard最大性能模式,應(yīng)用層交易報(bào)文同步系統(tǒng)工作在最高一致性模式。主備系統(tǒng)之間網(wǎng)絡(luò)帶寬按預(yù)估帶寬百兆設(shè)定。2 000萬(wàn)筆交易處理用了約8個(gè)小時(shí),平均每秒處理約700筆,該性能達(dá)到單系統(tǒng)峰值處理能力的87.5%,已滿足異地容災(zāi)備份的預(yù)定技術(shù)要求。

第三輪測(cè)試與第二輪測(cè)試工作方式基本一樣。但本輪實(shí)驗(yàn)應(yīng)用層交易報(bào)文同步系統(tǒng)工作在自動(dòng)管理模式。實(shí)驗(yàn)觀察該方式下網(wǎng)絡(luò)帶寬對(duì)數(shù)據(jù)同步狀態(tài)的影響及業(yè)務(wù)數(shù)據(jù)的恢復(fù)能力。測(cè)試情況如表4所示。

表4 各階段網(wǎng)絡(luò)帶寬及系統(tǒng)同步狀態(tài)

本輪最后階段結(jié)束后(主系統(tǒng)處理完2 000萬(wàn)筆交易),中斷二個(gè)系統(tǒng)之間的網(wǎng)絡(luò)連接,此時(shí),備系統(tǒng)僅恢復(fù)到已傳輸完成的歸檔日志。將備份數(shù)據(jù)庫(kù)激活,應(yīng)用層交易報(bào)文重做恢復(fù)機(jī)制介入,備系統(tǒng)的交易報(bào)文同步管理程序通過(guò)比較備庫(kù)的交易狀態(tài)表與備系統(tǒng)交易同步報(bào)文緩沖池的相關(guān)報(bào)文信息,將差額交易數(shù)據(jù)從備系統(tǒng)交易報(bào)文同步緩沖區(qū)中提取并交付備系統(tǒng)應(yīng)用程序處理,適時(shí)恢復(fù)備系統(tǒng)的業(yè)務(wù)數(shù)據(jù)。差額交易共用時(shí)30分鐘,處理150萬(wàn)筆交易。最后,通過(guò)主備兩個(gè)數(shù)據(jù)庫(kù)系統(tǒng)一卡通賬務(wù)表,交易明細(xì)表,業(yè)務(wù)清算表等對(duì)比,主備系統(tǒng)業(yè)務(wù)數(shù)據(jù)完全一致。

實(shí)驗(yàn)表明,本文方法有效,并具有較高的寬容度,在極低的同步線路帶寬下仍能穩(wěn)定工作,高達(dá)百萬(wàn)筆的業(yè)務(wù)交易差異能有效識(shí)別并適時(shí)恢復(fù),恢復(fù)后的事務(wù)處理系統(tǒng)業(yè)務(wù)數(shù)據(jù)一致性和完整性能切實(shí)保障。

5 容災(zāi)備份中的實(shí)際應(yīng)用

上海與北京兩個(gè)特大型城市的公共交通一卡通支付系統(tǒng),日均業(yè)務(wù)量均在2 000萬(wàn)筆左右,地鐵、公交、出租等公共交通支付服務(wù)事關(guān)民生與社會(huì)穩(wěn)定,建立異地容災(zāi)備份系統(tǒng)刻不容緩。2004年上海一卡通系統(tǒng)率先采用應(yīng)用級(jí)的交易報(bào)文同步技術(shù),實(shí)現(xiàn)同城異地的容災(zāi)備份。2007年北京一卡通系統(tǒng)采用改進(jìn)后的交易報(bào)文同步技術(shù),也建立了同城異地的容災(zāi)備份體系。兩大異地容災(zāi)備份系統(tǒng)均采用百兆以太網(wǎng)的數(shù)據(jù)同步線路,數(shù)據(jù)庫(kù)歸檔日志日均產(chǎn)生量100 GB左右,數(shù)據(jù)庫(kù)系統(tǒng)在百兆網(wǎng)絡(luò)條件下以最大性能模式異步傳輸歸檔日志。一卡通支付業(yè)務(wù)系統(tǒng)平均每筆交易長(zhǎng)度控制在150 B,交易報(bào)文日均產(chǎn)生量低于3 GB。交易報(bào)文數(shù)據(jù)實(shí)時(shí)同步在百兆以太網(wǎng)線路條件下對(duì)實(shí)際應(yīng)用系統(tǒng)性能的影響低至忽略不計(jì)。主數(shù)據(jù)同步線路故障時(shí),僅2 Mbps帶寬的數(shù)據(jù)同步備份線路的條件下,數(shù)據(jù)庫(kù)歸檔日志傳遞已處于卡頓狀態(tài),基于交易報(bào)文的數(shù)據(jù)同步方法還能正常工作,此時(shí)一旦災(zāi)難發(fā)生,異地系統(tǒng)仍可依賴應(yīng)用級(jí)的交易報(bào)文重做機(jī)制保障業(yè)務(wù)數(shù)據(jù)的完整性。二大系統(tǒng)經(jīng)歷了2008年奧運(yùn)及2010年世博會(huì)期間大業(yè)務(wù)量的考驗(yàn),十余年來(lái)穩(wěn)定運(yùn)行,基于應(yīng)用層的交易報(bào)文同步技術(shù)不斷改進(jìn)、日趨成熟,逐漸形成了目前完整的、可重用的數(shù)據(jù)同步應(yīng)用體系。

實(shí)際上,本地備份數(shù)據(jù)庫(kù)的恢復(fù)過(guò)程也可以通過(guò)應(yīng)用程序重做本地緩沖池內(nèi)的交易報(bào)文,實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的完整恢復(fù),進(jìn)一步增強(qiáng)應(yīng)用系統(tǒng)自身結(jié)構(gòu)上的業(yè)務(wù)恢復(fù)能力。

6 結(jié) 語(yǔ)

本文給出的基于交易報(bào)文的數(shù)據(jù)實(shí)時(shí)同步方法,將事務(wù)處理系統(tǒng)的交易報(bào)文歸納為應(yīng)用級(jí)的重做日志,結(jié)合數(shù)據(jù)庫(kù)的歸檔日志恢復(fù)機(jī)制,在大業(yè)務(wù)量的應(yīng)用系統(tǒng)中,無(wú)需高成本、高帶寬的數(shù)據(jù)同步線路,即可實(shí)現(xiàn)異地備份系統(tǒng)業(yè)務(wù)數(shù)據(jù)的完整性與一致性。經(jīng)實(shí)際案例的測(cè)試與分析,該方法的可行性、有效性得到了充分驗(yàn)證。該方法在特定事務(wù)處理系統(tǒng)的異地容災(zāi)備份實(shí)踐中具有較強(qiáng)的可操作性和實(shí)用價(jià)值。

[1] 陳文捷,蔡立志.大數(shù)據(jù)安全及其評(píng)估[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(4):34-38,71.

[2] 楊天明,吳海濤.一種批處理塊級(jí)數(shù)據(jù)去重方法[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(5):44-46,60.

[3] 馮凌穎,陳耀武,蔣榮欣.一種異構(gòu)主從模式數(shù)據(jù)同步園區(qū)停車系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(4):64-67,75.

[4] 張澤鑫,李俊,常向青. 互聯(lián)網(wǎng)流量的演化研究[J]. 計(jì)算機(jī)應(yīng)用與研究,2015,32(11):3215-3221.

[5] 丁建立,王斌強(qiáng),張超.異地雙活數(shù)據(jù)中心服務(wù)區(qū)域劃分優(yōu)化[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(2):30-32,54.

[6] 王晨光,王靜,張超,等.面向航空物流的數(shù)據(jù)交換平臺(tái)設(shè)計(jì)方法研究[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(12):34-37.

[7] 郝平,林原沖.一種移動(dòng)網(wǎng)絡(luò)下基于雙時(shí)間戳的數(shù)據(jù)增量同步研究[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(4):143-145,226.

[8] 王德軍,何征,王麗娜. 基于事件的連續(xù)數(shù)據(jù)保護(hù)系統(tǒng)研究[J].計(jì)算機(jī)應(yīng)用研究,2014,31(2):465-471,475.

RESEARCHONREAL-TIMEDATASYNCHRONOUSMETHOD
BASEDONTRANSACTIONMESSAGE

Shang Hai Ying

(ShanghaiJiuyuSoftwareSystemCo.,Ltd.,Shanghai200233,China)

This paper presents the common methods of remote data synchronization in computer information system. Under the large volume business scene of a transaction processing system, traditional data replication technology is limited by high network bandwidth. Therefore, we propose a real-time data synchronization method based on transaction message. The transaction messages of transaction processing system were classified as application level message redo logs, and the methods and strategies of packet decomposition and encapsulation, message synchronization and buffer pool management were adopted. Finally, the real-time synchronization target of business data was realized with very low line bandwidth. Through the implementation of disaster recovery case practice, we fully verified the feasibility and effectiveness of the method. The proposed method can significantly reduce the implementation cost of application-level disaster recovery in large traffic.

Transaction processing system Disaster recovery Redo log Data replication Recovery point objective

2017-06-09。尚海鷹,工程師,主研領(lǐng)域:事務(wù)處理系統(tǒng),系統(tǒng)集成,數(shù)據(jù)庫(kù)管理。

TP3

A

10.3969/j.issn.1000-386x.2017.11.025

猜你喜歡
異地日志備份
“備份”25年:鄧清明圓夢(mèng)
一名老黨員的工作日志
扶貧日志
心聲歌刊(2020年4期)2020-09-07 06:37:14
游學(xué)日志
推進(jìn)醫(yī)保異地結(jié)算 穩(wěn)字當(dāng)先
如何開(kāi)拓異地市場(chǎng)?
你適不適合異地戀
文苑(2015年10期)2015-10-09 11:21:50
淺析數(shù)據(jù)的備份策略
科技視界(2015年6期)2015-08-15 00:54:11
破除異地結(jié)算的地方抵制
一種基于粗集和SVM的Web日志挖掘模型
天全县| 延津县| 铁力市| 西乌珠穆沁旗| 太谷县| 丹寨县| 五台县| 新建县| 宾阳县| 普安县| 麻江县| 酒泉市| 丰台区| 延津县| 云梦县| 宜章县| 临沧市| 思茅市| 雷波县| 延津县| 三门县| 嘉兴市| 永年县| 商南县| 沂南县| 深泽县| 永丰县| 昆山市| 台江县| 永泰县| 丰原市| 余干县| 特克斯县| 海宁市| 衡东县| 崇州市| 巩留县| 桦甸市| 晋江市| 化德县| 涞源县|