免费试用

挑战

从 Oracle 迁移到 TiDB 的主要流程为:Oracle 信息收集、分析与工作量评估数据库对象改造与应用适配,数据迁移与生产切换。数据迁移与生产切换是最需要多团队紧密合作的一个阶段,它直接决定了生产切换的成功与否。

解决方案

本阶段的主要工作内容如下:

一、数据迁移

初步选定全量数据迁移工具和增量数据迁移工具,在上一阶段已经完成的上下游数据库数据模型匹配工作的基础上进行数据迁移性能测试。在评估出全量数据迁移性能和增量数据迁移工具性能状况后,根据业务对于停机时间的要求,确定在停机窗口采用全量迁移还是采用提前迁移全量数据并接入增量数据复制的方案,后者在停机窗口只需等待复制数据追平即可完成数据复制。PingCAP 提供多种可选的 Oracle 到 TiDB 的全量与增量数据复制方案。

二、数据校验

有别于一些同构数据库的基于 redo log 的物理复制技术,异构数据库的数据复制正确性难以保障,因此在数据迁移完成后,需要进行数据校验以确保复制的准确性,及时的对数据不一致进行修复。除简单的总行数校验之外,还应当具备对完整数据内容进行校验的能力。PingCAP 提供的 Oracle 与 TiDB 数据校验工具提供以下功能:

  1. 静态全量数据比对
  2. 运行中的全量数据快照比对(Oracle SCN 匹配 TiDB snapshot)
  3. 不同库名表名的表数据比对
  4. 部分行比对
  5. 部分列比对
  6. 无主键、唯一索引表的数据比对
  7. 支持生成下游库修复 sql

三、系统测试

通过数据迁移和数据校验技术将源数据迁移到目标数据库上,结合上一阶段改造好的适配目标数据库的应用一起,进行充分的系统功能和性能测试,更早的暴露问题并修复。

四、生产流量验证

有条件的情况可以通过诸如企业服务总线或消息队列等流量复制技术,将新应用与 TiDB 数据库对接到生产旁路流量上做验证,以期通过真实的生产流量来验证系统的正确性与稳定性。

五、切换方案和回退方案制定

根据前面所有工作总结的经验与选定的方案,结合业务对于停机时间的要求,制定生产切换方案并制定生产切换手册,模拟演练生产切换,并在切换手册中标记每一步的耗时,依照预估耗时来计算停机窗口。制定回退方案的目的有两个,其一是在停机窗口中,在切换失败的情况下,留有足够的时间窗口将原本的系统拉起提供服务;其二是在停机窗口切换成功后,在后续的一段时间内遇到计划之外的难以短时间修复的数据库故障,能够在短时间内切换回原应用及原 Oracle 数据库,这个预案考验的是从 TiDB 到 Oracle 数据库的增量数据复制能力及数据校验能力,PingCAP 提供多种 TiDB 到 Oracle 的全量与增量数据复制方案。

六、生产切换

在依照生产切换手册进行生产数据库切换时,需要严格按照切换操作手册进行,并记录每一步的实际耗时,以实时的预估切换完成时间。当触及回退窗口时,应当放弃迁移并进行回退操作,避免影响业务的可用性。

体验全新的一栈式实时 HTAP 数据库