工商银行数据库存算分离架构实践
小欧  2025-04-11 16:01  发布于巴西

文| 北京金融信息化研究所(FITI)

 

一、发展现状

工商银行金融产品数量多,服务用户体量大,对应系统数量庞大和体系复杂,服务连续性要求高,且广泛应用与数据库产品耦合度较高的存储过程等高级特性,历史资产重。涉及总行应用接近200个涵盖核心业务、渠道、前置、外联、管理与支撑等多类业务系统,其中高等级应用超过90个。

 

二、面临挑战

传统数据库有其极强的功能黏性、优秀的系统稳定性、良好的软硬适配能力和对金融业务的良好支撑,且金融业存量系统往往与数据库特性高度耦合,大量业务逻辑内嵌到数据库实现,且具有历史比较久远、业务长期稳定、关联应用较多等特点,在数据库转型过程中面临诸多挑战。

  • 服务连续性能力要求高

金融核心应用7*24小时对外服务不中断,传统数据库及国际主流的通用基础应用产品,具备优秀的系统稳定性和可靠性,能支持高性能、大容量业务的长期稳定运行。而自主创新软硬件产品尚处于快速迭代、加速成熟的过程中,在保证金融业务服务连续性方面,对我国数据库的数据可靠性、系统可用性、集群性能及服务连续性能力提出更高要求,需要保证数据库转型过程中的生产安全和迁移后长期稳定可靠运行。

  • 高级特性和存储过程重度使用

传统数据库转型替代难度较大,尚无成熟的原位替代解决方案,金融机构多采取对应用系统进行分布式改造,并对业务实现逻辑进行重构的方式实现转型。工商银行合计使用超过40类传统集中式数据库对象、24类基础数据类型、200个系统内置函数、70个系统高级包和200个系统视图,且广泛适用自定义类型、自定义函数、递归、嵌套、多表关联、自连接等众多高级语法特性,存储过程代码总行数达到亿级规模,数据库对象总数量超千万。数据库转型过程中,面临技术复杂度高、工作量大、项目周期长、实施风险高等挑战。

  • 业务逻辑复杂

金融业存量业务系统具有历史比较久远的特点,经过长期演进,业务逻辑复杂,且与其他业务系统的关联关系复杂,交易调用链路相互交织。业务系统数据库转型往往伴随着存量技术资产、业务资产、关联关系梳理,涉及数据库对象迁移改造、应用代码改造、新旧系统双轨并行并叠加业务系统之间交易链路对接等工作,甚至涉及应用架构和业务逻辑重构等工作,技术复杂度高。涉及海量数据库对象数量、存储过程代码行数、应用程序代码行数和广泛使用高级语法特性,要保证迁移后系统功能对等、性能满足要求,应用迁移改造工作量大。自主创新软硬件产品的性能、稳定性、成熟度等方面与传统商用软硬件产品相比还存在一定的差距,确保转型的平滑、稳定、安全,成为数据库架构转型中的难点,需做好业务双轨并行、灰度分批切流和应急回切等措施来规避。

 

三、转型实践

1、突破数据库关键技术

►构建分布式数据库精简模式部署形态,实现稳定性性能规格突破

工商银行对标主机DB2和Oracle数据库,按照“分布式架构+集中式体验”的理念,基于全栈自主创新软硬件产品,实现分布式数据库的技术突破。

一是软硬件协同,提升性能。通过多核并行、基于代价的分布式并发事务并发优化和全链路并行编译执行等,实现了分布式查询技术优化,良好地兼顾了金融业务系统高并发联机业务场景和复杂计算批量场景的需求,具备百万级QPS能力。

二是采用存算分离架构打破单库容量瓶颈,实现弹性扩容。通过计算存储分离、存储资源池化、在线弹性扩展等,具备PB级海量存储能力,良好地支撑了历史明细类、报表等金融业务专题的海量数据处理需求。

三是构建精简模式支持集中式数据库原位替换。构建精简模式(分布式数据库的集中部署),优化集中式部署性能可靠性,满足业务对部署形态的不同需求,支撑大量存量业务原位替换需求,同时相同产品多部署形态实现开发、运维能力的统一构建。

►提升容灾能力构建多级容灾体系

为确保应用转型能力、服务能力、安全稳定性能力持平,容灾能力有提升,工商银行对标原主机AB站点双活方案,基于存算分离架构与厂商进行大型业务系统Oracle数据库转型的多集群方案技术攻关,首创建成多集群多中心部署的高可用架构,满足金融业务系统服务连续性要求。

一是同城双园区间通过存储级复制实现增量数据强一致同步,异地园区间通过异步方式实现增量日志同步,具备本地RPO=0&RTO<30秒、同城RPO=0&RTO<180秒和异地RPO<1分钟&RTO<10分钟的金融级高可用通力。

