用户需求
随着科技的高速发展,金融科技发展呈现爆发式增长,每年账户与日交易量的增长远超预期,集中式核心系统的处理能力瓶颈日益凸显。整体架构臃肿,运维成本高,无论是在性能、扩展性还是效率方面,已无法满足当前业务系统需求和未来快速增长的要求,同时现在联机+联机批交易平均响应时间、日终结息作业处理耗时给业务带来倍增的压力,同时在高峰期面临高并发下会出现大量超时交易,给生产环境带来的压力也越来越重。
在此背景之下,传统的IOE集中式单体数据库扩展瓶颈就越大暴露,并且原有架构投入成本高,时刻存在技术支持下降的风险,秉承“自力更生、核心技术自主可控”的指导思想,某股份制银行根据自身整体战略目标,结合业务扩展的需求,启动了将核心业务数据库将由原来的集中式数据库IBM AS400/DB2下移至X86分布式数据库,采用“整体一次性迁移,业务功能不变”方案。
用户需求:
1、需将原数据库超18T数据,在48小时之内,100%正确率要求下全量移植到新核心分布式数据库。
2、需将原生产核心系统超4T,积压3-6天内的DB2/400数据库日志,在48小时之内,100%正确率要求下同步到新核心分布式数据库。
技术方案
数据迁移在核心系统下移属于非常重要的环节,并且要在很短的窗口期内完成,面临着以下痛点:
1、源数据库对象关系、表间逻辑依赖关系复杂;
2、目标数据库架构部署、规格需求规划;
3、迁移过程业务停机时间要求短;
4、需要同步进行数据对比验证;
5、需要做数据逆向回流、确保安全性和应用回切的兜底方案;
沃信在集中式数据库到分布式数据库提供了全链路迁移解决方案:全量迁移、增量迁移、数据比对校验、数据补录/修正,为异构数据库间数据迁移大大降低门槛、提高效率。
全量数据迁移比对图如下:

全量数据迁移、全量数据比对流程是:
多并发(多进程)从旧核心AS400源表读取数据文件,转码后生成标准的数据块文件,下载传输到X86服务器,再按原表结构数据批量导入到分布式数据库中。
每当一张表迁移完之后,就给比对系统发信号,系统驱动比对组件,快速比对两套数据库中数据表字段内容,完成数据比对。
这过程中消耗点:
(1)网卡带宽性能受限,AS400下数网卡是千兆卡
(2)AS400磁盘IO存在瓶颈
(3)拆解过程中,部分表还需要补分片键和大字段转换
为满足数据迁移和一次性切换、数据实时比对要求,需进行增量数据迁移与比对:
1、准实时将AS/400的增量数据同步到分布式数据库。
2、速度:12小时内完成AS/400核心系统500G数据库增量日志的同步。
3、一致性:要求数据同步前后的数据完全一致。
4、易用性:支持手动暂停和启动、同步过程中遇到错误支持记录日志、支持断点续传。
增量数据迁移流程是:
400同城镜像机:在AS/400核心系统同城机房部署同城镜像机,将同城备机上的数据变化通过MIMIX同步过来。在镜像机上部署JRN日志采集程序,准实时采集增量JRN日志推送到数据同步机。
数据同步机:接收到AS/400的增量JRN日志后进行格式解析和转码处理,然后进行存储和排序处理后,按数据表并发识别事务窗口后,生成SQL,并按照分布式数据库要求填补分片键,发往分布式数据库。
分布式数据库:数据库代理收到同步机发送的单条SQL语句后,完成数据库写和更新处理。

增量数据比对流程是:
分析JRN日志中变化表的变化记录集合的历史信息,取最后一次变化表主键信息,通过向目标分布式数据库进行数据抽取,同目标库的相关记录进行实时、滚动比对。

整体一次性切换流程图:

核心切换产品工具链:
1、异构复杂表的全量移植
将AS/400核心系统将复杂表进行抽取,码制转换,大字段类型解析,数据内容转换,补数据分片键,最终生成Insert语句和连接下高并发、大批量将数据迁移到分布式数据库内。
2.异构数据库全量数据比对
在AS/400核心系统和X86分布式数据库静止状态下,针对指定的数据表范围和字段范围,快速比对两套数据库中全量数据表字段内容。
3.数据日志同步
将AS/400核心系统中数据库变化情况,增量同步到分布式数据库中,保证两套数据库的数据变化情况完全一致,数据同步过程支持暂停和重启,遇到故障可支持断点续传,全过程需保证两套数据库的事务一致性。
4.异构数据库抽样数据比对
在系统切换之前,AS/400核心系统与X86分布式数据库持续同步数据,通过不停机滚动比较,验证数据同步的一致性,降低系统切换期间的全量数据检核压力,减少切换时间窗口。
方案优势
1、保驾护航:解决下移方案可行性、可靠性、安全性、正确性问题及可靠的技术保证,为切换保驾护航
2、风险降低:大大降低切换风险,达成一次性平滑切换投产的目标
3、窗口缩短:缩短了预期停业切换窗口,降低业务影响
4、用技术方案、技术实现、技术运营方式降本增效
5、降低迁移门槛:对运维人员屏蔽了分布式数据库迁移细节,实现数据“零错误、零丢失”
6、自愈能力:整个异常切换恢复过程无需人工干预,全流程自愈,自动化完成,降低运维难度与管理成本
7、水平扩容:通过用户界面可实现比对应用的扩容。