Data Migration 故障诊断

    如果你在运行 DM 工具时出现了错误,请尝试以下解决方案:

    1. 执行 query-status 命令查看任务运行状态以及相关错误输出。

    2. 如果该错误还没有相应的解决方案,并且你无法通过查询日志或监控指标自行解决此问题,你可以联系相关销售人员进行支持。

    3. 一般情况下,错误处理完成后,只需使用 dmctl 重启任务即可。

    但在某些情况下,你还需要重置数据同步任务。有关何时需要重置以及如何重置,详见重置数据同步任务

    此外,在 DM 运行过程中,上下游数据库的用户必须具备相应的读写权限。在启动同步任务过程中,DM 会自动进行相应权限的前置检查,详见。

    处理不兼容的 DDL 语句

    你需要使用 dmctl 手动处理 TiDB 不兼容的 DDL 语句(包括手动跳过该 DDL 语句或使用用户指定的 DDL 语句替换原 DDL 语句,详见)。

    重置数据同步任务

    在以下情况中,你需要重置整个数据同步任务:

    • 上游数据库中人为执行了 RESET MASTER,造成 relay log 同步出错

    此时,relay 处理单元通常会发生错误而退出,且无法优雅地自动恢复,因此需要通过手动方式恢复数据同步:

    1. 使用 stop-task 命令停止当前正在运行的所有同步任务。

    2. 手动清理掉与 binlog event 被重置的 MySQL master 相对应的 DM-worker 的 relay log 目录。

      • 如果是使用 Ansible 部署,relay log 目录即 <deploy_dir>/relay_log 目录。
      • 如果是使用二进制文件手动部署,relay log 目录即 relay-dir 参数设置的目录。
    3. 清理掉下游已同步的数据。

    4. 使用 Ansible 。