二是实现双集群故障和运维隔离、支持灰度发布。基于同城双园区双集群部署架构,实现双集群间跨数据库版本的相互兼容和增量数据的强一致同步,具备业务不中断情况下数据库版本灰度升级通力,在数据库版本升级异常情况下,具备RPO=0&RTO<180秒的回切能力。同城双集群署架构示意如图所示:

目前工商银行综合应用存储级日志复制、数据库流复制等多种技术,形成多地多中心多集群容灾方案体系,满足不同等级金融业务系统的容灾需求。分级容灾方案示意如图所示。

2、构建原位替代模式降低存量迁移难度

针对存量业务累积构建大量业务逻辑内嵌到数据库内分布式改造难、存储过程迁移难等问题,工商银行采用稳态业务原位替换模式有效降低技术复杂度和转型工作量。

►稳态业务原位替换,平滑迁移

对有存量存储过程的业务,优先采用精简模式,以集中式部署形态进行平移替换,对于当前部分国产数据库并发性能无法满足的巨石类业务,优先考虑进行数据库拆分,保留存储过程,从架构层面避免或减轻了迁移改造的诸多挑战。

降低改造难度,减少工作量:避免了大量存储过程、复杂SQL改造,减少应用控制分布式事务等方面的负担,同时由于是架构平替,降低了存量业务工具化迁移难度,进一步减少工作量,使有限的精力可更聚焦于业务。

降低应用迁移风险:降低了历史大量累积的业务逻辑在迁移时出现问题的风险。在业务逻辑保持不变的情况下,可以通过自动化测试工具、流量回放工具减轻测试工作量,更好保障迁移质量。

►敏态业务分布式改造

对业务增长迅速,可通过分片较理想实现并发、容量提升,且无存量存储过程、复杂查询的业务,可进行分布式改造,采用分布式数据库替换。

3、实现平滑迁移

为解决迁移转换工作量大,测试覆盖难等问题,工商银行联合头部科技企业开展Oracle数据库平滑迁移技术攻关,通过多试多用,不断总结经验,研发全流程自动化迁移、自动化测试、自动化仿真验证、灰度切流工具,配套建设完备的技术资产社区和全流程标准化转型工艺,实现了复杂数据库特性和巨量存储过程的自动化迁移能力,人工改造成本压降90%以上,有效解放了生产力,让科技力量更加聚集于金融业务创新和数字化转型领域。

自动化迁移:实现数据库表、索引、存储过程、序列、视图、触发器、自定义类型等数据库对象和高级包函数、自治事务、递归调用、自连接等复杂特性的自动化迁移能力,以及全量和增量数据的自动化同步,自动化迁移成功率达95%以上,人工改造成本压降90%以上,突破了数据库转型的技术瓶颈和实施障碍。自动化测试:研发覆盖单元测试、功能测试、性能测试、生产验证和测试管理过程的自动化测试工具链,降低测试人力投入和测试复杂度,提升测试效率,程序测试覆盖率达100%,分支覆盖率达95%,保障数据库架构转型过程平稳可控。

自动化仿真验证:构建交易录放工具,通过一致性流量回放和性能回放,仿真阶段实现业务功能全覆盖测试和接近实际生产业务压力的性能、可用性及可靠性测试。

灰度切流:建设异构数据库数据复制工具,实现异构数据库间存量数据和增量数据双向复制。在双轨运行阶段,通过业务增量归档数据在异构数据库间的双向复制,实现新旧系统业务数据的准实时一致,确保故障场景下能及时回切,提升对外服务的连续性。数据同步效率可达150GB/小时。

 

四、转型效果

经过大量实践,工商银行形成了一套无需整体重构Oracle存储过程逻辑,低成本、高效可控的原位替换转型技术方案、配套工具和转型方法论,构建全金融业务场景支撑能力,广泛用于包括个人网银、信贷系统、贵金属等130多个业务系统,覆盖办公系统、一般业务系统和关键业务系统各类业务专题。采用精简模式、存算分离等架构设计简化复杂问题,通过数据库与国产众核处理器、企业存储协同构建的高性能、高可用、高安全、弹性伸缩、双集群容灾能力以及自动化数据迁移、同步工具能力数据库产品商业版本中落地,具备快速推广的能力。

文章来源:北京金融信息化研究所(FITI)|《金融数据库存算分离架构选型白皮书》2024年10月期

全部回复(
回复
回复
发布帖子
帖子标题
行业分类
场景分类
帖子来源
发送语言版本
可切换语言,在您的个人中心检查译文是否正确
发布文章
文章标题
文章分类
发送语言版本
可切换语言,在您的个人中心检查译文是否正确