文 / 郑州商品交易所执行经理 王立鹏;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 的多个业务零碎的胜利上线,标记着郑商所在推动信息科技自主可控性方面迈上新的台阶。
联合此次我的项目教训积攒,郑商所前期将按照各项业务倒退个性,踊跃推动外围业务零碎革新适配及试运行工作。将来,郑商所将会有更多的外围业务零碎迁徙至分布式数据库,无效晋升信息科技自主可控能力,为期货交易所数字化转型与业务倒退保驾护航。