工商银行异构数据库转型的探索及实践

陈磊 2023-09-24 10:58:00
随着全球进入“数字经济”时代,为各行业带来了前所未有的机遇和挑战,各领域的企业都在紧锣密鼓地推进数字化转型,业界也涌现出走在数字化前沿的企业,工商银行软件开发中心也提出了“数字工行(D-ICBC)”战略规划。

 

为落实工商银行党委深化数字化转型战略部署,持续推进办公体系“智改数转”,稳步推进工商银行办公管理与服务模式的数字化变革,适应工商银行“办公”概念范畴不断拓展的需要,结合工商银行办公系统建设现状及业界调研情况,基础软硬件的转型势在必行。

 

一、工商银行办公系统介绍

 

工商银行办公系统作为全行性办公事务工作平台,面向工商银行40多万用户,承载了信息发布、重要工作的请示及审批,以及跨部门的协作等各类日常办公功能,覆盖基础服务多、交易量大,同时也涉及到行内高层领导等重要用户,系统的稳定运行至关重要。

 

工商银行软件开发中心在办公系统数字化转型过程中,发现原有使用的基础软硬件体系已不能满足日益增长的数字化办公需求,亟需对办公系统相关基础软硬件进行全面转型升级。

 

二、探索及实践

 

 
1.转型中的难点

 

为保证转型过程中系统整体业务的连续性,避免出现全局故障的系统性风险,工商银行软件开发中心确保工商银行办公系统转型的平稳过渡,需采用新老系统并轨运行、新系统逐步承载流量的转型方式,这对新老系统间数据同步提出了较高的要求。

 

由于新老系统采用两种完全不同的异构数据库,且新老系统提供的功能必须完全一致,两个异构数据库间需要进行准实时数据同步,以满足并行期间两个异构数据库集群上用户间的数据交互,且当用户从一个集群切换到另一个集群使用时,能保证业务的连续性。

 

工商银行有部分办公系统已建设多年,在数据处理逻辑方面较多依赖数据库本身,通过数据库的存储过程、函数等实现业务规则中的复杂逻辑计算,而这部分程序可移植性差,一般需经过改造才可以在异构数据库上运行,这些改造在切流后容易给系统带来功能和性能上的风险,从而影响转型工作的推进。

 

 
2.现有解决方案

 

在现有的技术中,各类数据库基本都有各自的数据同步机制,但一般都依赖数据库自身的能力,仅局限于同构数据库之间相互同步,对于异构数据库之间有些只能通过源导出为平面文件,通过一定的外部工具传输文件至目标数据库的所在服务器再加工导入,存在处理时效低、较难处理多表之间关系等问题;另有一些数据库支持通过数据库归档日志进行增量同步,尽管该方式处理效率较高,但只支持单向同步,且对表的约束有强制要求,对于本场景的适用度较低。

 

 
3.工商银行软件开发中心解决方案

 

工商银行软件开发中心在办公系统异构数据库转型过程中,对这部分大量依赖原有数据库特定能力来实现业务逻辑的办公子系统探索了一套完整的转型路线,整体路线分为四个阶段:

 

第一阶段:技术选型

 

根据系统原有数据库交易高峰下的峰值QPS、主要访问方式、高可用及灾备要求确定新数据库的种类、部署模式、副本数量等。在原系统中选取一个有代表性的核心场景作为原型功能,在入选的数据库中进行实现和运行,验证功能和性能是否能满足要求,最终选定一款数据库并确定部署模式和副本数量。

 

第二阶段:新系统建设

 

新系统建设是指使用转型后的应用服务器、数据库服务器搭建一套与原有系统功能及数据完全一致的系统。新系统建设又再细分为如下几个阶段:

 

1)适配改造。存储过程在不同数据库的语法和性能表现上差异较大,需根据新数据库的相关要求或提供的相关转换工具重新改写原有的存储过程。完成改造后需进行全量功能及性能测试。

 

2)数据迁移。新系统需完全复制原有系统的数据,数据迁移一般使用数据库提供的单向复制工具,对于存量数据的迁移需要停机运行,所以需在测试阶段对全量数据的迁移进行模拟,以确保上线时能在较短的停机窗口中完成迁移。若迁移时间不能满足停机窗口需要,则采用“存量提前移行+停机窗口完成增量数据追平”的方式,具体如图1所示。

 

图片

图1 “存量提前移行+停机窗口完成增量数据追平”数据迁移方式

 

一是新热备库搭建。在上线前一周左右(根据待迁移数据量确定),要求与新数据库服务器在相同的网络区域,保证数据传输速度。

 

二是存量数据同步。主备断开后,在备库进行数据抽取,装载至新数据库。

 

