行业现状
“十四五”中数据库是信息系统核心引擎
2021年3月,“十四五”规划纲要正式颁布,提出要培育壮大人工智能、大数据、区块链等新兴数字产业。国家也陆续印发不同领域的“十四五”规划。在2021年12月28日,工业和信息化部等八部门联合印发了《“十四五”智能制造发展规划》,其中提出了多项重要目标,其中“加速系统集成突破”目标中指出,需要面向装备、单元、车间、工厂等制造载体,构建制造装备、生产过程相关数据字典和信息模型,开发生产过程通用数据集成和跨平台、跨领域业务互联技术。同时需要对核心技术进行把控,尤其是大数据、5G等适用于工业领域的技术。数据库作为大数据支撑的核心,在工业领域的国产化与大数据化是解决工业核心技术突破的重要抓手。
数据库的备份在安全问题凸显的时代尤为重要
在以俄乌冲突为首的国际对抗形势中,针对数据库软件的威胁日趋深重,开始逐步波及整个信息化领域。据报道,在2021年“十大数据泄密事件”中,共有近2.2亿人受影响。例如在2021年8月的“OneMoreLead”事件中,vpnMentor研究团队发现,B2B营销公司OneMoreLead将涵盖6300万美国人的私人和美国政府数据存储在不安全的数据库中,并导致黑客渗透到对应高级政府机构,引起重大的国家安全事件和信任危机。2022年2月“俄乌冲突”爆发后,更让我们看到数据库安全的隐患。据不完全统计,截至2022年3月7号,匿名者和其他亲乌黑客组织攻陷了90%俄罗斯互联网中暴露的数据库。被攻击的数据库中文件多数被删除和重命名。与此同时,俄罗斯邮件提供商VK服务器的大量密钥、数十万条俄罗斯个人信息等被盗窃,匿名者及其他黑客组织利用这些数据进一步发起钓鱼攻击或直接向目标发送恶意软件以试图感染目标设备,因此建设安全可靠的备份数据库系统显得尤为关键。
原创自主数据库才是核心系统的首要选择
据信通院《数据库发展研究报告(2021)》统计,我国数据库产品截止报告统计时间(2021年6月)有135款,其中关系型数据库有81款,产品内核多数基于MySQL和PostgreSQL二次开发而来。从比例来看,基于上述两类的产品分别占国内关系型数据库总量的比例为28.40%和29.63%,总计占58.03%,另外还有部分是基于Hadoop、Ceph等开源产品封装,其中完全原创自主的产品寥寥无几。截止2022年4月,两大开源社区MySQL与PostgreSQL的代码托管平台Github显示,其从1996年开源至今的所有核心贡献者(Top20)及社区管理员中,无一华裔和中国公司。从上述的统计数据中可以看出,抄袭国外开源产品的国内数据库公司,在核心代码的技术路线上并无话语权。如果出现针对国内开源数据库的逻辑炸弹和漏洞攻击,我们目前所谓“大厂”产品可能会溃不成军,所以选用自主原创的数据库产品就是为核心数据上一把“安全锁”
分布式数据库是解决国产性能问题的法宝
目前国产数据库与国产硬件的叠加相较于国外高端硬件和成熟数据库产品的配合还有一定举例,尤其是以同型架构进行替换的时候。例如“IOE”(IBM服务器、Oracle数据库、EMC存储)的“黄金搭档”在国际市场上拥有相当的话语权,我们对齐同型产品替换目前还很难。但是我们有另外的更优解-分布式数据库。从工信部《“十四五”软件和信息技术服务业发展规划》到人民银行《金融科技(FinTech)发展规划(2019-2021年)》明确提出分布式数据库是未来数据库的核心架构方向,其拥有更好的架构,可以提供强大的扩展性和可靠性,所以可以将众多的国产硬件设备堆叠起来,规避掉国产硬件的稳定性弱点,并可以整合起来提供更强的性能。分布式数据库就如同当今时代的电动车,虽然没有等同于在燃油车中的“发动机”与“涡轮增压”系统的在集中式数据库中的经典部件,但是通过其优异的能力和性价比,是替换国外把持的长期市场的重要抓手。
建设内容
目前xx公司各类业务系统数据库均为国外品牌,再加上业界各类数据库安全漏洞和泄密事件频繁发生,针对以上情况以及国际形势掐脖子问题,利用国产化数据库以解决生产数据安全问题已势在必行。为了不对生产层数据安全造成冲击,本次建设方案采用柔性替换的方式进行,让业务系统实现平滑过渡,进而保证生产系统数据的安全。因此此次方案通过整体规划、分步实施的方式进行,先在xx公司现有生产系统中选择一套,采用国产数据库对其实现实时热备,待备份系统稳定运行后,再将国产数据库替换原数据库运行,后续再逐步启动其他系统数据库国产化替换工作。
建设目标
利用国产分布式数据库及数据同步软件构建国产化备份数据库方案,通过多阶段部署实施和推进,从环境准备、目标数据库部署、同步软件部署、上线调试、正式接入、接入校验六个步骤来完成数据库国产化的目标,从根源上解决生产数据安全及数据无法高效使用的问题。
总体需求
xx公司xx系统目前采用的是一套xx数据库作为底层支撑,仅有一份完整的数据,以每日定时备份方式进行,但定时备份属于时间间隔较长的备份方式,一旦数据库系统在这段时间范围内宕机仍然存在备份间隔期的数据丢失问题。由于xx系统存放的是生产层核心数据,因此建立一套实时热备系统以增强生产数据的安全性很有必要,并且实时备份相较于定时备份优势较为明显,只要有新的数据生成,就能自动将新数据同步至备份系统,几乎没有数据丢失。并且可通过应用层面进行适配,最终实现双库并行的机制,在正式数据库出现故障时进行业务的接管。另一方面,面对日益复杂的国际形势,如何对数据库选型,选择一套满足需求的国产数据库成为核心问题。考虑到业务系统的重要性以及直接替换带来的安全性问题,可先将xx数据库作为主系统,采用一套兼容性强,性能优良的国产数据库作为备份系统来逐步实现对xx数据库的替换,通过数据同步软件完成主备系统之间的数据同步。当生产环境出现问题导致xx数据库不能正常使用时,能将xx数据库故障前最近时间点的完整数据同步至备份系统,同时应用可以使用备份系统完成主备数据库之间的无缝切换,以此保证绝大部分生产数据的安全,从而保证应用系统的稳定运行,维持业务的连续性。为构建国产数据库备份系统及基于xx数据库作为源端的数据同步方案,对备份数据库及数据同步软件提出了新的要求,以下为对备份数据库以及数据同步软件的需求分析。
备份数据库需求
(1)备份数据库为国产数据库,必须对源数据库具有良好的兼容性,高度兼容源数据库的使用方式,包括语法、函数、存储过程等,尽量避免造成应用的修改;
(2)可以提供类xx数据库的管理控制台工具供用户方使用,减少开发人员的学习成本。
(3)备份数据库未来将会替换xx数据库作为核心支撑系统使用,考虑到业务的扩张给数据库系统带来的数据量以及并发增长压力,备份数据库架构必须为分布式架构,具有良好的横向扩展能力,不需要纵向升级硬件,只对数据库软件节点进行扩展即可完成系统的扩容,达到xx领域的高效处理级别,避免机房重复建设带来的成本攀升。
(4)备份数据库需要支持国内外主流的软硬件厂商,可以在全国产的环境下运行。
(5)由于数据同步涉及到数据的传输,因此备份数据库本身需要具有强有力的安全特性,支持在传输过程中对数据进行加密并且数据库内部具有多种安全防护手段及权限管理,如多级权限管理、密码反刺探、访问IP黑名单功能等,全力保障业务系统中生产数据的安全。
(6)备份数据库是一款成熟并且经过市场检验的数据库,具有强有力的稳定性,不会因访问压力造成数据库的崩溃,保证应用持续不间断的运行。
(7)具有良好的数据存储访问效率,每秒数据单条插入不低于4万,TPMC不低于300万;
(8)国产数据库应具备自主可控能力,没有使用任何开源组件进行更改,保障其无开源协议风险及知识产权风险,不会因为国际形势造成对数据库技术乃至使用层面的制裁。
数据同步软件需求
(1)数据同步软件简单易用,支持快速将全量数据及增量数据从源数据库实时同步到国产数据库。
(2)支持按数据粒度进行同步,如全库同步、模式同步、指定表同步;
(3)可以高效率的完成同步,数据延迟不超过秒级,保证用户能在备份库对数据进行实时查询。
(4)支持对源数据库和目标数据库之间的数据类型差异按对应规则转换。
(5)支持对接Kafka消息中间件以便进行多路数据分发;
(6)支持双向数据同步链路,以便数据可以从目标数据库恢复到源端库。
方案概述
整体方案采用标准的数据库备份“端到端”模式进行构建,即通过同步软件从国外“源数据库”(Oracle、SQLServer等)端将数据抽取后装载到kafka消息中间件,再由同步软件将kafka中的数据实时同步至目标数据库端即国产虚谷分布式数据库,满足数据链路的完整性及业务系统数据库“国产化”和生产数据“安全可靠”的诉求。同时可将源端数据库的表等对象结构存储持久化至备份数据库,若源数据库服务器宕机或磁盘故障等极端情况导致源端数据库数据有丢失时,再利用虚谷数据库迁移工具将缺失的那部分表数据或数据库对象从虚谷备份库同步至源端数据库,满足数据链路的完整性。另外在源数据端业务种类及业务压力增大的情况下,可以横向扩展目标端的分布式数据库集群,满足可能存在的扩展性和高性能诉求。
整体架构

