DM同步:DM 的处理单元长时间的状态是Dump

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

  • 【TiDB 版本】:3.0.3
  • 【DM 版本】:1.0.2
  • 【问题描述】: 1:task任务状态为running 但是 unit 的状态为Dump 持续时间已经一个小时了

2:dm-worker 的日志中出现了一个错误是

(relay_log中的relay.meta pos值也有变化)这种情况是怎么回事呢?

一直 dump 是正常的,可以看下 dump 下来的 data 数据目录是否在增长,或者 mysql show processlist 看下是否一直在变化,通过前面的排查一直 dump 正常,报错可以忽略。

1:现在dump的目录不增长,日志打印没有了变化 之前的报错为10001 和10003

再观察下,一直不增长应该是 dump 结束。

1:relay.meta文件中的 binlog-pos = 961422389和10分钟之前一样,刚重新查询了task的状态unit还是为Dump

帮忙确认一下上游 MySQL 端是否 kill 过链接,看日志给出来有 auto_resume sub task,比如有长链接 kill 机制或者出现了 OOM 导致连接断开。日志信息再给多一些,方便排查问题,谢谢,辛苦。

1:上游没有kill过连接 2:这是内存的情况和日志 image

3:日志在启动的时候都是这样的日志 中间有两个错误 10001 和10003 ,我截了开始和现在的两个日志图

建议排查下上游 MySQL 服务,根据 MySQL server has gone away 可能的情况看下:https://blog.csdn.net/swatyb/article/details/83552606

并没有异常

看日志报错是上游的问题,DM 这块是没问题,建议从上游排查。

请问,上游同步到dm执行过的SQL语句在哪里看

DM 生成和执行过的 SQL 分别从下述位置查看:

1、DM 生成的 SQL 查看方式

DM worker 修改 log-level 为 debug 模式后,可以看到 DM 转换后的 SQL 语句,debug 开启方式可参考下述链接:

2、DM 执行过的 SQL 的查看方式

查看 DM 执行过的 SQL 可以通过将 TiDB server 的 general log 开启或者将 slowlog 的阈值设置为 0,均可看到发送至 TiDB server 的语句。设置方法参考如下链接: