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