dm-worker出现mysql到tidb不同步问题

【 TiDB 使用环境】生产\测试环境\ POC
【 TiDB 版本】5.4.0
【遇到的问题】mysql通过dm-worker同步到tidb出现数据不同步问题
dm-worker任务显示正常


task 配置文件

源端mysql

目标端tidb

tidb dm_meta

是其他大部分表都在正常同步,只有这个表binlog位置卡在这里不动了。dm任务也没任何报错提醒吧

能不能重启一下这个同步任务看看

重启过,无效

重启没有效果,但是同步位点有变化,数据还是没有同步

那张表只能单独处理了。

我们按库分任务,没有把表单独拿出来,而是整个库初始化

  1. 同步的表名称是什么?是否在 ignore 中?
  2. 是从 mysql 同步的吗?解析下 mysql 中 binlog 看下卡住的要同步的信息是什么
  3. dm 日志中是否有报错,卡住打印的什么信息。

1、同步的表确定不在ignore中。
2、对,从mysql同步,卡住,但是dm-task里同步位点有变化。
3、dm日志我们看了,没有什么错误信息

可以帮忙拿下 worker 日志以及 worker goroutines 信息我们分析下吗?
goroutines 可以通过以下命令获取
curl http://<worker-ip>:<worker-port>/debug/pprof/goroutine\?debug\=2 > goroutines.txt

1 个赞

worker被删了,我先提供goroutines吧,谢谢goroutines.txt (150.7 KB)

看了这个 goroutines 也没有什么阻塞的情况。dm 处理 table 是一并读取处理的,不太可能出现一张表阻塞其他表还能正常同步的情况(这种情况其他表也会阻塞),怀疑不一致这条 binlog 被 purge 或者下游更改过,或者之前有改 checkpoint 重启漏掉 binlog 的行为。
可以看看最后一张图的不一致表的 table checkpoint 是否包含了问题 binlog,以及丢失这条 binlog 在上游 MySQL 中的位置。方便的话可以再看看 dm-worker 的完整日志

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。