Advanced Database & Application Migration(简称ADAM)包含完整的迁移系统,分别在项目前期、应用迁移阶段和割接上线阶断提供相应的平台来帮助客户完成端到端的迁移过程。

  1. 选择什么类型的云数据库?
  2. 需要多少台云数据库、什么规格配置?
  3. 原数据库哪些表需要迁移到哪个云数据库实例上,需要做哪些修改?

ADAM评估平台包括两个部分:数据采集器和智能分析工具。

  • 数据采集器

    数据库采集器负责收集并汇总Oracle数据库信息,包含环境、对象、SQL、空间、性能和事务六方面信息,全面覆盖数据库实际运行状况。同时,针对数据冗余、信息安全问题,对采集结果中SQL数据进行脱敏、去重、一致性校验等处理,保证采集结果的准确性。

    应用采集器负责分析并收集应用框架与运行时信息,包含应用机器性能信息、应用代码中SQL信息、运行时SQL调用堆栈、应用与数据库间调用关系、应用与应用间调用关系五方面信息,全面覆盖应用实际运行状况。同时,也对结果数据进行脱敏、去重、一致校验处理。

  • 智能分析平台

    智能分析平台的目标是根据从Oracle采集到的源库数据、从应用采集到的运行时数据,给出最适合的目标库方案。智能分析平台包括数据库评估、数据库改造迁移、应用评估改造三在部分。

    • 数据库评估

      • 源库画像分析 : 源库画像通过对数据库采集器采集到的源库数据进行分析,给出多个维度的评估分析,包括对源库性能、容量、Oracle特性、外部连接(DB Link)和对象全景查询。其中对象全景分析对Oracle对象提供关联关系、特征标识等信息。
      • 目标库选型建议 : 计算出每一个表组对应的云数据库规格,提供 CPU 核数,内存大小,磁盘大小等指标,满足用户的性能需求。根据评估分析结果给出目标方案的云资源成本,方便客户进行迁移到目标库的成本分析。
      • 目标库兼容评估服务 : 针对不同的目标数据库及版本,ADAM提供对Oracle数据库对象和目标数据库之间的兼容性分析和改造的建议。兼容性级别分为完全兼容、不兼容两种。其中修改后兼容的方案由ADAM智能分析引擎自动化提供并写入迁移计划。
    • 数据库改造迁移

      • 生成迁移计划 : 根据评估分析的结果生成从Oracle库到目标数据库的迁移计划,使用迁移工具可以利用迁移计划将源库的Schema快速迁移到目标数据库,其中迁移计划包含的ADAM智能转换结果将保证最大兼容度。
      • 迁移计划校验 : 校验迁移计划与源库中结构的一致性,并针对不一致的数据提示合并,这样保证了目标库与源库的数据结构最大一致性。
      • 结构迁移/订正 : 根据迁移计划中的转换建议,生成目标库的DDL,连接到目标库进行数据库结构创建,并为转换流程提供实时更正功能,保证结构迁移中最大成功率。
      • 数据迁移服务 : 自动连接DTS数据迁移服务。
    • 应用评估改造

      • 应用画像 : 应用画像通过对采集到的应用数据或应用的WAR包进行分析,提供多维度的评估分析,包括对应用的软件栈、系统信息、对象详情、SQL和调用栈等的评估分析。应用画像包括静态分析和动态分析,其中动态分析依赖对应用数据的采集,而静态分析可以直接对Java应用的WAR包进行分析,定位应用对数据库对象的访问点。
      • 应用评估 : 应用评估主要针对数据库与应用迁移的改造过程,帮助用户快速梳理数据库异构迁移过程中的应用修改内容。

    智能分析工具通过自动化和手动相结合的方式,提供迁移建议方案,方便客户对迁移工作量和成本进行预估。

在项目开始迁移后,迁移平台将负责解决如下问题:

在真正的迁移工作开始后,受限于迁移人员对待迁移系统的了解程度和迁移工作的经验,迁移工作中的各个环节都会碰到各种困难,包括:

  1. 如何将源库结构和数据同步到目标端?
  2. 待迁移系统中哪些地方需要修改,如何修改?
  3. 修改后是否达到了迁移的要求,如何评估修改是否准确无误?

迁移平台的开发是为了最大程度上地帮助迁移人员顺利的迁移系统,迁移工具可以从待迁移系统到迁移后的目标系统提供端到端的迁移指引。迁移工具主要包含三个核心的子模块:

  • 兼容性分析模块:对 Oracle 对象在目标库上进行综合评估并给出专家建议。
  • 模式转换模块:完成 Oracle 对象在目标库上的转换。
  • 应用迁移模块:协助迁移人员完成整个应用的迁移过程。

兼容性分析模块

兼容性分析模块基于阿里巴巴内部多年去O沉淀的宝贵经验,对指定的Oracle对象集合在迁移的多种目标库上给出对应的修改建议。

兼容性分析模块包括对Oracle特性的匹配和Oracle使用场景的匹配。

  • 特性匹配主要指识别出对象使用了哪些Oracle特性,并给出在目标库上对应的解决方案。

  • 场景匹配是针对一些特定的使用场景,通常是可能影响到性能的一些使用方式,评估这些使用方式在目标库上是否能够很好地支持,如果需要调整的话给出调整的解决方案。

兼容性分析模块作为支持评估工具和迁移工具的核心模块,其本身也可以单独运行直接处理迁移人员查询请求,给出评估结果。

模式转换模块

模式转换模块提供表以及其它对象从Oracle到目标库的自动转换能力。通过使用模式转换模块,客户可以将所支持的转换对象直接转换为目标库上对应的对象或转换成Java代码。目前模式转换模块支持将表结构在目标库上自动创建,未来可以支持更多其它对象自动转换为目标库上适当形式的对象。

应用迁移模块

应用迁移模块的核心是为系统迁移人员提供一个辅助迁移环境,加快迁移过程。在迁移过程中, 1. 实时收集待迁移应用的数据库请求,将代码调用栈返回给用户,帮助用户定位代码中需要改动的位置。 2. 实时收集待迁移应用的数据库访问SQL,通过兼容性分析并将分析结果实时反馈给用户,指导用户按照正确的方式进行代码的迁移工作。 3. 实时收集待迁移应用的数据库访问返回数据和性能数据,与原应用进行比对,保证迁移工作在功能和性能上可以和原应用一致。 4. 可以同时连接多个目标数据源,当迁移目标数据库为多个时,有动态 SQL 路由能力,可以根据访问的对象将请求路由到正确的目标数据源中,迁移过程中应用不需要显式的连接多个数据源,降低迁移工作复杂性。

类似于调试器,实时提供修改建议,让开发人员实时修改并实时验证。让开发人员在开发测试环境中可以方便的进行迁移和验证工作,在业务系统所有测试案例通过 AMS 测试后,即可宣告迁移工作完成,为迁移工作给出了标准。