新闻动态

首页 - 新闻动态 - 会员动态

数据库国产化最佳实践

2021-07-08 发布

Oracle数据库迁移,主要是指对Oracle数据库及其应用系统的迁移,是存量应用系统去O(Oracle)必须要做的改造。在业界,去IOE 喊了很多年,去I和E容易,去O难。在过去近40年的发展中,Oracle数据库在市场份额中逐渐占据了第一的位置,用户对Oracle数据库存在较大的依赖,很多存量核心业务系统跑在Oracle数据库上。要对存量系统进行国产化替代,就要做Oracle数据库的迁移,迁移意味着要承担一定风险。
迁移风险主要来自哪里呢?
 

首先,在数据库层面,对Oracle数据库的迁移,需要将原Oracle数据库中的各种对象包括表、索引、约束、视图、触发器、存储过程、包(package)、同义词、用户与权限,以及自定义对象例如自定义函数、自定义类型和数据等价迁移到国产数据库中。关系型数据库通常遵循一定的SQL标准。数据库中表、约束、视图大多遵循SQL标准,是数据库相对规范的部分,技术难度相对较小。但对于触发器、自定义类型、包以及包体,Oracle数据库在长期的发展中,对数据库做了大量的扩展。这些扩展并非严格遵循SQL标准,因此需要做大量的对应转化,这就依赖于厂商迁移工具的成熟度。


其次,相对数据库层面的迁移,应用的迁移有更大的复杂性。SQL语句通常嵌入在大量的应用代码中,或拼接,或通过接口调用。不兼容SQL难以做到使用工具进行自动化改写,大多需要通过人工调整。人工改写依赖于对业务、应用代码以及新数据库的熟悉程度,有较高的技术要求,工作量和风险都不可控。很多客户业务系统还存在这方面问题:系统在建设之初,由于数据量小,缺乏统一规范的意识。后来随着业务增长,系统需求不断变更,经过几年甚至十年的变更,系统已相当复杂,加剧了迁移风险。对应用系统的迁移,一般需要由原开发商主导。但由于历史原因,可能已无法找到原开发商,也会给应用迁移带来困难。对原业务系统的不熟悉,给应用迁移造成了巨大障碍。


海量数据在10多年的Oracle数据库服务中,深刻理解Oracle数据库特性,深知Oracle迁移的痛点,将专家经验逐步沉淀形成知识库,将知识库转化为生产工具,研发出了智能迁移工具exBase,为数据库层面的迁移提供了解决方案。与此同时,针对Oracle存量应用系统迁移的痛点,海量数据基于华为OpenGauss开发了海量数据库Vastbase,将Oracle数据库兼容性做到数据库内核之中。目前,Vastbase对Oracle数据库具备高度兼容性,这意味着原Oracle应用系统只需要做少量修改或者不修改,即可将Oracle应用迁移到Vastbase应用上,为Oracle应用迁移提供了解决方案。exBase智能迁移工具以及Vastbase对Oracle数据库的高度兼容,为Oracle数据库迁移,实现Oracle数据库的国产化替代提供了最佳选择。

 
图 1数据库国产化整体解决方案

在Oracle数据库迁移层面,exBase智能迁移工具在实践中积累了大量的规则库。通过规则库定制模板,可实现对Oracle数据库的对象评估、数据迁移、数据校验、增量同步以及反向同步等功能。针对对象评估,exBase可从兼容、可转换、不兼容三方面作出评估。对不兼容部分提供工作量评估,为风险评估提供参考;数据库迁移是exBase智能迁移工具的核心,exBase不仅可以迁移Oracle数据库表、索引、约束、视图、触发器,还能对存储过程、包、同义词、用户与权限以及自定义对象,包括自定义函数、自定义类型的迁移,实现自动化改写。借助exBase智能迁移工具,数据库层面的迁移工作量可控、风险可控。exBase对数据的迁移,使用多线程并行技术,可极大提高数据的迁移效率。迁移后的数据与原Oracle中数据完全一致,数据长度不变化,精度不丢失,数据无损失。迁移结果可通过数据校验功能进行比对,并提供比对报告。exBase智能迁移工具提供的增量迁移功能,适用于Oracle数据库停机时间窗口小、数据量大的场景。利用工具可将数据库做一次整体的搬迁,再通过增量追加数据的方式来追平数据。exBase智能迁移工具还提供反向同步功能,可适用于新老系统并行运行的场景,特别是对核心应用系统的迁移,需要将原应用系统作为备份并行运行。


