使用DM同步表后,由于线上使用pt-osc修改了表结构,添加了四个列,导致DM同步数据到Tidb失败

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:4.0
  • 【问题描述】:使用DM同步表后,由于线上使用pt-osc修改了表结构,添加了四个列,导致DM同步数据到Tidb失败,报错信息: ,发现问题后,在出错的task配置文件里添加了 online-ddl-scheme: pt meta-schema: dm_meta,重启task后还是报一样的错。查看tidb的dm_meta库已经创建了yz_pepper_sync_onlineddl表,但里面没有任何数据。请问我这个问题如何解决?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

这里给您提供两个思路都需要手动操作

  1. 通过上游 binlog 找到 PT 完成操作时的 binlog 位点.并制定 task 从此位点向后同步,因为 syncer 刚启动时候回有几分钟 运行在 safe mode 模式下,可以将冲提数据进行覆盖操作.
    2.如果中断时间比较久了,已经有大量数据同步到下游 tidb safemode 的时间窗口不能覆盖重新同步 binlog 的时长,可以先手动将问题数据补齐 再采用第一种方案进行覆盖同步
    可以尝试使用工具sync-diff-inspector 将问题表的差异数据补齐