dm同步mysql到tidb,mysql挂掉后同步报错:Client requested master to start replication from position \u003e file size

【TiDB 使用环境】生产环境
mysql是实体机部署,异常down机后,一个小时后恢复,dm报错

查看mysqlbinlog 文件是存在的,没有开启GTID, 如何修复?

这里报错是因为请求的binlog文件超出范围了 ,你用 mysqlbinlog 工具查看 binlog 文件的内容,确保请求的位置在文件范围内。可能是这个文件缺失了。

设置的每个binlog大小是1G, 所以这个512肯定是损坏了。该怎么修复dm同步呢

如果可以承受数据不一致的 话,直接跳到下个binlog文件开始同步,不行的话只能重新初始化了

咋跳啊,能帮忙指导下吗

新建一个同步任务,指定新的binlog-name和binlog-pos,从新的位置开始同步

o ,现在就是这么处理的。 我还以为是别的方法,在原有的任务进行修改。
比如怎么修改dm_meta库的数据,来指定binlog 和position

可以不用新建任务重新开始
1、 停止异常的任务 stop-task 任务名
2、找到最接近异常binlog 的position, 这里就是mysql-bin.018513,position 4。
3、在下游tidb修改dm_meta.任务名_syncer_checkpoint,
在schema和table为空的行,修改binlog_name和binlog_pos为你希望的起始点。
同时删除 exit_safe_binlog_name和exit_safe_binlog_pos 记录
image
4、启动任务,start-task

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。