exBase智能迁移工具还能对应用迁移提供评估功能。exBase对应用SQL的评估是通过对应用SQL的采集来进行的。exBase可针对不兼容的部分给出高亮关键字提示。评估完成后,提供对应用的评估报告,辅助对应用的改造。
对应用系统迁移,减小风险、实现平滑移植,依靠工具不能完全解决问题。根本的解决办法是在内核层面做到对Oracle的兼容性。只有兼容Oracle数据库相关语法和使用习惯,才能做到对原应用不改造或者少改造。海量数据提供的解决办法正是在内核层面对Oracle数据库做极致兼容性。


数据库和应用迁移完成后,除了功能验证测试,还要对迁移后的性能进行测试。对迁移后性能下降的部分,或通过调整索引类型、或改写SQL语句,或调整相关数据库参数来进行性能调优,以满足当前业务和未来业务增长的需求。
在海量数据Oracle数据库迁移、国产化替代中,将中华联合人寿保险股份有限公司(简称“中华人寿”)的团险核心业务系统迁移到Vastbase最为典型。


中华人寿团险核心业务系统,业务涉及投保、核保、签单、交费、批改、给付、退保、复核、报案、赔付申请、核赔、赔付、客户服务等,功能复杂,对数据的安全性和可靠性要求极高。


据统计,中华人寿团险核心业务Oracle数据库对象总数5756个,在海量数据Oracle迁移案例中,总对象数不是最多的。但这次迁移的主要特点是业务系统通过自定义函数处理团险业务逻辑,包括保全批量加人、保全批量减人、批量更换被保险人等,数量达到806个,另外还有28个存储过程和包。部分自定义函数、过程逻辑复杂,代码量高达到5000千行左右。在数据库迁移层面,对自定义函数、自定义类型、存储过程以及包的迁移一直都是迁移的难点。通过exBase智能迁移工具,自定义函数自动化改写成功数为773个,自动迁移不成功的自定义函数中,有23个因源库失效而迁移失败。exBase对总对象的迁移成功率高达99.4%,迁移的每一步都可以在后台清晰可见,给客户带来直观可控的体验。exBase工具自动处理出错的自定义函数、存储过程和包(package),exBase给出了具体的报错信息与报错位置,辅助以人工,在工具界面即可进行修改、调试。通常情况下,只需要对报错信息处的代码稍做修改,即可成功执行,不需要人工对整个自定义函数进行修改,迁移效率极高。


exBase智能迁移工具提供数据校验功能。中华人寿团险核心业务系统迁移完成后,经过连接源库校验比对,数据迁移成功率为100%,数据完整无损迁移到了Vastbase数据库中。
 

图 2中华人寿团险核心业务系统迁移报告

应用迁移层面,Vastbase的强兼容性是这次迁移平滑完成的关键之一。从特有SQL语法、数据字典/性能视图、数据类型、操作符、对象、内置函数、PL/SQL、应用接口甚至开发习惯等都提供了全方位的兼容支持。这带来的价值显而易见,大幅减少甚至避免了代码重写的工作,从而实现项目人力成本、时间成本和风险成本的有效控制。站在中华人寿维护人员的角度,也降低了学习成本,提升了效率。


迁移完成之后,通过性能调优,Vastbase数据库新体系相比旧体系也实现了性能的提升,处理速度平均提升3倍左右。例如,在5000人数据量的契约批量导入场景中,原系统用时5分钟,而新系统仅用时1分57秒。在5000人的理赔批量导入场景中,原系统用时28分钟,而新系统仅用时10分钟等等。经评估,迁移后的系统完全可满足在流量增大时,实现复杂保单业务大批量数据在线验证和导入、查询性能等要求。


中华人寿团险核心系统的数据库迁移,为Oracle数据库迁移提供了最佳实践,也证明Oracle数据库迁移已经突破金融核心业务场景,为Oracle数据库的国产化替代指明了方向,同时也坚定了用户做国产化替代的信心。