DM同步问题

如果确认是已经删除了某一个 dm-worker 的话可以按以下步骤尝试恢复:

  1. 确认对应问题的 dm-worker 的所有 task 已经执行到的 pos 。查询下游 TiDB : select binlog_name,binlog_pos from dm_meta.{task_name}_syncer_checkpoint where is_global = 1,选出最早的 relay_binlog_name 。
  2. 修改 {dm-ansible_path}/inventory.ini 文件。在问题对应的 dm-worker 的那一行修改 relay_binlog_name ,起始的位置为上一步查询出来的最早的 relay_binlog_name 。详细可以参考:https://pingcap.com/docs-cn/stable/how-to/deploy/data-migration-with-ansible/#配置-relay-log-同步位置 (注意:需要确认上游 MySQL 的 binlog 的有效性,没有已经过期被清理的。)
  3. 重新部署问题的 dm-worker , ansible-playbook deploy.yml --tags=dm-worker -l {dm_woker}
  4. 重新启动运行 ansible-playbook start.yml --tags=dm-worker -l {dm_woker}
  5. 确认 dm-worker 服务能够正常启动,可以尝试重新启动 task