DM同步任务,判断主从落后进度的方法

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】

MySQL: 5.7.22-log MySQL Community Server (GPL)
TiDB: v4.0.11
DM:   v2.0.2

【问题描述】

如题,判断主从同步落后进度,有什么好的方式吗?最好能知道落后多少,或说大概多久能同步一致。

已知方法:

  1. 查看 dm task 状态的 “synced” 值。

存在的问题:这个字段返回的值是布尔型,无法判断落后多少,也就是无法量化。而且,这个值很难变为 true,我做过测试,即使主从数据一致,也不会立即变为 true,看日志猜测是内部 checkpoint 机制。

  1. 查看 dm task 监控图

下面两个落后,就是 binlog 文件级别,一个文件包含的 event 太多了,这个太模糊了点。上面的 “remaining time to sync” 这个值是怎么计算出的呢?

还请各位不吝赐教,谢谢:smiley:

mark一下,我也想知道怎么实现

  1. 目前展示进度会落后,有两个原因:
    1. 黑名单表的 binlog event 会参与到推进进度中,显示进度会最大落后30s
    2. checkpoint 30s 一刷新,刷新后才会更新展示
  2. 预计 2.0.4 或者 2.0.5 解决,会让 binlog 位置展示更及时,以及加上落后秒数

好的,谢谢。
监控中的“remaining time to sync”计算逻辑大致是什么呢?

目前,我是通过 syncer 的 GTID 与 master 的 GTID 差值大致估算,不知道现阶段是否有更好的方式。

定期(也是 30s)查看上游还有多少字节 binlog 没同步,除以上个 30s 的平均速度

好的,了解了,谢谢。

:handshake:

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