鄭州商品交易所:率先落地原生分散式資料庫為期貨交易保駕護航

OceanBase技術站發表於2023-02-08

文 /鄭州商品交易所執行經理 王立鵬;OceanBase解決方案架構師 李丹丹

來源 / 金融電子化


鄭州商品交易所(以下簡稱“鄭商所”)成立於 1990 年,是國務院批准成立的第一家期貨市場試點單位,全國五家期貨交易所之一。2021 年,鄭商所成交量 25.81 億手,位居全球交易所第 7 位。

透過 OceanBase 原生分散式資料庫承載多套業務系統,鄭商所成為國內首家完成生產環境分散式資料庫上線的期貨交易所,並基於全棧自主可控軟硬體基礎設施逐步完成 IT 架構分散式升級。“鄭州商品交易所基於 OceanBase 的分散式創新應用實踐”專案憑藉行業領先性、創新性榮獲“2022 第十三屆金融科技應用創新獎”。

 

確定分散式資料庫的選型目標

 

資料庫作為資訊社會的重要基礎軟體,承載著關係國計民生的重要資料,資料庫的安全穩定極其重要。但長久以來,重要行業的核心資料庫一直使用傳統的集中式資料庫,給資料安全帶來了諸多挑戰。

傳統的集中式資料庫架構支援一般業務系統時,可以做到高效、穩定和可靠,對金融服務的發展起著重要支撐作用,但並不能較好適應數字經濟時代金融業的高併發、大流量、高可用的特徵。隨業務系統數量的快速增長,傳統集中式資料庫已經無法滿足鄭商所的多項需求。

綜合考慮統籌成本、效率、資源等因素,以業務適配性、穩定性、高可用性為原則,鄭商所深入研究分散式資料庫架構在期貨行業應用中廣泛推廣的可行性。

分散式資料庫架構的核心理念按照一定維度將系統進行拆分,透過開放的結構,實現各業務模組松耦合,降低對底層硬體的依賴程度。然而,從傳統集中式資料庫轉型分散式資料庫,對業務開發和資料庫運維都是很大的挑戰,同時藉助分散式資料庫轉型的機會如何提高容災等級也是一大考驗。

▋ 開發方面

分散式資料庫在相容性方面需要儘量相容傳統資料庫(Oracle/MySQL)。業務從 Oracle/MySQL 遷移至分散式資料庫時,需要儘可能地減少業務SQL改造,降低業務開發的學習和分析成本。相容性還包含資料庫訪問驅動介面的相容(如 JDBC、OCI 等)。除相容複雜 SQL 外,效能方面也不能有問題。分散式資料庫要能證明自己在複雜業務場景和複雜 SQL 方面的效能。

▋ 業務方面

在遷移至分散式資料庫時,存量資料也需要遷移,且遷移過程必須線上,而且還要保證遷移資料的正確性和時效性。鄭商所的期貨交易業務覆蓋全球,業務允許的割接停機時間非常短,業務的服務需求需要保證 SLA,資料庫的可用性也必須做到在業務的 SLA 範圍以內。

▋ 運維方面

分散式資料庫多是 Shared-Nothing 架構,部署在普通的商用伺服器上。相比傳統小機儲存,會給運維帶來兩個難題:一是資料庫伺服器的數量會比較大,二是資料庫伺服器的可用性沒有小機那麼高(即伺服器故障率相對高一些)。因此,運維管理分散式資料庫的工作量可能會增加,並且分散式資料庫的故障率可能會相對比較高。這就對分散式資料庫的運維提出更高的要求——規模化、自動化;也給分散式資料庫的穩定性提出更高的要求——高可用、不丟資料;同時,分散式資料庫的擴容縮容操作要求能線上進行,並且儘可能自動化。

 

用更低的改造成本,享受分散式架構的技術紅利

 

OceanBase 分散式資料庫提供的高度相容 Oracle 語法的租戶和配套遷移工具,可以便捷地將之前執行在 Oracle 上的系統業務,下移至基於 OceanBase 分散式資料庫的開放平臺上,並且提供與 Oracle 接近的功能和效能。

由於歷史原因,鄭商所大量的核心業務,如結算系統,使用了 OCCI 和 OCI 的介面驅動。OceanBase 分散式資料庫不僅相容常用的 JDBC、ODBC 驅動介面,還支援 OCCI 和 OCI 的介面驅動。這樣,鄭商所的大量 Oracle 應用系統只需要進行資料庫介面驅動的替換,就可以順利連線上 OceanBase 分散式資料庫,進行業務的功能、非功能適配和聯調工作。

 

圖片

圖1 Java 應用適配

圖片
圖2 核心 OCCI 應用適配

 

在數月的業務適配驗證過程中,鄭商所驗證了 WEB 服務類和 C++ 語言模式下,不同的高效能應用系統的資料庫遷移路線。在業務程式碼基本不做改動的前提下,透過分散式資料庫自身語法相容性的能力,結合分割槽、多租戶等特性,鄭商所的業務系統能夠以更低的改造成本得到分散式架構的技術紅利,降低遷移成本、遷移風險的同時,為更多業務系統的快速遷移適配打好基礎。

 

線上遷移割接,保障相關業務系統平穩執行

 

鄭商所現有的存量業務執行在不同版本的 Oracle 上,從十幾年前的 Oracle 10G 版本,到新一些的業務使用 Oracle 19c,並且使用了大量的 Procedure、Package、Trigger、DBLink、Function、Struct 等 Oracle 特色的物件和用法。

OceanBase 的 Oracle 相容模式租戶不僅提供了 Oracle 語法相容能力,同時產品也提供了一站式資料庫遷移解決方案,包括遷移可行性評估、遷移成本評估、遷移效能評估、結構物件遷移、資料遷移、資料校驗和反向增量同步保護等完整的線上遷移割接能力。OMS(OceanBase Migration Service,OceanBase 資料遷移工具)的資料校驗功能,為鄭商所提供源資料庫和目標庫的全列資料一致性校驗能力,保障資料遷移質量。同時,反向鏈路的資料同步為無損回滾能力提供保證,確保業務的連續性不受影響,如下圖所示。

 

圖片
圖3 一站式資料庫遷移解決方案

 

在整個遷移過程中,OMS 支援在全量資料遷移過程中動態調整併發度,只會佔用源端極少量的 CPU 和儲存 I/O,對源端資料庫和線上業務的影響極小,保證了在資料遷移過程中,期貨交易系統的平穩執行。

鄭商所在存量 Oracle 業務實時遷移同步過程中,總結出一整套適合期貨行業業務系統的遷移最佳實踐:

  • 源端(Oracle)和目標端(OceanBase)的 NTP 時鐘需要同步,同時源端開啟archivelog和補償日誌;
  • 遷移的表如果含有大欄位(blob、clob等),需要單獨建立同步鏈路,調整同步引數,每次同步 batch 資料行數不能太大,確保同步鏈路平穩順暢;
  • 在實時同步資料過程中,不能同步外來鍵、觸發器等物件約束,需要在業務停寫、源端(Oracle)與目標端(OceanBase)資料比對一致後,再建立(或者啟用)目標端(OceanBase)的外來鍵、觸發器、sequence 等物件約束,避免可能產生的兩邊資料庫不一致的問題。

 

高效運維,降低資料庫總擁有成本

 

目前,微服務應用架構已經深入到了包括期貨在內的各個金融行業。但同時,微服務架構也給底層資料庫帶來了諸多挑戰:資源碎片化、管理複雜、資源浪費、擴充套件性差等。OceanBase 提供原生且強大的資料庫資源整合方案,透過在一套分散式架構中實現的資源池化能力,能夠在顯著降低資源和管理成本同時,依然保持優秀的效能和可運維性。

鄭商所基於 OceanBase 的多租戶架構,打造了屬於自己的 DBaaS 平臺,將多個不同業務的資料庫例項集中整合,不僅提升資源利用率,同時基於 Paxos 的多副本機制可以保證每個資源單元的高可用能力。透過這種用法,鄭商所將內部大量不同業務鏈路的資源池化,為不同業務系統提供不同規格的例項,保證資源隔離性的同時大幅降低資料庫總擁有成本(TCO)。

 

圖片
圖4 基於OceanBase多租戶架構的DBaaS平臺

 

鄭商所使用 OceanBase 分散式資料庫不僅作為傳統集中式資料庫的單一替代,將一個資料庫存放不下的資料放至多個物理機存放,更是傳統集中式資料庫的升級,極大地提升資料庫的可擴充套件性、可用性,以適應大資料時代的需求。

運維方面,鄭商所有了 OceanBase 智慧運維體系的全面保障護航,常見的 SQL 問題、診斷等可以自動實時分析,給出合理的應急最佳化建議。並且能夠有效解決因當機、網路抖動、大查詢等造成影響生產連續性的問題,真正做到“先恢復,後排查分析”。

 

加強自主可控,為期貨交易保駕護航

 

鄭商所在行業內率先在生產系統上線分散式資料庫 OceanBase 叢集,驗證了 WEB 服務類和 C++ 語言模式下的高效能應用系統的資料庫遷移路線,並且充分利用分散式資料庫的技術特點,提升資料庫的容災備份能力,並簡化了變更升級操作流程,真正享受微服務架構帶來的便利,提升系統連續服務能力。

運維方面,鄭商所落地了基於多租戶能力的 DBaaS 體系,即在一套資料庫叢集內,秒級交付 Oracle 或 MySQL 租戶,快速響應業務對資料庫的使用需求,有效為管理流程提效。

架構方面,鄭商所藉助 OceanBase 構建“主機房三副本+災備只讀備副本”的高可用部署架構,能夠消除機房內單點故障,容災能力大幅提升;同時,叢集級別的"主備庫"能夠滿足交易所的機房切換演練要求。

採用分散式資料庫 OceanBase 的多個業務系統的成功上線,標誌著鄭商所在推進資訊科技自主可控性方面邁上新的臺階。

結合此次專案經驗積累,鄭商所後期將依照各項業務發展特性,積極推進核心業務系統改造適配及試執行工作。未來,鄭商所將會有更多的核心業務系統遷移至分散式資料庫,有效提升資訊科技自主可控能力,為期貨交易所數字化轉型與業務發展保駕護航。

相關文章