在异构数据库迁移实施过程中,如何实现应用从 Oracle 等商业数据库透明平滑地迁移到 AntDB 中?其中最重要的一个环节就是实现对现有运行的生产数据库进行全面的数据采集、评估、分析、迁移和结果的校验。让一个烦琐的数据库替换过程可以全部自动完成。特别是对于金融、运营商等有了几十年积累的业务系统来说,表数量非常庞大,表之间的数据模型很少有人可以完整地描述清楚,一些历史比较久的业务系统有 3.6 万张表需要迁移,并且使用了大量的、各种各样的数据库对象,比如触发器、存储过程、DBLink、分区、视图, 等等。试想如果 3.6 万张表需要人工去迁移,要完成 Oracle 的字段类型到新数据库字段类型的转换过程,这是一件任务量巨大且枯燥的工作,并且非常容易遗漏和出错。另外业务系统模块众多,并且由于人员的流动,使业务功能不断叠加,散落在系统中的 SQL 语句到底有多少,都散落在哪里,恐怕也没有人可以非常清楚地描述和统计出来。AntDB 提供的一键自动化工具就是为了适配这样的迁移复杂度才设计出来的。能让机器工具可重复地工作,绝不使用人工的方式进行,大幅地降低系统迁移的人力、时间成本以及实施风险。
整个兼容评估过程包括四个大的环节,下面分别进行介绍。
1.环境评估
对需要迁移的系统,若没有工具自动采集数据进行评估,靠人工的方式 一定会不可避免地出现遗漏或考虑不到的地方。通过 AntDB 数据采集并汇总Oracle 数据库信息,包含环境信息、对象信息、SQL 信息、空间信息、性能信息、事务信息六大部分,全面覆盖数据库实际运行状况。该工具对应用代码无注入行干扰,可以作为一个旁路设备对 Oracle 的实际运行情况进行采集,对采集的数据会统一记录在文件中。
2.兼容分析
在去 IOE 项目前期,被提及最多的一定是兼容度。现有的应用与业务, 能否在新的平台架构下成功运行?运行的效率是否能够得到保障?为了这次迁移,是否需要现有应用的配合修改?
为了提供整体数据库层面的兼容度分析,AntDB 实现了自动化迁移评估分析工具 AntDB Migration Compatibility Analyzer(AMCA),这是 AntDB 生态体系中的前驱重要功能。通过自动化的数据采集,并在 AntDB 的真实环境中进行模拟重演,得出准确的兼容度分析报告。其中绝大部分工作都由脚本或程序自动完成,不仅极大地提高了分析工作的效率,还减少了分析过程中出现错误或遗漏的概率。
通过 AntDB 提供的专业采集工具,连接到源 Oracle 数据库中,采集一定的数据库对象结构与 SQL 数据,并将其打包成一个完整的数据包。后期将数据包上传到 AntDB 后台,即可自动进行兼容度分析,并产生对应的分析报告。
兼容分析工作流程可迭代反复运行,每次通过产生的分析报告,得到不兼容的列表,通过应用或调整相关数据库后,可重复此流程,得到新一轮更优兼容度的报告,最终达到事实上的完全兼容。
兼容分析的数据采集工作主要涉及以下两个方面:
●对象信息:包括各类 Oracle 对象的结构与创建信息。
●SQL信息:包括一段时间内能够抓取到的业务 SQL 的集合。
报告整体分为三大部分:
●汇总与基础信息:对整体兼容度做一个汇总,同时给出 Oracle 数据库的相关信息。
●Oracle 性能趋势:描述一段时间内 Oracle 数据库的性能变化趋势。
详细的不支持列表:详细列出不支持的对象与 SQL,并给出具体原因。
从汇总信息中,可以直观地看出当前系统整体的迁移兼容度,以及各个对象的兼容情况。同时,在后续表格中,也对这些对象及 SQL 的兼容情况做了详细汇总(图 3-16)。对于 SQL,从应用用户、程序、模块等角度进行了汇总, 方便进一步确定各个应用模块的兼容情况。
从 Oracle 性能趋势中(图 3-17),可以看出当前需要迁移的 Oracle 数据库的一些关键性能指标,便于与 AntDB 系统的指标进行相关对比分析。据此参考,结合目前 AntDB 在一些系统配置下的运行性能,可以得出目标 AntDB 数据库的推荐系统配置。
目前支持 Oracle 性能趋势的指标包括如下几种:
●DB Time:Oracle 性能总体概览,单位时间内数据库消耗的时间。
●Host CPU:主机 CPU 使用率。
●TPS:每秒的事务数。
●QPS:每秒的语句调用数量。
●Logon:每秒的登录用户次数。
●Physical Read:每秒的物理读。
●Physical Write:每秒的物理写。
●Logical Read:每秒的逻辑读。
●Redo:每秒产生的 Redo 大小。
3.数据迁移
在兼容评估分析的基础上,完成兼容性适配后,可以实现对全量数据的自动化迁移。AntDB 的迁移工具可以自动地完成对用户、权限、角色、分区、触发器、存储过程、Schema 和表数据信息的全量迁移转换,迁移过程中支持过程跟踪和断点续传,支持在线和离线两种模式,在离线模式下数据可自动按文件设置大小切片,对切片的文件可以采用并行导入的方式,提升数据迁移的效率,如图 3-19 所示。
AntDB 的迁移工具可以做到百分百同步,确保数据和Oracle 中无一点偏差。