【DM增量迁移】DM增量迁移时,如何判断增量已经追平

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.5.1
我在使用DM将腾讯云TDSQL迁移到TiDB v7.5.1 集群。
query-status 查看任务如下
“subTaskStatus”: [
{
“name”: “bbq_erp”,
“stage”: “Running”,
“unit”: “Sync”,
“result”: null,
“unresolvedDDLLockID”: “”,
“sync”: {
“totalEvents”: “3574846”,
“totalTps”: “64”,
“recentTps”: “1”,
“masterBinlog”: “(mysql-bin.233845, 120404143)”,
“masterBinlogGtid”: “0217d8fb-1ed5-11ed-b943-b8cef6abbc3c:1-6919153953,32339aac-2fcf-11ee-be9c-b8cef627f928:1-4331140045,e95a68aa-0bc7-11ed-b15f-b8cef6d419ca:1-486299789”,
“syncerBinlog”: “(mysql-bin.233845, 117560188)”,
“syncerBinlogGtid”: “0217d8fb-1ed5-11ed-b943-b8cef6abbc3c:1-6919153953,32339aac-2fcf-11ee-be9c-b8cef627f928:1-4331138119,e95a68aa-0bc7-11ed-b15f-b8cef6d419ca:1-486299789”,
“blockingDDLs”: [
],
“unresolvedGroups”: [
],
“synced”: false,
“binlogType”: “remote”,
“secondsBehindMaster”: “0”,
“blockDDLOwner”: “”,
“conflictMsg”: “”,
“totalRows”: “3574846”,
“totalRps”: “64”,
“recentRps”: “1”
},
“validation”: null
}

我想知道通过哪个参数判断增量是否完成了?synced 一直是false已经超过24小时了。
我希望在增量完成之后将上层业务迁移到tidb 集群来。

“stage”: “Running”, – 任务在执行中
“unit”: “Sync”, – 任务状态时同步 如果你的同步任务是 all 这个地方会有三个状态(dump,load,sync),如果是incremental的话是一个状态(sync)。

“masterBinlog”、“syncerBinlog”这两个参数表示主库当前的二进制日志位置,从库同步到主库二进制日志的位置。

个人理解这任务已经在同步阶段了,那个false不是用来同步任务状态的,我生产上这个状态也是false,没啥影响

sync 追上 master 是 true,否则是 false。 上游没数据写入等着即可

实在搞不清就看这个
TiDB Data Migration 查询任务状态 | PingCAP 文档中心

masterBinlog”: “(mysql-bin.233845, 120404143)”,
“masterBinlogGtid”: “0217d8fb-1ed5-11ed-b943-b8cef6abbc3c:1-6919153953,32339aac-2fcf-11ee-be9c-b8cef627f928:1-4331140045,e95a68aa-0bc7-11ed-b15f-b8cef6d419ca:1-486299789”,
“syncerBinlog”: “(mysql-bin.233845, 117560188)”,
“syncerBinlogGtid”: “0217d8fb-1ed5-11ed-b943-b8cef6abbc3c:1-6919153953,32339aac-2fcf-11ee-be9c-b8cef627f928:1-4331138119,e95a68aa-0bc7-11ed-b15f-b8cef6d419ca:1-486299789”,
这不是写着呢?master的binlog到了mysql-bin.233845, 120404143,下游集群的还是mysql-bin.233845, 117560188,这个基本已经追上了,你要先停止上游数据库的业务,这个才能追上。

看对应的gtid 和pos 也可以啊 ,你这是上游持续写入把

“synced”: false, 应该是值为true

你这个状态应该是基本追平了。

“unit”: “Sync”,
“secondsBehindMaster”: “0”,

这个secondsBehindMaster就是相对binlog里面记录的时间和当前时间的延迟,0的意思就是延迟在毫秒级。当然1-999ms都有可能,具体延迟多少,可以在dm集群的grafana里面看。每个task相对上游binlog的延迟都能看到。

“masterBinlog”: “(mysql-bin.233845, 120404143)”,
“syncerBinlog”: “(mysql-bin.233845, 117560188)”,

binlog差距就这些

1 个赞