伴隨信創(chuàng)產(chǎn)業(yè)的蓬勃發(fā)展,數(shù)據(jù)庫的替代升級對數(shù)據(jù)庫內(nèi)核技術(shù)、功能迭代、服務(wù)支撐都提出了更高的要求和更復(fù)雜的挑戰(zhàn)。這其中,金融行業(yè)對數(shù)據(jù)庫產(chǎn)品的要求尤為嚴苛,應(yīng)用實踐場景也尤其具有代表性。
2023年4月7-8日,由中國DBA聯(lián)盟(ACDU)和墨天輪社區(qū)聯(lián)合主辦的第十二屆“數(shù)據(jù)技術(shù)嘉年華”(DTC 2023)在北京新云南皇冠假日酒店成功舉辦,中國民生銀行資深數(shù)據(jù)庫專家孔再華受邀出席了「金融行業(yè)實踐」專題論壇,并發(fā)表了《openGauss在民生銀行的應(yīng)用實踐》的主題演講。孔再華就民生銀行對數(shù)據(jù)庫選型替代的思考與設(shè)計,以及在openGauss上的具體應(yīng)用實踐,和現(xiàn)場近兩百位數(shù)據(jù)技術(shù)及金融科技從業(yè)者、參會嘉賓做了深入交流。以下內(nèi)容根據(jù)孔再華的演講實錄整理而成。

01 openGauss在民生銀行的應(yīng)用架構(gòu)實踐
當一個新的數(shù)據(jù)庫產(chǎn)品到了銀行之后,首先要思考的就是高可用怎么做。我們在測試一款數(shù)據(jù)庫的時候可能主要關(guān)注其功能和性能,但真正部署的時候最需要的往往是穩(wěn)定性。關(guān)于高可用,民生銀行早期在使用openGauss的時候,分布式的高可用組件工具CM尚未開源,基于民生銀行一直以來在高可用方面的需求,結(jié)合了原有商業(yè)數(shù)據(jù)庫及其配套的高可用軟件和方案,以及后續(xù)接入的MySQL數(shù)據(jù)庫及其主從方案,與云和恩墨通力合作,在經(jīng)歷了很長一段時間的積累后,通過持續(xù)的功能設(shè)計和優(yōu)化完善,最終形成了本地化的高可用方案。

孔再華介紹到,在雙機的高可用方案里,有6個關(guān)鍵的設(shè)計點:本地進程守護、主庫丟失切換、文件系統(tǒng)檢測、雙主檢測自殺、主庫孤單自殺、從庫丟失檢測。整個高可用方案基于比較成熟的、不斷的經(jīng)驗積累而形成。

關(guān)于部署的形態(tài),孔再華首先介紹了一主一從的虛擬機方案。在這個方案里,虛擬機高可用漂移,主從不切換;同時,加入HA守護數(shù)據(jù)庫進程,實現(xiàn)故障后自動拉起,即某一虛擬機出現(xiàn)故障后,仍能保障數(shù)據(jù)的一致性。

另一個方案是物理機方案。和虛擬機方案類似,同樣是同城雙中心,物理機方案采用FIRST設(shè)置,可實現(xiàn)本地同城數(shù)據(jù)同步、本地HA激活故障切換,在同城HA非激活狀態(tài)下,也可人工干預(yù)同城切換。

除了同城雙中心的保護之外,民生銀行在openGauss應(yīng)用實踐中還設(shè)計了常見的兩地三中心容災(zāi)方案。該方案采用一主一從的架構(gòu),在異地的機房里設(shè)置同等比例的服務(wù)器,通過使用openGauss主從復(fù)制的能力,以及一些可定制化的配置設(shè)計而成,可實現(xiàn)異地數(shù)據(jù)異步傳輸、異地級聯(lián)復(fù)制、異地演練、異地切換。

在容災(zāi)方案的基礎(chǔ)上進一步延伸,民生銀行在openGauss的使用中還設(shè)計了逃生庫方案,解決了人為操作或者其他原因?qū)е聰?shù)據(jù)丟失時如何找回的問題。逃生庫獨立于OM集群管控之外,支持延時回放、迅速恢復(fù)到目標時間點,緊急情況下具備可擴容承載業(yè)務(wù)的服務(wù)功能。