三是增量数据同步。停机阶段,从上一次存量复制点开始从源库进行增量的数据复制,直至追平源库中的数据。追平后仍然保留该复制链路,确保两套数据库数据一致。

 

3)模拟验证。完成新系统的程序上线及存量数据迁移后,安排技术和业务人员在新系统上进行验证,由于新系统中的数据程序保持同步,业务人员可根据最新的业务数据进行功能验证,技术人员可检查新系统日志以及数据库性能报表进行技术验证,确认是否存在功能或性能的隐患。验证完成后新系统数据可视验证情况(是否产生了可能影响后续业务的数据)重新进行全量同步,重复第2步的步骤即可完成重新同步。

 

该阶段普通用户流量仍由原系统承载,数据通过数据复制工具同步到新系统,新集群仅做技术和业务验证,如图2所示。

 

图片

图2 新系统模拟验证阶段示意

 

第三阶段:新老并行

 

完成新系统的验证后,可开启新老并行阶段,通过软负载、重定向、域名解析等方式将一部分灰度用户切换到新系统上,根据不同场景可选择按地区、按机构或按特定用户的规则,如图3所示。

 

图片

图3 新老并行阶段示意

 

在新老系统并行期间,需通过双写机制实现新老数据库之间双向同步(如图4所示),实现跨集群数据交互及切换后的业务连续性。工商银行办公系统转型团队根据办公系统的相关特点设计了双写方案,总体设计思路为在原有交易链路中增加推送消息的异步操作,然后通过独立的双写服务消费消息并写入目标数据库,具体方案如下: 

 

图片

图4 通过双写机制实现新老数据库之间双向同步示意

 

1)例如,有如图4中新老系统并行场景,老应用服务器集群①与老数据库服务器②组成的集群代表老集群,新应用服务器集群③与新数据库服务器④组成的集群代表进行转型改造后的新集群。新系统上线后,为减少业务影响,新集群上仅切了少部分流量,两套集群同时对外提供服务,非灰度用户从老集群进入访问,灰度用户从新集群进入访问。

 

2)非灰度用户的请求由老应用服务器集群①进入,执行相关操作后,根据应用程序逻辑操作直接操作老数据库服务器②中的数据,同时老应用服务器集群①中设置的拦截器拦截用户请求后将需操作的数据主键等信息组装后推送至分布式消息队列⑤。

 

3)灰度用户的请求由新应用服务器集群③进入,执行相关操作后,根据应用程序逻辑操作直接操作新数据库服务器④中的数据,同时新应用服务器集群③中设置的拦截器拦截用户请求后将需操作的数据主键等信息组装后推送至分布式消息队列⑤。

 

4)分布式消息队列⑤接收两侧集群的消息,并通知双写应用集群⑥进行消费。双写应用集群⑥也是一套部署了应用程序的服务器集群,从分布式消息队列⑤订阅新老集群推送的消息主题,获取消息后,根据消息的来源,从来源数据库中获取到完整数据,并直接写入到目标数据库中。

 

第四阶段:单轨运行

 

分多批次直至完成全量切流,用户流量全部引流至新系统,实现单轨运行。原系统及双写集群仍然保留一段时间,通过双写集群实现新系统到原系统的数据单向同步(如图5所示),确保两个系统数据的一致性,具备回切能力。根据业务使用情况,平稳运行一段时间后,断开双写,下线原系统及双写集群。

 

图片

图5 通过双写集群实现新系统到原系统的数据单向同步示意

 

三、转型成果

 

经过近一年的探索,通过这一方案工商银行软件开发中心在同业中率先实现了办公系统“从软到硬、从云端到终端”的全栈适配,摸索出了一条充分保证业务连续性和数据完整性的、兼顾高可用和成本可控的转型之路,在转型进度与业务切量方面持续领跑同业。

 

办公系统转型解决方案入选工信部2021年信息技术应用创新典型解决方案案例库,参与人行主导、金标委组织的金融领域标准化工作,由工商银行软件开发中心的团队成员主笔编写了《金融行业办公信息系统标准》,在推进自主可控转型配套的标准建设工作中,为行业标准的制定贡献了“工行智慧”。

 

作者丨中国工商银行软件开发中心上海开发三部 陈磊
来源丨公众号:BanTech智库(ID:BanTech_Research)
dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn
最新评论
访客 2023年08月20日

230721

访客 2023年08月16日

1、导入Mongo Monitor监控工具表结构(mongo_monitor…

访客 2023年08月04日

上面提到: 在问题描述的架构图中我们可以看到,Click…

访客 2023年07月19日

PMM不香吗?

访客 2023年06月20日

如今看都很棒

活动预告