【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】 V7.5
【复现路径】现在用DM从上游MySQL同步到tidb,全量同步占用硬盘空间,现在不需要做全量同步,只需要做增量同步即可,能否将现在的同步任务停止后,清除目标端数据,然后从当前GTID位置开始同步增量数据?
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
1 个赞
其实保留增量同步的逻辑,然后定期清除过期的备份文件即可
增加增量同步任务就可以啊
怎么清除过期的备份文件?直接清除表里面的数据么?
增加增量同步任务,原来表里面的数据,直接清除么?
肯定不清除啊,增量只会同步最新的数据
这个有用吗
先有全量同步,后续再会改成增量同步,数据理论上是一致的。
你的 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任务就停在这里了。
好的,改天测试下。
不可以,应该有8级的基础数据
先停任务,然后将full改为incre就可以了呀,最后恢复任务,完事。