逃生庫方案中還包含了Kubernetes云原生方案的設(shè)計。云原生方案是民生銀行開發(fā)出來的operator,作為民生銀行測試環(huán)境主推的方案,采用多中心集群部署形態(tài),可實現(xiàn)從部署到擴容、回收、集群監(jiān)控、集群高可用等全生命周期管理,同時支持多網(wǎng)絡(luò)插件、多存儲插件、可維護狀態(tài)設(shè)定和故障自愈。
02 民生銀行與社區(qū)協(xié)同優(yōu)化openGauss產(chǎn)品功能
民生銀行在openGauss的使用過程中,非常大的一個變化是客戶端自適應(yīng)能力。孔再華提到,我們不再采用傳統(tǒng)的VIP模式,而是配置所有主從的IP列表(通過DNS配置主機名指向物理IP),利用客戶端的自動辨識功能連接主庫,這是民生銀行使用其他數(shù)據(jù)庫所不具備的。在此之前,openGauss的JDBC客戶端支持多IP配置,支持讀寫分離;ODBC客戶端支持多IP配置,但不支持讀寫分離,只能通過transaction_read_only屬性區(qū)分是否為主庫;Libpq支持多IP配置,不支持讀寫分離;甚至連Python驅(qū)動和Go驅(qū)動也不具備這樣的自適應(yīng)能力。在民生銀行的積極推動及openGauss社區(qū)的共同努力下,客戶端的自適應(yīng)能力得到了顯著改變和快速成長。

在本地提交問題上,民生銀行協(xié)同openGauss社區(qū)也做了進一步的功能優(yōu)化。原先主從復(fù)制后,很容易出現(xiàn)主從日志分叉,進而導(dǎo)致主從數(shù)據(jù)不一致,在openGauss使用初期,確實因這個問題產(chǎn)生過不少困擾。最終的優(yōu)化方案中,決定在本地提交的數(shù)據(jù)中加入同步點,除了日志之外,數(shù)據(jù)庫在發(fā)送日志過程中,寫下了從庫回來某一個同步點的信息即日志的位置。日志的位置在之前說明已經(jīng)提交給從庫是一致性的點,如果臨時點之后本地日志還有從庫沒有收到的local commit數(shù)據(jù),就不能做Build。如果發(fā)現(xiàn)數(shù)據(jù)不一致,就需要用一些日志的工具去把兩個分叉的日志點往后的數(shù)據(jù)全部弄出來,看到數(shù)據(jù)的差異。

行存壓縮能力是民生銀行早期向openGauss社區(qū)開發(fā)提出的需求之一。經(jīng)過過去兩三年的功能優(yōu)化,openGauss的行存壓縮能力已經(jīng)有了顯著增強,壓縮之后不僅空間、容量使用上會很少,性能上也有一定的增強改進。在測試環(huán)境中,無論是表還是索引,整體壓縮率都較高,在真實的生產(chǎn)環(huán)境中也能壓縮到三分之一左右。
03 對openGauss產(chǎn)品的需求與期望
演講尾聲,談到對openGauss產(chǎn)品的需求和期望,孔再華提到兩點——穩(wěn)定和易用。他認為,任何產(chǎn)品新功能的使用,穩(wěn)定都是第一位,確保新功能不對老功能產(chǎn)生侵害,確保它穩(wěn)定、安全之后再交付給用戶使用。隨著民生銀行使用openGauss的時間增長,這種感受和需求也日益加深。其次是易用。“開發(fā)并優(yōu)化客戶真正需要的功能,最大程度確保穩(wěn)定和易用,相信是廣大openGauss用戶和社區(qū)持續(xù)共同的目標和追求。”孔再華講道。
當前,中國數(shù)據(jù)庫的發(fā)展正可謂百花齊放、如火如荼,以民生銀行為代表的金融行業(yè)應(yīng)用實踐就是鮮活有力的說明。在千行百業(yè)的數(shù)字化轉(zhuǎn)型升級需求下,相信以openGauss為代表的中國數(shù)據(jù)庫定將不負時代使命,持續(xù)優(yōu)化創(chuàng)新,共同加速數(shù)字化發(fā)展、推進數(shù)字中國建設(shè)。

星空人工智能技術(shù)網(wǎng) 倡導(dǎo)尊重與保護知識產(chǎn)權(quán)。如發(fā)現(xiàn)本站文章存在版權(quán)等問題,煩請30天內(nèi)提供版權(quán)疑問、身份證明、版權(quán)證明、聯(lián)系方式等發(fā)郵件至1851688011@qq.com我們將及時溝通與處理。!:首頁 > 新聞 » DTC 2023精彩回顧丨孔再華:openGauss在民生銀行的應(yīng)用實踐