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

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

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

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

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

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

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

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

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

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

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