随着数字化转型的加速,业务部门针对数据库数据抽取的需求正在加大。但数据库自带的同步工具存在无法进行异构操作系统和跨数据库版本同步,也无法做到表级和用户级同步及供应链安全等问题。为此提出了基于SQL语句复制突破Oracle ADG异构环境下数据抽取同步的难题,从真实应用需求出发,根据场景测试结果,到真实场景上线运行,以及对抽取数据的记录,成功论证了其可行性。该实践满足企业在异构环境下数据实时抽取、容灾高可用等需求,并可应用在国外数据库到国产数据库的异构信创库同步中。
关键词:数据库同步;异构复制;同步速率;灾备
引言
进入数据时代,企业要不断创造商业价值,就要更加重视数据的作用,要对数据进行全面的更及时的采集、转换、共享和深入的挖掘,就需要采用先进的数据库同步技术。Oracle数据库(以下简称“Oracle”)作为全球主流的关系型数据库,对于其同步技术的研究与分析在业界较为普遍,文献1详细介绍了基于Oracle数据库实时同步技术的几大主流方式,并对其中以Oracle为基础的数据实时同步技术进行了分析。文献2则介绍了一种通过跨版本的数据同步工具、同版本平台的实时容灾等共同构建数据库升级方案的方法,提到数据实时同步技术可以很好的应用到数据库升级迁移过程。
随着数据库领域的厂商及品牌的增加,同品牌及不同品牌异构环境下的数据库复制应用场景越来越丰富,并在各行业逐步推广应用。如文献3提到了电力领域关于多源异构数据库之间的实时同步复制技术的应用情况,提出了一种基于RabbitMQ的多源异构数据库同步复制的方法,可以极大限度的提高数据转发的效率和可靠度。但上述基于Oracle数据库的自身数据复制工具,虽然能够解决同构及异构场景下的数据抽取同步的问题,但其适用场景有限。例如本文重点提到的Oracle ADG同步功能,就存在无法进行异构操作系统和跨数据库版本同步,也无法做到表级和用户级同步及供应链安全等问题。
为解决这些问题,本文通过在金融行业的应用实践,检验了基于SQL语句(数据库结构化查询语言)复制突破ADG异构环境下数据抽取同步的难题,帮助企业提升数据交换共享的效率。
1.应用需求
随着证券机构数字化转型的步伐加快,机构各业务部门对数据的抽取同步的需求正在加大,数据抽取同步的时效性也从定期取数向实时性取数转变。某头部证券机构(以下简称:机构)作为全国性大型综合证券公司,开展的业务种类齐全,各业务部门对数据需求旺盛,如果不通过中间数据站点进行缓冲,直接从生产数据库进行取数,会对生产数据库系统的安全性和性能造成重大的影响。
为了能够实现业务数据实时抽取出来做数据站点,供业务部门进行快速的数据抽取和业务的决策分析,机构规划通过专业的数据复制工具,将数据实时从源端数据库抽取出来建设数据库站点。经过调研分析,机构的源端拥有OTC、O32、风控、CRM、融资融券、黄金系统等30多套Oracle数据库系统站点,因为数据库部署方式的不同,机构需要采取三种不同的数据抽取方式:
第一种:Oracle RAC(数据库系统集群)的节点通过其中一个节点将数据抽取推送到目标端。
第二种:Oracle RAC的Standby(备用)节点作为源节点将数据抽取推送到目标端。
第三种:Oracle数据库源端还有多套单节点到目标端单节点的数据推送。
同时,为了能够集约化建设,机构通过目标服务器复用的形式,在一台服务器安装多套数据库作为目标节点。
2.挑战与可行性测试
针对上述调研的环境,行业传统的部署方案是采用Oracle RAC+ADG的架构,即在确保Oracle数据库高可用性和高并发访问的同时,通过构建ADG Standby库来保障数据层面的冗余和数据实时同步到目标端。
ADG同步工具是Oracle数据库提供的自带功能模块,用来实现数据同步及数据库高可用。根据实际情况,ADG既无法做到异构操作系统平台和跨数据库版本同步,也无法做到表级和用户级同步。
本项目的主要需求是做数据汇总和汇集,将不同版本的多个库统一汇集到X86环境的统一版本的数据库。比如源端环境是Windows、Linux和AIX操作系统平台,需要集中同步到指定的Linux操作系统平台,而ADG由于技术限制无法实现这一目标。又比如某个数据站点备库是Oracle11G的数据库版本,但是其源端有Oracle11G和19C的版本,对此ADG同样无法满足跨版本传输的要求。
针对机构的现状与需求,技术人员总结了当前市场数据库同步技术的优缺点,提出了基于SQL语句复制技术方案思路,以实现对不同部署方式的数据库的数据进行实时抽取同步。在方案实施前,技术组进行了页面测试、功能测试、性能测试、异常测试等测试项目。其中功能测试进行了全量数据的测试,在全量数据同步测试完成后,还进行了对象的一致性比对,比对结果符合预期。
最后,经过严格的测试,基于SQL语句复制技术方案进行的各个测试项目的测试结果符合预期,具备实施的条件。
3.基于SQL语句复制技术整库抽取同步方案
随着业务发展,机构数据库逐渐形成 Oracle RAC集群的体系结构,ADG备库作为灾备数据库。根据数据库的建设现状与需求,技术人员采用了基于SQL语句复制技术方案,将生产数据库实时同步出来作为数据站点,方便各个业务部门快速获取数据。具体方案如下:
3.1 SQL语句复制技术原理
SQL语句复制技术基于数据库事务日志分析,在数据库高并发事务场景下实现数据实时同步;于目标端同步写入时序,严格确保源端和目标端的数据库事务级最终一致性。既提供了备库接管、反向同步等高级功能,也帮助用户在复杂的生产环境下完成数据库的容灾备份、异构平台迁移、应用负载均衡、构建大型数据仓库等数据管理工作,具有安全可靠、非侵入、简单便捷、高性能的特点。
SQL语句复制技术抽取同步过程涵盖全量和增量同步两个过程:
全量同步导出源库的数据字典,包括用户、表空间、自定义类型、表结构、视图、包、存储过程、DBLINK信息;数据字典先行同步至目标端,目标端检测无误后开始装载用户、表空间、自定义类型;接下来开始同步表数据;表数据同步完成之后会处理视图、包等其它对象。全量同步完成后自动进行增量同步模式,自动转换,无需人工干预。
增量同步开启后实时采集并解析数据库事务日志,包括DDL(Data Definition Language,数据定义语言)结构性变化和DML(Data Manipulation Language,数据操纵语言)数据性变化,分析、形成二进制数据文件以进行网络传输。然后在目标端转换为SQL语句装载到目标库。
其中,全量同步和增量同步同时开启,在全量同步没有结束前,增量数据会进行缓存,等全量结束后再传输数据。
图-1 SQL语句复制技术抽取同步过程
整个过程,SQL语句复制技术运用了Oracle到Oracle数据库同步的两种映射方式:
主键定位同步技术:通过捕获源端主键的方式,定位目标段所要删除和修改的数据。此方式使用时生产数据库中的表要有主键。此技术定位灵活多变,适合实时数据转换等应用场景。在主键定位方式下可以实现主键级并发装载。
ROWID数据定位同步技术:ROWID是数据库的表中的一条记录的唯一标识,是数据库中的表记录在数据库中存放的物理地址,通过首次全量同步,软件可以建立源与目标的映射关系,因此基于该复制技术的复制工具能够准确、快速、高效的定位变化的数据。此方式简单、方便,与业务相关性小,适合容灾,分担业务负载等应用场景。在ROWID定位方式下可以实现表级的并发装载。
其中主键映射是在数据复制工具用于生产流程的环境中,比如银行证券等金融领域,主键映射技术占主流。
3.2整库数据同步实施
SQL语句复制技术通过实时解析数据库在线事务日志,细致到表级和用户级的数据,然后根据Oracle数据库不同的部署策略,实现从Oracle RAC中直接抽取数据到目标库,或将ADG备库的数据抽取出来,实时传输到目标库。最后在目标库执行解析指令,以保证主备两端的数据一致。此外,针对多套单节点数据库的部署方式,可以直接抽取数据传输到相应的多套目标库,为用户实现多种策略的数据库抽取和传输的目的。
该技术方案实现了不同版本的Oracle数据库数据的异构实时同步,如从源端的Oracle11G与Oracle 19C传输到Oracle11G,并且备端始终处于在线状态,可以为主端提供查询、业务分析等功能。最终在不影响生产端业务的情况下,实现了数据库数据的实时同步和读写分离,降低了主数据库负荷。此外,当检测到生产库系统故障时,目标库还可一键接管生产库的业务,保障生产库业务的连续性。
3.3高性能的同步效率
在众多同构及异构数据库抽取同步技术应用中,对于数据抽取同步的性能极少提及,为此本次特意记录了数据抽取同步的相关性能数据。
由于SQL语句复制技术实现了备库的数据抽取不依赖于Oracle接口,直接运用数据库SQL语句同步技术进行实时数据同步,因此突破了Oracle ADG无法跨操作系统及跨版本传输的技术难题。SQL语句复制相比其他同步技术,其同步性能的核心评价指标,在经过长期的稳定运行后,技术组记录了其最新的同步速率,结果显示平均时延在毫秒级别。
4.应用特征
整个技术方案具有如下应用特征:
(1)不停机部署,不影响业务。传统停机部署会给机构带来不可避免的损失,而本案无需暂停业务交易就能实现数据迁移,系统割接时将分钟级启动恢复,部署和使用也非常方便。
(2)提升数据库性能。本案具有简单灵活、高性能、低影响、低于秒级延迟、低成本的特点,可以有效分摊生产数据库的读写压力,不影响数据库的响应速度。
(3)支持跨平台跨版本数据同步,满足未来升级需求。支持Oracle数据库不同版本之间的迁移,支持源数据库和目标数据库运行在不同类型的操作系统和不同的Oracle数据库版本上,同时能够支持不同类型的磁盘阵列;其不仅能够满足目前环境,还能适应未来升级迭代的需求。
(4)自主可控,同步性能强。采用国产化数据复制同步技术工具,完全摆脱Oracle ADG原生同步工具,且具备了状态实时监控可控,支持非归档模式、全面支持DML/DDL、无缝数据实时迁移、双向同步负载均衡等创新功能,无需具备专业的数据库操作技能即可使用,数据同步效率更高。
结语
2015年,国外数据库占据我国90%以上的市场份额,其中Oracle占比56%[4]。2015-2020年,新成立的国产数据库企业达33个,2020年国外数据库合计在我国数据库市场的市场份额已降至52.6%;截至2021年5月,国产数据库企业共计80家[5]。数据显示,数据库国产替代和多源异构数据库复制将可能呈现爆发式增长,因此异构环境下的数据库复制技术将成为数据抽取同步的重要技术,特别是在金融、电力能源等领域的大数据应用和异地容灾保护方面,将可能带来深刻的影响。基于SQL语句复制突破异构数据抽取同步难题是数据库复制技术的重要应用之一,可在进口替代、国产化应用、异构平台数据迁移等领域发挥重要作用。
[参 考 文 献]
[1]库尔班江·托乎提,于会松,段非.基于Oracle数据库实时同步技术的研究与分析[J].信息系统工程,2016年12期1第112页.
[2]霍卓群.基于Oracle ***技术的数据库平滑升级方案[J].佳木斯职业学院学报,2015年04期第352-353页.
[3]刘鹏,李宏敏,程清,刘镇京.多源异构数据库之间的实时同步复制技术[J].中国科技信息.2018年16期第95-96页.
[4]RDBMS,IDC WW Software 2015H2 Tracker Data[R], Apr2016 Update.
[5]中国信息通信研究院云计算与大数据研究所,数据库发展研究报告(2021年)[R],2011年6月.