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