系统架构图
从整体上来看,系统架构分为三个部分:源数据端、数据同步端、目标数据端。
源数据端指的是以国外数据库为主的生产数据库,包括Oracle、MySQL、SQL Server等,作为数据采集端,因此需要在源数据库上配置一个代理用于推送源端同步数据。
数据同步端指的是用作数据同步的软件以及用作数据存储的kafka消息中间件,同步软件将源端数据库数据以全量或增量数据抽取的方式装载至kafka消息中间件,最后再由同步软件将kafka消息中间件缓存的数据同步到目标数据端,实现数据备份。整个同步过程分为两步,走两次规则。
第一步:源数据库—同步软件—kafka
同步软件首先对源端数据库进行全量及增量数据的抽取,全量抽取是将源端的相关表及对象进行导出,增量是通过解析源端日志,对日志进行读取、分析,并在缓存目录中形成二进制的TF数据文件。全量数据装载至kafka端后,再进行增量数据的自动装载,kafka内部会按照既定的Json格式将源端的表数据进行存储。
第二步:kafka——同步软件—目标数据库
最后通过同步软件的消费程序及远程JDBC连接kafka和目标端数据库的方式,将全量及增量数据装载同步至目标数据端。
目标数据端指的是虚谷数据库,用作数据备份中心以及作为未来可能的数据资源池。
实施流程
(1)环境准备
首先,应对备份数据库及同步软件所需环境进行确认,包括硬件环境、操作系统环境以及用户信息,确认目前所有环境可以支撑虚谷数据库以及同步软件正常运行。
(2)虚谷数据库部署
在环境确认无误后进行虚谷数据库的部署,首先进行虚谷数据库的安装,安装成功后进行数据库参数的配置以及管理工具(管理器、控制台、监控)的部署及配置,各项配置结束后即可启动虚谷数据库。整个过程由数据库提供方负责完成。
(3)同步软件部署
同步软件的部署主要包含各类包及组件的部署配置,分别为主服务、生产者服务、消费者服务以及kafka消息中间件。
主服务:部署于同步服务器,用于配置及管理整个同步软件;
生产者服务:部署于同步服务器,用于将生产库(源端数据库)的数据同步至kafka消息中间件;
消费者服务:部署于同步服务器,用于将Kafka消息中间件中的数据消费至目标数据库;
Kafka消息中间件:部署于同步服务器,通过创立分区(partition)、主题(topic)等方式收集和传递数据。
以上组件安装部署完成后进行相关参数配置即可,整个过程由同步软件提供方负责完成。
(4)接入前测试
备份数据库及数据同步软件均安装部署成功后需进行适配测试,旨在测试源端数据库的对象能够创建到目标端数据库,即DML数据同步,成功同步则说明功能是完全兼容的。
(5)正式接入
基于适配测试成功前提,具备正式接入条件,将接入前的测试环境作为正式接入的基础,将同步主机以及虚谷数据库转为生产,同时对接正式的源端生产库。
执行的操作如下:
· 在源端服务器部署代理服务,用于收集LOG以及推送数据;
· 在源端库实例中创建同步用户;
· 生产者规则目标改为正式库;
· 消费者规则目标改为虚谷正式备份库及模式;
· 启动服务;
(6)接入后校验
同步程序消费完成后可在同步软件消费者界面进行查看,将源端数据库与目标端数据库进行对比,查看数据是否一致。
整体规划
为了增强生产数据的安全性以及达到数据库逐步国产化的目的,本方案计划采用三个阶段分步实施。
第一阶段:在现有生产系统中选择一套,采用国产数据库对其实时热备,以达到生产系统数据安全增强的目的。
第二阶段:在已完成实时热备的系统上,从应用层面进行国产数据库的适配,实现国产数据库与源数据库并行的模式,待生产系统平稳运行后,再将国产数据库替换原数据库运行,进而保证生产系统核心数据安全。
第三阶段:所有信息系统系统逐步启动国产化替换工作,采用国产数据库进行投用。
本次建设内容
本次建设主要涉及第一阶段工作,选择xx公司xx系统,采用国产数据库完成实时热备,以达到生产系统数据库安全增强的目的。第二阶段待具备条件后由应用开发方配合完成相关替换工作。
自主安全可控
基于国产数据库的备份系统可以从多方面提升业务系统中生产数据的安全。一方面,国产数据库经过多年的发展,具有成熟的安全控制机制,在产品的设计上充分考虑到了网络、系统以及数据存储上可能存在的安全漏洞,在数据库系统内部设计了多个维度的安全防护策略,如自主访问控制、强制访问控制、加密认证、数据库审计、IP黑白名单等安全技术,具有对用户访问的安全防护,可以防止各种不合法的访问甚至恶意攻击,同时具备应对各种事故和灾难的机制,有一定的容错和纠错能力,确保数据存储访问的安全和业务的连续。另一方面,在数据库领域,不少厂商为了获得快速发展直接高价购买国外源码希望快速抢占市场,但这些厂商由于缺乏理解底层架构的核心,无法快速解读上千万行代码的设计逻辑,更无法修改核心代码,使其产品不具备自主可控能力,一旦发生不可预知的危险情况,将造成无法挽回的重大损失。而不基于任何开源代码以及开源组件的原创自主国产数据库在架构和代码层面拥有绝对的控制权,不会因为信息战争、国际形势等原因造成技术以及代码的断供进而影响产品的升级迭代,可以从根本上杜绝安全风险,最大程度上保证用户的核心生产数据安全。
随需扩展升级
国产分布式数据库为存算分离架构,基于其优异的架构特点,具有十分强的扩展能力,可以应对后续业务增长带来的数据量及并发压力,并且只需横向对数据库节点进行扩展即可,不需要通过纵向升级硬件的方式进行,这是Oracle数据库以及众多国产集中式数据库难以实现的点。并且用户可以灵活的进行选择,在计算能力不足的情况下可以扩展工作节点,存储能力不足的情况下扩展存储节点,或存储计算同时扩展,在扩展过程中存储能自动均衡,用户无感知,不需要停机,“热”加入即可,保证用户业务的连续性。
高并发访问
由于国产分布式数据库在架构上的特殊性,从底层技术以及应用上进行了一些创新,突破了集中式架构的局限性,在性能方面完全可以达到甚至超过Oracle数据库。如国产分布式数据库内部做了角色划分,可以利用多个角色之间的协作来对任务进行拆分,使用并行计算来提高系统的吞吐能力,使对外提供的服务具有并发量大、访问数据量大的特点,具备高并发用户支撑,大数据量查询输出服务的能力。基于此特点,国产分布式数据库单个节点可提供1000以上并发用户的访问服务,不管是作为备份系统还是国产化替代之后作为主系统使用都完全可以满足现有业务并发访问需求和未来一定时间内的并发用户增加需求,支撑业务的高效实时入库和大数据量的查询请求。

并行计算技术示意图
高性价比
国产数据库对硬件的要求更低,可以运行在较为低廉的PC服务器上,不会依赖昂贵的硬件设施才能发挥出性能,具有较高的性价比,经真实场景验证,国产分布式架构数据库TCO总成本仅为Oracle传统封闭架构的1/5-1/10。另一方面,国产数据库技术和服务支持团队均位于国内,后期原厂服务费用相较于Oracle也更低,并且可以在系统出现问题时快速的进行响应,在短时间内恢复业务的正常运行,减少停机给用户带来的直接或间接损失。综上所述,国产数据库性价比更高,避免机房反复建设带来成本攀升问题。