用戶需求
????隨著科技的高速發(fā)展,金融科技發(fā)展呈現(xiàn)爆發(fā)式增長,每年賬戶與日交易量的增長遠超預(yù)期,集中式核心系統(tǒng)的處理能力瓶頸日益凸顯。整體架構(gòu)臃腫,運維成本高,無論是在性能、擴展性還是效率方面,已無法滿足當(dāng)前業(yè)務(wù)系統(tǒng)需求和未來快速增長的要求,同時現(xiàn)在聯(lián)機+聯(lián)機批交易平均響應(yīng)時間、日終結(jié)息作業(yè)處理耗時給業(yè)務(wù)帶來倍增的壓力,同時在高峰期面臨高并發(fā)下會出現(xiàn)大量超時交易,給生產(chǎn)環(huán)境帶來的壓力也越來越重。
????在此背景之下,傳統(tǒng)的IOE集中式單體數(shù)據(jù)庫擴展瓶頸就越大暴露,并且原有架構(gòu)投入成本高,時刻存在技術(shù)支持下降的風(fēng)險,秉承“自力更生、核心技術(shù)自主可控”的指導(dǎo)思想,某股份制銀行根據(jù)自身整體戰(zhàn)略目標(biāo),結(jié)合業(yè)務(wù)擴展的需求,啟動了將核心業(yè)務(wù)數(shù)據(jù)庫將由原來的集中式數(shù)據(jù)庫IBM AS400/DB2下移至X86分布式數(shù)據(jù)庫,采用“整體一次性遷移,業(yè)務(wù)功能不變”方案。
用戶需求:
1、需將原數(shù)據(jù)庫超18T數(shù)據(jù),在48小時之內(nèi),100%正確率要求下全量移植到新核心分布式數(shù)據(jù)庫。
2、需將原生產(chǎn)核心系統(tǒng)超4T,積壓3-6天內(nèi)的DB2/400數(shù)據(jù)庫日志,在48小時之內(nèi),100%正確率要求下同步到新核心分布式數(shù)據(jù)庫。
技術(shù)方案
數(shù)據(jù)遷移在核心系統(tǒng)下移屬于非常重要的環(huán)節(jié),并且要在很短的窗口期內(nèi)完成,面臨著以下痛點:
1、源數(shù)據(jù)庫對象關(guān)系、表間邏輯依賴關(guān)系復(fù)雜;
2、目標(biāo)數(shù)據(jù)庫架構(gòu)部署、規(guī)格需求規(guī)劃;
3、遷移過程業(yè)務(wù)停機時間要求短;
4、需要同步進行數(shù)據(jù)對比驗證;
5、需要做數(shù)據(jù)逆向回流、確保安全性和應(yīng)用回切的兜底方案;
沃信在集中式數(shù)據(jù)庫到分布式數(shù)據(jù)庫提供了全鏈路遷移解決方案:全量遷移、增量遷移、數(shù)據(jù)比對校驗、數(shù)據(jù)補錄/修正,為異構(gòu)數(shù)據(jù)庫間數(shù)據(jù)遷移大大降低門檻、提高效率。
全量數(shù)據(jù)遷移比對圖如下:

