暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

金点分享 | 基于金篆GoldenDB的数据库迁移过程——金融应用指南12

彭纯漾 2024-07-08
766

为帮助金融机构做好分布式数据库产品的选型,推动分布式数据库产品在金融领域的稳妥应用,金篆GoldenDB在北京金融科技产业联盟的指导下编写《GoldenDB分布式事务型数据库金融应用指南》。《指南》深入探讨了如何从应用规划、应用开发、数据迁移等关键环节,将金篆GoldenDB引入金融机构的IT系统中;在数据安全方面介绍了数据加密、访问控制等功能,在性能调优部分提供了完整的优化策略。

上期为大家讲解了如何基于金篆GoldenDB制定数据迁移方案。本期是系列文章的第12期,将深入介绍数据库迁移过程,包括全量数据迁移、增量数据同步、引流切换和回流同步。

从异构数据库(Oracle、DB2、Mysql等)到金篆GoldenDB数据库迁移工作包括:数据库对象迁移、数据库语法改造、数据迁移、数据一致性校验。数据迁移包括全量数据迁移和增量数据迁移,主要迁移或同步表数据。

金篆GoldenDB使用SLOTH平台工具支持各类数据库到金篆GoldenDB的迁移,工具支持配置全量和增量任务进行迁移,同时支持数据校验,包括全量离线数据校验和实时在线校验。完整的数据迁移过程主要包含如下四个步骤:全量数据迁移、增量数据同步、引流切换、回流同步。

图1 数据迁移主要步骤

数据库正向同步


01 全量迁移流程

全量迁移持续时间和存量数据量成正比,分为迁移和核验两个阶段。全量数据迁移步骤:

1)在ADG备库停止同步后,获得生产快照,基于JDBC接口进行全量数据迁移,迁移期间主机同步一直处于关闭状态。

2)同步比对机制,比对功能与全量迁移同步启动,期间会比对很多次,当数据量达到阈值或者等待的时间达到阈值(都可以配置),则触发一个轮次的比对过程。当次参与比对的数据包括回放端新同步完成的数据,同时还包括上一轮次比对不上的差异化数据。

3)全量迁移完成后,若有比对不一致的文件,则根据实际情况进行数据修正。

4)全量迁移完成后,根据分片映射规则,生成分片映射表数据。

02 增量迁移流程

增量迁移在全量迁移完成、确认移植数据与主机镜像数据100%一致后再进行,主要完成数据迁移期间累积日志的数据追平和生产实时产生的日志跟帐。增量迁移包括所有迁移范围的文件。增量数据迁移步骤:

1)增量迁移,在主机镜像启动同步时,通过下载主机日志并将日志转码、根据转码日志操作符将日志转换为INSERT、UPDATE、DELETE 等金篆GoldenDB可执行SQL语句,然后将这些已转换完成的SQL语句并发执行,达到主机与金篆GoldenDB数据库保持一致的目的。

2)增量比对,比对功能与增量迁移同步启动,期间会比对很多次,当数据量达到阈值或者等待的时间达到阈值(都可以配置),则触发一个轮次的比对过程。当次参与比对的数据包括回放端新同步完成的数据,同时还包括上一轮次比对不上的差异化数据。

3)日志操作条目数比对,在增量迁移的同时每隔30分钟进行一次日志条目数比对,主要比对在间隔时间内增量迁移转码操作数(每张表的INSERT UPDATE DELETE数量)是否与主机生产上这段时间产生操作数相同。另外,还比较转可执行的SQL语句数量是否与操作数匹配。

03 数据库比对

SLOTH支持在全量迁移、增量迁移、全量+增量迁移任务中,都有对应的采集组件、回放组件和比对组件,也即比对组件是与同步任务绑定的。如下图:

图2 SLOTH整体架构

在全量迁移期间进行的数据比对,对应的就是全量的数据比对;在增量迁移期间进行的数据比对,就是增量数据比对。

无论是全量数据比对,还是增量数据比对,都是跟同步任务一起运行,期间会比对很多轮次,当数据量达到阈值或则等待的时间达到阈值(都可以配置),则触发一个轮次的比对过程。当次参与比对的数据包括回放端新同步完成的数据,同时还包括上一轮次比对不上的差异化数据。

若不匹配的数据量很小,可以从界面下发“修复”操作进行一键修复。若不匹配的数据量很大,则说明迁移过程可能存在某些问题,需要重点关注同步工具的迁移过程,进行多方会诊。

数据库割接


金篆GoldenDB完成全量或者全量+增量同步后,可以择机进行数据库切换,将应用访问数据库连接切换到金篆GoldenDB,对外提供服务。具体步骤如下:

图3 引流切换过程

1)数据比对。在切换前可以对数据进行比对验证,确保切换时刻两边的数据一致。如果是全量迁移,对全量数据进行校验比对后,再执行引流切换。如果是增量同步,应用请求停止向原数据库写入数据,等金篆GoldenDB追完日志并全部回放完成,并进行增量数据比对校验,再执行引流切换。

2)修改应用连接数据库地址,指向金篆GoldenDB数据库。

3)放开应用前端请求流量,开始对外提供服务。


回流同步


数据库请求引流后,正式完成数据库迁移切换。作为逃生通道,原数据库环境继续保留一段时间,作为备份数据库,反向接入到金篆GoldenDB数据库集群继续追增量数据。反向增量使用金篆GoldenDB SLOTH工具实现。

图4 回流同步

SLOTH增量同步工具有日志采集端(面向源端数据库)、Kafka队列和SQL回放端(面向目标数据库),源端数据采集节点模拟金篆GoldenDB从节点,接入源端金篆GoldenDB,获取binlog数据,使用中间格式存入Kafka队列,目的端从Kafka队列中取出数据,还原为SQL回放到原数据库主节点。

本期为大家讲解了基于金篆GoldenDB的数据库迁移过程,包含全量数据迁移、增量数据同步、引流切换和回流同步等,下期将深入介绍迁移测试与演练、正式割接迁移,敬请期待。

公开资料显示,金篆GoldenDB是金融市场排名第1的金融级分布式数据库,银行业金融级分布式数据库市场份额占比为24.4%,银行核心系统市场投产数量占行业50%,银行次核心及非银核心系统市场投产数量占行业32%,这3项数据均为行业第1。金篆GoldenDB是目前国内唯一在大型银行、券商和运营商实现核心业务投产的国产数据库,核心系统案例覆盖国有大行、政策性银行、股份制银行、城商行、农商行、大型金融机构、券商、保险,具备支撑金融行业最核心业务系统的深厚实力和经验!

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论