Data Migration 故障诊断
如果你在运行 DM 工具时出现了错误,请尝试以下解决方案:
执行
query-status
命令查看任务运行状态以及相关错误输出。如果该错误还没有相应的解决方案,并且你无法通过查询日志或监控指标自行解决此问题,你可以联系相关销售人员进行支持。
一般情况下,错误处理完成后,只需使用 dmctl 重启任务即可。
但在某些情况下,你还需要重置数据同步任务。有关何时需要重置以及如何重置,详见重置数据同步任务。
此外,在 DM 运行过程中,上下游数据库的用户必须具备相应的读写权限。在启动同步任务过程中,DM 会自动进行相应权限的前置检查,详见。
处理不兼容的 DDL 语句
你需要使用 dmctl 手动处理 TiDB 不兼容的 DDL 语句(包括手动跳过该 DDL 语句或使用用户指定的 DDL 语句替换原 DDL 语句,详见)。
重置数据同步任务
在以下情况中,你需要重置整个数据同步任务:
上游数据库中人为执行了
RESET MASTER
,造成 relay log 同步出错
此时,relay 处理单元通常会发生错误而退出,且无法优雅地自动恢复,因此需要通过手动方式恢复数据同步:
使用
stop-task
命令停止当前正在运行的所有同步任务。手动清理掉与 binlog event 被重置的 MySQL master 相对应的 DM-worker 的 relay log 目录。
- 如果是使用 Ansible 部署,relay log 目录即
<deploy_dir>/relay_log
目录。 - 如果是使用二进制文件手动部署,relay log 目录即 relay-dir 参数设置的目录。
- 如果是使用 Ansible 部署,relay log 目录即
清理掉下游已同步的数据。
使用 Ansible 。