全量數(shù)據(jù)遷移、全量數(shù)據(jù)比對流程是:
? ? ?多并發(fā)(多進程)從舊核心AS400源表讀取數(shù)據(jù)文件,轉(zhuǎn)碼后生成標(biāo)準(zhǔn)的數(shù)據(jù)塊文件,下載傳輸?shù)絏86服務(wù)器,再按原表結(jié)構(gòu)數(shù)據(jù)批量導(dǎo)入到分布式數(shù)據(jù)庫中。
每當(dāng)一張表遷移完之后,就給比對系統(tǒng)發(fā)信號,系統(tǒng)驅(qū)動比對組件,快速比對兩套數(shù)據(jù)庫中數(shù)據(jù)表字段內(nèi)容,完成數(shù)據(jù)比對。
? ? ?這過程中消耗點:
? ???(1)網(wǎng)卡帶寬性能受限,AS400下數(shù)網(wǎng)卡是千兆卡
? ? ?(2)AS400磁盤IO存在瓶頸
? ? ?(3)拆解過程中,部分表還需要補分片鍵和大字段轉(zhuǎn)換
為滿足數(shù)據(jù)遷移和一次性切換、數(shù)據(jù)實時比對要求,需進行增量數(shù)據(jù)遷移與比對:
1、準(zhǔn)實時將AS/400的增量數(shù)據(jù)同步到分布式數(shù)據(jù)庫。
2、速度:12小時內(nèi)完成AS/400核心系統(tǒng)500G數(shù)據(jù)庫增量日志的同步。
3、一致性:要求數(shù)據(jù)同步前后的數(shù)據(jù)完全一致。
4、易用性:支持手動暫停和啟動、同步過程中遇到錯誤支持記錄日志、支持斷點續(xù)傳。
增量數(shù)據(jù)遷移流程是:
400同城鏡像機:在AS/400核心系統(tǒng)同城機房部署同城鏡像機,將同城備機上的數(shù)據(jù)變化通過MIMIX同步過來。在鏡像機上部署JRN日志采集程序,準(zhǔn)實時采集增量JRN日志推送到數(shù)據(jù)同步機。
數(shù)據(jù)同步機:接收到AS/400的增量JRN日志后進行格式解析和轉(zhuǎn)碼處理,然后進行存儲和排序處理后,按數(shù)據(jù)表并發(fā)識別事務(wù)窗口后,生成SQL,并按照分布式數(shù)據(jù)庫要求填補分片鍵,發(fā)往分布式數(shù)據(jù)庫。
分布式數(shù)據(jù)庫:數(shù)據(jù)庫代理收到同步機發(fā)送的單條SQL語句后,完成數(shù)據(jù)庫寫和更新處理。

增量數(shù)據(jù)比對流程是:
分析JRN日志中變化表的變化記錄集合的歷史信息,取最后一次變化表主鍵信息,通過向目標(biāo)分布式數(shù)據(jù)庫進行數(shù)據(jù)抽取,同目標(biāo)庫的相關(guān)記錄進行實時、滾動比對。

整體一次性切換流程圖:

核心切換產(chǎn)品工具鏈:
1、異構(gòu)復(fù)雜表的全量移植
將AS/400核心系統(tǒng)將復(fù)雜表進行抽取,碼制轉(zhuǎn)換,大字段類型解析,數(shù)據(jù)內(nèi)容轉(zhuǎn)換,補數(shù)據(jù)分片鍵,最終生成Insert語句和連接下高并發(fā)、大批量將數(shù)據(jù)遷移到分布式數(shù)據(jù)庫內(nèi)。
2.異構(gòu)數(shù)據(jù)庫全量數(shù)據(jù)比對
在AS/400核心系統(tǒng)和X86分布式數(shù)據(jù)庫靜止?fàn)顟B(tài)下,針對指定的數(shù)據(jù)表范圍和字段范圍,快速比對兩套數(shù)據(jù)庫中全量數(shù)據(jù)表字段內(nèi)容。
3.數(shù)據(jù)日志同步
將AS/400核心系統(tǒng)中數(shù)據(jù)庫變化情況,增量同步到分布式數(shù)據(jù)庫中,保證兩套數(shù)據(jù)庫的數(shù)據(jù)變化情況完全一致,數(shù)據(jù)同步過程支持暫停和重啟,遇到故障可支持斷點續(xù)傳,全過程需保證兩套數(shù)據(jù)庫的事務(wù)一致性。
4.異構(gòu)數(shù)據(jù)庫抽樣數(shù)據(jù)比對
在系統(tǒng)切換之前,AS/400核心系統(tǒng)與X86分布式數(shù)據(jù)庫持續(xù)同步數(shù)據(jù),通過不停機滾動比較,驗證數(shù)據(jù)同步的一致性,降低系統(tǒng)切換期間的全量數(shù)據(jù)檢核壓力,減少切換時間窗口。
方案優(yōu)勢
1、保駕護航:解決下移方案可行性、可靠性、安全性、正確性問題及可靠的技術(shù)保證,為切換保駕護航
2、風(fēng)險降低:大大降低切換風(fēng)險,達成一次性平滑切換投產(chǎn)的目標(biāo)
3、窗口縮短:縮短了預(yù)期停業(yè)切換窗口,降低業(yè)務(wù)影響
4、用技術(shù)方案、技術(shù)實現(xiàn)、技術(shù)運營方式降本增效
5、降低遷移門檻:對運維人員屏蔽了分布式數(shù)據(jù)庫遷移細節(jié),實現(xiàn)數(shù)據(jù)“零錯誤、零丟失”
6、自愈能力:整個異常切換恢復(fù)過程無需人工干預(yù),全流程自愈,自動化完成,降低運維難度與管理成本
7、水平擴容:通過用戶界面可實現(xiàn)比對應(yīng)用的擴容。