如果分批备份,使用第一个备份的tidb_snapshot,可以保证一致性吗?

目前需要做一次集群迁移
在迁移过程中,更换主键,来解决热点问题。 所以不能使用扩容+缩容的方式。

但由于集群体积过大, 想分多次备份来提高总体效率, 那么可以使用第一个备份的tidb_snapshot来进行后续的增量同步,保证一致性吗? 这里的binlog是否有幂等性?

tidb snapshot 会根据 gc 的机制而被清理,如果集群较大,分批备份,如果备份和操作不连续,超过 gc 时间就会被清理。

根据上面的描述,是想要将现有集群,通过备份恢复的方式迁移到新的集群上,并更换主键,避免热点问题。

辛苦说明下对于主键和热点方面的问题。这边看下是否能提供解决思路

分批备份,和整体备份,可能都需要调整gc的时间,抛开gc之外 可以用snapshot增量覆盖部分数据继续同步吗?

热点问题,是因为自身业务场景,写、改、读比较密集在新增数据,而且目前使用auto_increment自增主键。
经调研,发现当前环境已经无法在线修改主键了,只能rebuild整个集群。

还有另一个场景,我们要做1:1的环境压测,也同样要clone整个集群,所以有了上述的需求。

tidb 的版本是?select tidb_version();

需要确认同步方式,没做过,如果使用 replace into 可以尝试,在 dm 的原理中有类似的机制,通过开启 safe mode 模式来覆盖同步诗句