DM数据延迟很大,一直跟主数据库相差四个小时,四个小时差不多就是刚开始进行同步的时间

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

  • 【TiDB 版本】:v4.0.2
  • 【问题描述】:DM数据延迟很大,一直跟主数据库相差四个小时,四个小时差不多就是刚开始进行同步的时间,请问如何进行debug?

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

任务状态

{
    "result": true,
    "msg": "",
    "workers": [
        {
            "result": true,
            "worker": "127.0.0.1:8262",
            "msg": "",
            "subTaskStatus": [
                {
                    "name": "imagic",
                    "stage": "Running",
                    "unit": "Sync",
                    "result": null,
                    "unresolvedDDLLockID": "",
                    "sync": {
                        "totalEvents": "2117411",
                        "totalTps": "1499",
                        "recentTps": "310",
                        "masterBinlog": "(mysql-bin.000362, 141009888)",
                        "masterBinlogGtid": "e2c464e8-b623-11ea-a0cb-7cd30abc94c6:1-249740973,c51b1403-5f1b-11e8-9066-7cd30ac4e7e8:1-1430197860,c9c086e9-65d0-11e8-ae8c-7cd30aeb75e4:1-2017737148",
                        "syncerBinlog": "(mysql-bin|000001.000353, 81723351)",
                        "syncerBinlogGtid": "",
                        "blockingDDLs": [
                        ],
                        "unresolvedGroups": [
                        ],
                        "synced": false
                    }
                }
            ],
            "relayStatus": {
                "masterBinlog": "(mysql-bin.000362, 141010735)",
                "masterBinlogGtid": "c51b1403-5f1b-11e8-9066-7cd30ac4e7e8:1-1430197860,c9c086e9-65d0-11e8-ae8c-7cd30aeb75e4:1-2017737148,e2c464e8-b623-11ea-a0cb-7cd30abc94c6:1-249740973",
                "relaySubDir": "e2c464e8-b623-11ea-a0cb-7cd30abc94c6.000001",
                "relayBinlog": "(mysql-bin.000362, 141009888)",
                "relayBinlogGtid": "",
                "relayCatchUpMaster": false,
                "stage": "Running",
                "result": null
            },
            "sourceID": "imagic"
        }
    ]
}

早上起来发现延迟更大了,6个小时了

从上面的 TiDB 监控看,延迟 Duration 并不高,可先尝试调大 worker-count 并发,并确认下

  1. 同步的表是否有唯一键或者主键索引,没有主键或者唯一索引,导致 DM 无法并发同步。参考案例:DM 同步延迟问题

  2. 使用 PT 工具更改表结构,但是 task 文件中没有配置 pt 参数。参考案例:上游mysql ddl,dm同步延迟近7个小时

  3. 检查 dm-worker 的相关监控,参考 监控项说明文档,关注

  • 读取 binlog 数据(read binlog event duration)
  • binlog event 转换(transform binlog event duration)
  • 写入 SQL 到下游(DML queue remain length、transaction execution latency)
  1. 如果无法确认问题,麻烦上传完整的 DM-task 监控截图
  • chrome 安装 full-page-screen-capture 插件

  • 鼠标焦点置于 Dashboard 上,按 ?可显示所有快捷键,先按 d 再按 E 可将所有 Rows 的 Panels 打开,需等待一段时间待页面加载完成

  • 使用进行截屏保存

感谢回应,我是二进制安装的,请问怎么再加上监控呢?

  1. 所有表都有主键
  2. 这期间没有做过ddl操作
    3、4. 请问怎么手动添加监控,非Ansible方式安装

可以参考这个帖子的方法

tidb是tiup装的4.0.2版本,引用的是ansible的,有再具体的文档吗

tiup 支持 DM 的部署正在开发,目前可以选择 dm-ansible 部署方式,并将监控集成到 tiup

不喜欢ansible,等你们tiup好了再集成

问题解决了,syncers的worker-count加大后可以了

:+1::+1::+1: