DM全量同步,怎样改为增量同步

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】 V7.5
【复现路径】现在用DM从上游MySQL同步到tidb,全量同步占用硬盘空间,现在不需要做全量同步,只需要做增量同步即可,能否将现在的同步任务停止后,清除目标端数据,然后从当前GTID位置开始同步增量数据?
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

1 个赞

其实保留增量同步的逻辑,然后定期清除过期的备份文件即可

增加增量同步任务就可以啊

怎么清除过期的备份文件?直接清除表里面的数据么?

增加增量同步任务,原来表里面的数据,直接清除么?

我也没实操过,看看这个文档能帮到你吗
TiDB 日志备份与 PITR 使用指南 | PingCAP 文档中心

肯定不清除啊,增量只会同步最新的数据

如果只做增量同步的话数据可能出现不一致的情况而报错,还是要看看你的需求是什么?

例如:
update一行增量同步之前的数据,会找不到报错

这个有用吗

先有全量同步,后续再会改成增量同步,数据理论上是一致的。

你的 DM 任务配置文件是配置的 mode: full 吗?

  • 如果是 full 那全量导入是一次性的,任务完成后就没有了,后续想继续开一个增量任务直接开就行
  • 如果是 all,那全量结束后会自动开始增量同步,不需要其他操作。

https://docs.pingcap.com/zh/tidb/stable/task-configuration-file-full
task-mode: all # 任务模式,可设为 “full” - “只进行全量数据迁移”、“incremental” - “Binlog 实时同步”、“all” - “全量 + Binlog 实时同步”

我现在是全量+增量,为了节约硬盘空间,只需要增量同步即可,不清除原来的数据,那目的没达到,也不需要更改啥了。

这个可能确实存在,没了以前的数据,更新确实会报错,这个就要看需求,看是更新多久以前的数据了。

你一开始的思路大致是对的。

改一下task配置,改成增量。stop task,删除目标端数据, 再start task就可以了。

但是这有个问题,就像前面有人提到的那样,删除目标端数据后,后面有delete和update数据的时候,如果目标端数据不存在,DM任务就停在这里了。

https://docs.pingcap.com/zh/tidb/stable/dm-safe-mode

开安全模式,可以解决这个问题。

好的,改天测试下。

不可以,应该有8级的基础数据

先停任务,然后将full改为incre就可以了呀,最后恢复任务,完事。