銀行業(yè)使用國產(chǎn)數(shù)據(jù)庫現(xiàn)狀:痛難點(diǎn)分析及破解對(duì)策
一、國產(chǎn)數(shù)據(jù)庫的發(fā)展趨勢和現(xiàn)狀
數(shù)據(jù)庫作為存儲(chǔ)企業(yè)數(shù)據(jù)的重要資產(chǎn)和構(gòu)筑企業(yè)數(shù)據(jù)管理體系的核心要素,已成為當(dāng)前信創(chuàng)產(chǎn)品的替換重點(diǎn)。隨著監(jiān)管要求的明確,國產(chǎn)替換已經(jīng)在金融行業(yè)中逐步開展,尤其是在銀行業(yè),應(yīng)用系統(tǒng)遷移到國產(chǎn)數(shù)據(jù)庫在如火如荼地進(jìn)行中。隨著國產(chǎn)數(shù)據(jù)庫在金融業(yè)的占比越來越大,國產(chǎn)數(shù)據(jù)庫的運(yùn)維和使用過程中遇到的痛點(diǎn)和難點(diǎn)問題也逐漸暴露出來。
二、國產(chǎn)數(shù)據(jù)庫當(dāng)前存在的痛難點(diǎn)
作者結(jié)合國產(chǎn)數(shù)據(jù)庫的使用實(shí)踐,梳理使用過程遇到的8個(gè)痛難點(diǎn),主要集中在產(chǎn)品穩(wěn)定性和運(yùn)維技能、周邊工具等方面。
1、目前國產(chǎn)數(shù)據(jù)庫還處于一個(gè)高速發(fā)展的階段,產(chǎn)品的質(zhì)量控制沒法得到穩(wěn)定的保障。較之前的國外傳統(tǒng)數(shù)據(jù)庫相比,目前國產(chǎn)數(shù)據(jù)庫在實(shí)際的生產(chǎn)使用中發(fā)現(xiàn)的產(chǎn)品缺陷相對(duì)較多,數(shù)據(jù)庫版本的升級(jí)和迭代相對(duì)頻繁,難以維持在一個(gè)較為穩(wěn)定的版本。金融企業(yè)在生產(chǎn)系統(tǒng)上頻繁進(jìn)行版本升級(jí)會(huì)給生產(chǎn)系統(tǒng)的安全運(yùn)行帶來一定的風(fēng)險(xiǎn)和隱患。
2、許多國產(chǎn)數(shù)據(jù)庫在服務(wù)器資源需求方面開銷較大,涉及組件包括計(jì)算層、數(shù)據(jù)層和管控面等。在容災(zāi)建設(shè)方面,比如兩地三中心、三地五中心等,資源需求還需要成倍增長。以國產(chǎn)某分布式數(shù)據(jù)庫和傳統(tǒng)國外數(shù)據(jù)庫舉例,多中心架構(gòu)部署的資源總量可能相差5倍以上,系統(tǒng)投產(chǎn)資源和成本投入與傳統(tǒng)數(shù)據(jù)庫相比相對(duì)較高。
3、數(shù)據(jù)庫作為系統(tǒng)基礎(chǔ)架構(gòu)的重要支撐部分,國產(chǎn)數(shù)據(jù)庫在一些核心功能上可能存在缺陷。比如分布式數(shù)據(jù)庫的路由分片功能出現(xiàn)錯(cuò)亂,或者系統(tǒng)高可用切換的時(shí)候可能沒法保證所有多分片切換到異地中心是原子操作,這些可能出現(xiàn)的核心功能缺陷一定程度上也影響了國產(chǎn)數(shù)據(jù)庫產(chǎn)品的服務(wù)能力和容災(zāi)能力。
4、近兩年國產(chǎn)數(shù)據(jù)庫業(yè)務(wù)推廣和發(fā)展飛速,對(duì)數(shù)據(jù)庫廠商的運(yùn)維支持工程師人員的需求突增,但是DBA的技術(shù)能力需要時(shí)間和積累和豐富的實(shí)踐基礎(chǔ),會(huì)存在部分運(yùn)維支持工程師運(yùn)維能力欠缺和經(jīng)驗(yàn)不足的情況。因此銀行業(yè)系統(tǒng)管理員和DBA對(duì)國產(chǎn)數(shù)據(jù)庫的運(yùn)維技能可能存在不足,在數(shù)據(jù)庫出現(xiàn)故障的時(shí)候,對(duì)問題根因的快速定位和應(yīng)急能力需要提高。
5、國產(chǎn)數(shù)據(jù)庫配套的監(jiān)控和故障分析工具還不夠成熟,尤其是分布式數(shù)據(jù)庫在問題和故障的定位和排查方面比較困難,故障診斷和故障自愈的功能在實(shí)際生產(chǎn)運(yùn)維中有比較迫切的需求。
6、國產(chǎn)數(shù)據(jù)庫的技術(shù)文檔相對(duì)傳統(tǒng)數(shù)據(jù)庫還不夠完善,生產(chǎn)中遇到的很多故障和缺陷在技術(shù)文檔中都很難找到相關(guān)的參考資料。國產(chǎn)數(shù)據(jù)庫在業(yè)內(nèi)的技術(shù)生態(tài)也不夠活躍,技術(shù)氛圍相對(duì)不夠濃烈,社區(qū)和論壇建設(shè)需要加強(qiáng)。
7、目前很多銀行已經(jīng)在做數(shù)據(jù)庫系統(tǒng)遷移,可能涉及到數(shù)據(jù)遷移和應(yīng)用適配改造的問題。數(shù)據(jù)遷移中對(duì)數(shù)據(jù)的一致性和業(yè)務(wù)連續(xù)性的要求非常高,目前國產(chǎn)數(shù)據(jù)庫提供的數(shù)據(jù)遷移工具和方案是否穩(wěn)定可靠還有待觀察。
8、國產(chǎn)數(shù)據(jù)庫還處于不斷迭代更新的過程中,新增的功能和復(fù)雜性可能會(huì)增加備份和恢復(fù)的難度,例如對(duì)于分布式架構(gòu)的跨集群備份恢復(fù)方案不夠成熟、備份恢復(fù)的操作難度較較高以及備份恢復(fù)后的數(shù)據(jù)完整性保障等難點(diǎn)。
三、破解國產(chǎn)數(shù)據(jù)庫痛難點(diǎn)的對(duì)策
針對(duì)國產(chǎn)數(shù)據(jù)庫在產(chǎn)品穩(wěn)定問題、資源消耗、功能缺陷、運(yùn)維經(jīng)驗(yàn)不足、故障根因定位困難、技術(shù)生態(tài)不完備、數(shù)據(jù)遷移工具以及數(shù)據(jù)備份恢復(fù)幾方面問題,提出相應(yīng)對(duì)策。
1、在國產(chǎn)數(shù)據(jù)庫趨向于成熟的過程中,較為頻繁的版本迭代不可避免。首先合理地選擇升級(jí)時(shí)機(jī),盡量選擇在業(yè)務(wù)大批量遷移前和業(yè)務(wù)低峰時(shí)段進(jìn)行升級(jí),減少版本升級(jí)給生產(chǎn)環(huán)境帶來的風(fēng)險(xiǎn)。同時(shí),沒有必要追隨新版本,生產(chǎn)環(huán)境升級(jí)需要在新版本在測試和驗(yàn)證環(huán)境運(yùn)行穩(wěn)定一段時(shí)間,在業(yè)界有相關(guān)使用案例和數(shù)據(jù)的情況下,比較穩(wěn)妥進(jìn)行版本升級(jí)。關(guān)于升級(jí)策略選擇問題,如果是大部分業(yè)務(wù)已經(jīng)遷移到國產(chǎn)數(shù)據(jù)庫,可以通過搭建新集群,采用數(shù)據(jù)鋪底,新增數(shù)據(jù)通過數(shù)據(jù)同步軟件實(shí)現(xiàn)新老集群的實(shí)時(shí)同步,實(shí)現(xiàn)應(yīng)用系統(tǒng)基本無感實(shí)現(xiàn)遷移。如果是業(yè)務(wù)在大批量遷移到國產(chǎn)數(shù)據(jù)庫前,可以在現(xiàn)有數(shù)據(jù)庫集群基礎(chǔ)進(jìn)行升級(jí),應(yīng)用系統(tǒng)采用容災(zāi)切換方式實(shí)現(xiàn)升級(jí),升級(jí)風(fēng)險(xiǎn)比較可控。不論采用哪種升級(jí),保證系統(tǒng)安全穩(wěn)定運(yùn)行是首要任務(wù),升級(jí)方案中要有明確的應(yīng)急和回退方案,保證升級(jí)操作對(duì)業(yè)務(wù)連續(xù)性影響最小。
2、銀行業(yè)近年來推進(jìn)降本增效的相關(guān)工作,在選型和使用國產(chǎn)數(shù)據(jù)庫時(shí),要綜合考慮資源使用問題。結(jié)合實(shí)際業(yè)務(wù)性能需求,合理規(guī)劃數(shù)據(jù)庫的配置,定制企業(yè)級(jí)標(biāo)準(zhǔn)數(shù)據(jù)庫資源使用模型。針對(duì)系統(tǒng)等級(jí)選擇不同的部署方式,在滿足性能和容量同時(shí),減少不必要的資源開銷。要明確生產(chǎn)環(huán)境的數(shù)據(jù)庫穩(wěn)定版本,數(shù)據(jù)庫版本的變化,管控集群和數(shù)據(jù)庫實(shí)例版本的兼容問題。避免管控集群在各個(gè)網(wǎng)絡(luò)區(qū)域進(jìn)行重復(fù)建設(shè),引發(fā)資源占用;同時(shí)在安全可控的條件下,穩(wěn)步推進(jìn)版本升級(jí),實(shí)現(xiàn)管控集群復(fù)用,減少資源消耗。在資源部署方面,對(duì)于一些對(duì)性能要求不高或者業(yè)務(wù)屬性不重要的應(yīng)用系統(tǒng),可以考慮采用數(shù)據(jù)庫實(shí)例資源混部的方式或者虛擬機(jī)部署方式,充分利用硬件服務(wù)器的資源。同時(shí)在云原生背景下,考慮將提供數(shù)據(jù)庫云服務(wù)版本。云原生提供了靈活的資源管理方式,通過云資源下發(fā)和資源靈活分配,實(shí)現(xiàn)資源最大化使用。
3、國產(chǎn)數(shù)據(jù)庫部分核心功能缺陷的發(fā)生確實(shí)會(huì)帶來很大的生產(chǎn)運(yùn)行風(fēng)險(xiǎn)。在選型或使用國產(chǎn)數(shù)據(jù)庫之前,需要進(jìn)行詳細(xì)的測試和評(píng)估。通過模擬實(shí)際業(yè)務(wù)場景,驗(yàn)證數(shù)據(jù)庫在路由分片、高可用切換、分布式事務(wù)等核心功能上的穩(wěn)定性和正確性。通過構(gòu)建并行驗(yàn)證環(huán)境,將生產(chǎn)交易流量鏡像轉(zhuǎn)發(fā)導(dǎo)入到驗(yàn)證環(huán)境,充分驗(yàn)證國產(chǎn)數(shù)據(jù)庫的功能、性能、穩(wěn)定性和高可用性等核心能力。在數(shù)據(jù)庫版本選擇的時(shí)候,對(duì)于一些核心功能尚不穩(wěn)定或者存在缺陷的版本需要慎重考慮,優(yōu)先選擇較為成熟和穩(wěn)定的版本,不要為了追求新版本新功能犧牲系統(tǒng)穩(wěn)定性。在應(yīng)急處置方面,在發(fā)生數(shù)據(jù)庫故障時(shí),支持快速進(jìn)行高可用切換或者容災(zāi)切換演練,實(shí)現(xiàn)分鐘級(jí)的切換,盡量降低產(chǎn)品缺陷引發(fā)的業(yè)務(wù)影響。在國產(chǎn)數(shù)據(jù)庫產(chǎn)品的核心功能無法得到保障的情況下,考慮尋找替代的分布式數(shù)據(jù)庫解決方案,比如通過優(yōu)化業(yè)務(wù)邏輯,減少數(shù)據(jù)依賴,多個(gè)數(shù)據(jù)庫分片之間通過應(yīng)用數(shù)據(jù)補(bǔ)償或者引入SAGA、TCC分布式事務(wù)的組件實(shí)現(xiàn)數(shù)據(jù)一致性的保證。
4、解決國產(chǎn)數(shù)據(jù)庫運(yùn)維支持工程師和系統(tǒng)管理員技術(shù)能力及經(jīng)驗(yàn)不足的問題需要采取一系列綜合性的策略。技術(shù)管理團(tuán)隊(duì)對(duì)國產(chǎn)數(shù)據(jù)庫的技術(shù)棧進(jìn)行管理和運(yùn)維,可以借鑒基于運(yùn)維傳統(tǒng)數(shù)據(jù)庫的經(jīng)驗(yàn)和知識(shí),比如監(jiān)控策略、應(yīng)急場景、問題分析和運(yùn)維工具化等方面進(jìn)行類比,實(shí)現(xiàn)新老技術(shù)棧運(yùn)維知識(shí)和經(jīng)驗(yàn)的轉(zhuǎn)化。定期對(duì)國產(chǎn)數(shù)據(jù)庫的某些關(guān)鍵運(yùn)維場景和問題排查經(jīng)驗(yàn)開展相關(guān)技術(shù)沙龍?jiān)趫F(tuán)隊(duì)進(jìn)行宣講,加強(qiáng)技術(shù)交流和討論。技術(shù)管理團(tuán)隊(duì)還可以建立一個(gè)內(nèi)部的知識(shí)共享平臺(tái),分享一些最佳實(shí)踐、解決方案和技術(shù)文檔,這有助于管理員從彼此的經(jīng)驗(yàn)中學(xué)習(xí)。同時(shí),通過提供定期的培訓(xùn)課程和實(shí)戰(zhàn)測驗(yàn),以幫助DBA和系統(tǒng)管理員提升他們的數(shù)據(jù)庫管理和系統(tǒng)運(yùn)維技能,此外,鼓勵(lì)員工獲取相關(guān)的數(shù)據(jù)庫認(rèn)證,以考促學(xué),驗(yàn)證其專業(yè)知識(shí)和技能水平。
5、監(jiān)控和故障分析是生產(chǎn)運(yùn)維的重中之重,在現(xiàn)有國產(chǎn)數(shù)據(jù)庫周邊工具不完備的條件下,企業(yè)可以結(jié)合使用多種監(jiān)控工具,彌補(bǔ)某些工具在特定方面的不足。首先確保這些工具能夠提供全面的性能監(jiān)控、日志監(jiān)控和報(bào)警功能。針對(duì)具體的業(yè)務(wù)和數(shù)據(jù)庫特性,設(shè)置自定義的監(jiān)控和報(bào)警規(guī)則,靈活地根據(jù)實(shí)際需求進(jìn)行監(jiān)控,減少誤報(bào),提高問題定位的準(zhǔn)確率。利用異常日志和性能日志進(jìn)行問題分析,通過日志分析工具實(shí)時(shí)監(jiān)控和追蹤系統(tǒng)異常和性能瓶頸。引入第三方監(jiān)控和診斷工具APM工具和數(shù)據(jù)庫全鏈路分析工具,以及開發(fā)定制化分析工具,提供豐富的分析功能和故障定位能力。定期進(jìn)行故障模擬和應(yīng)急演練,讓運(yùn)維團(tuán)隊(duì)熟悉故障排查的流程和方法,通過模擬真實(shí)環(huán)境中可能發(fā)生的故障,提高團(tuán)隊(duì)的應(yīng)急處理能力。
6、國產(chǎn)數(shù)據(jù)庫的技術(shù)生態(tài)相對(duì)比較年輕,社區(qū)和論壇建設(shè)還在起步發(fā)展中,相關(guān)產(chǎn)品技術(shù)手冊(cè)比較缺失。銀行業(yè)中的國產(chǎn)數(shù)據(jù)庫廠商應(yīng)完善技術(shù)文檔庫,涵蓋數(shù)據(jù)庫各個(gè)方面,包括安裝、配置、性能調(diào)優(yōu)、故障排查等。設(shè)立國產(chǎn)數(shù)據(jù)庫的社區(qū)或論壇,促進(jìn)用戶之間的交流和經(jīng)驗(yàn)分享,不斷積累經(jīng)驗(yàn)和知識(shí)為行業(yè)提供參考。定期組織技術(shù)研討會(huì)、在線培訓(xùn)或研討小組,深入討論數(shù)據(jù)庫的技術(shù)細(xì)節(jié),提高用戶對(duì)數(shù)據(jù)庫的理解和應(yīng)用水平,有助于形成更為豐富的技術(shù)資源。定期舉辦技術(shù)大會(huì),邀請(qǐng)業(yè)內(nèi)專家和從業(yè)者分享最新的技術(shù)趨勢、最佳實(shí)踐和創(chuàng)新案例,提高整個(gè)行業(yè)的技術(shù)水平。國產(chǎn)數(shù)據(jù)庫可以加強(qiáng)與開源社區(qū)的合作,對(duì)標(biāo)開源技術(shù)和標(biāo)準(zhǔn),開放源代碼,鼓勵(lì)更多的開源社區(qū)的參與者和貢獻(xiàn)者推進(jìn)技術(shù)的演進(jìn),加強(qiáng)銀行業(yè)對(duì)技術(shù)的管控能力,促進(jìn)國產(chǎn)數(shù)據(jù)庫在更大范圍內(nèi)的應(yīng)用和推廣。
7、數(shù)據(jù)遷移是使用國產(chǎn)數(shù)據(jù)庫必要的實(shí)施步驟,在開始遷移之前,制定詳細(xì)的遷移方案是關(guān)鍵。遷移方案應(yīng)該包括遷移時(shí)間窗口、容量評(píng)估、遷移回退方案、數(shù)據(jù)一致性比對(duì)方案和遷移過程系統(tǒng)監(jiān)控和關(guān)聯(lián)的系統(tǒng)保障等。在正式數(shù)據(jù)遷移之前,在測試和驗(yàn)證環(huán)境對(duì)數(shù)據(jù)遷移全流程進(jìn)行測試是至關(guān)重要的,基于測試可以預(yù)估出在生產(chǎn)環(huán)境實(shí)際遷移需要的時(shí)間,遷移遇到的問題以及對(duì)上下游系統(tǒng)的影響。數(shù)據(jù)遷移使用現(xiàn)成的遷移工具或者應(yīng)用開發(fā)遷移數(shù)據(jù)的批量程序進(jìn)行數(shù)據(jù)遷移,比如對(duì)于數(shù)據(jù)量不大和遷移時(shí)間要求不高的系統(tǒng)通過應(yīng)用批量程序來進(jìn)行數(shù)據(jù)遷移。數(shù)據(jù)遷移前后的數(shù)據(jù)一致性比對(duì)非常關(guān)鍵,在數(shù)據(jù)一致性校驗(yàn)工具基礎(chǔ)上,應(yīng)用具備相關(guān)數(shù)據(jù)對(duì)比能力,實(shí)現(xiàn)數(shù)據(jù)比對(duì)的兜底功能,保障數(shù)據(jù)遷移的數(shù)據(jù)一致性。系統(tǒng)遷移國產(chǎn)數(shù)據(jù)庫完成后,如遇到異常需要回退到老庫,能夠?qū)崿F(xiàn)一鍵式數(shù)據(jù)比對(duì)功能,并通過批量方式將新增的關(guān)鍵數(shù)據(jù)增補(bǔ)到老庫,實(shí)現(xiàn)信息系統(tǒng)快速切換到老庫的能力。
8、備份恢復(fù)是數(shù)據(jù)庫容災(zāi)的最后一道防線,是數(shù)據(jù)庫提供數(shù)據(jù)服務(wù)的底線,國產(chǎn)數(shù)據(jù)庫應(yīng)優(yōu)化備份和恢復(fù)工具,提供更加直觀、高效的工具或者平臺(tái),確保用戶可以方便地執(zhí)行必要的操作。采用并行處理、增量備份等技術(shù)手段對(duì)備份和恢復(fù)操作進(jìn)行性能優(yōu)化。提供自動(dòng)化備份策略,支持設(shè)置定期備份計(jì)劃,確保系統(tǒng)在不同時(shí)間點(diǎn)都有可用的備份。關(guān)于備份數(shù)據(jù)庫也需要有容災(zāi)考慮,保障出現(xiàn)區(qū)域級(jí)災(zāi)難的時(shí)候備份數(shù)據(jù)在異地是可用的。DBA和系統(tǒng)管理員要熟練掌握備份恢復(fù)的操作步驟,制定計(jì)劃定期進(jìn)行備份恢復(fù)的演練,保證備份恢復(fù)的有效性,提升全員對(duì)數(shù)據(jù)備份恢復(fù)的基本操作能力。在數(shù)據(jù)庫級(jí)別的備份恢復(fù)基礎(chǔ)上,具備一鍵式表級(jí)自動(dòng)恢復(fù)功能。
四、總結(jié)
國產(chǎn)數(shù)據(jù)庫在銀行業(yè)推廣中,已經(jīng)取得了顯著進(jìn)展,但仍面臨一系列挑戰(zhàn)。銀行重要敏感系統(tǒng)作為關(guān)鍵信息基礎(chǔ)設(shè)施,對(duì)安全性、技術(shù)成熟度、生態(tài)系統(tǒng)建設(shè)、技術(shù)支持與服務(wù)、數(shù)據(jù)遷移與升級(jí)以及高可用性等方面有著極高要求。在國產(chǎn)數(shù)據(jù)庫推廣使用過程中,結(jié)合國產(chǎn)數(shù)據(jù)庫的特性,充分考慮數(shù)據(jù)庫的面臨痛難點(diǎn)問題,采取積極謹(jǐn)慎態(tài)度、始終保持主動(dòng)運(yùn)維的意識(shí),不斷破解國產(chǎn)數(shù)據(jù)庫使用種種難題,將安全生產(chǎn)作為國產(chǎn)數(shù)據(jù)庫推廣中首要任務(wù),守牢安全生產(chǎn)的底線,保障銀行信息系統(tǒng)穩(wěn)定運(yùn)行。