DM同步的监控

DM做了一个数据同步的任务,怎么查看DM数据同步的延迟时间呢?

你好,可以通过开启 heartbeat 功能来实现同步延迟的监控,具体请参考官方文档 “迁移延迟监控” 部分:
https://docs.pingcap.com/zh/tidb-data-migration/stable/feature-overview#迁移延迟监控

这个可以在Grafana 中查看吗?

如果是使用 dm-ansible 部署 DM ,默认会部署一套监控,可以查看相关的延迟监控数据, 具体请参考官方文档:
https://docs.pingcap.com/zh/tidb-data-migration/stable/monitor-a-dm-cluster#binlog-replication

1、需要上游 MySQL/MariaDB 实例提供下面的权限,这个说的是复制的用户需要的权限吗?
2、 ```
enable-heartbeat


我的DM任务配置文件没有配置enable-heartbeat参数,我在grafana里面看到的如下:
![image|655x500](upload://4ZSpBY7fextwu8IOZz4AxXVRwcU.jpeg)

开启 heartbeat 主要做的事情是如下,会在上游数据库中创建库表,所以需要对上游用户提供对应的权限。

  • DM-worker 在对应的上游 MySQL/MariaDB 创建库 dm_heartbeat (当前不可配置)
  • DM-worker 在对应的上游 MySQL/MariaDB 创建表 heartbeat (当前不可配置)
  • DM-worker 每秒钟(当前不可配置)在对应的上游 MySQL/MariaDB 的 dm_heartbeat . heartbeat 表中,利用 replace statement 更新当前时间戳 TS_master
  • DM-worker 每个任务拿到 dm_heartbeat . heartbeat 的 binlog 后,更新自己的迁移时间 TS_slave_task
  • DM-worker 每 10 秒在对应的上游 MySQL/MariaDB 的 dm_heartbeat . heartbeat 查询当前的 TS_master ,并且对每个任务计算 task_lag = TS_master - TS_slave_task

你这边提供的图片看不到,需要配置 enable-heartbeat 参数后,才能看到详细的延迟时间,如果未配置,该监控项应该是显示 N/A