TICDC 不兼容的表

【 TiDB 使用环境】生产环境
【遇到的问题:问题现象及影响】TiCDC搭建主从集群,部分表不满足同步条件,有什么其他方式可以解嘛,最终这几张表还是要同步到下游的从集群
【报错】[WARN] some tables are not eligible to replicate

1 个赞

还是把上游需要同步的表都加上主键或者唯一索引吧

后面和业务反馈下看看

跟个后续

统一給表加主键吧

:thinking:官方文档很明确了,只能按官方要求来处理。

文档:100: :100: :100:

确认是需要主键或唯一索引,不然无法有效验证数据

这个情况只有进行业务管理了,要么必须有主键或者唯一索引,要么就不保证数据同的强一致性。

这个不太懂,不指定主键的话,tidb不是会自动生成一个吗

要求其实很简单,如果没有主键或者唯一索引,那么同步数据的效率将会大打折扣。

隐式的tidb_rowid不会同步给下游

对于ticdc数据同步的场景,为了避免在流重启/抖动等情况下,下游出现数据重复,都会要求表要有主键或非空唯一键。而且从表的设计角度来看,每个表也都应该要有一个主键才行,不管是从设计角度还是从数据同步角度,还是建议在上游加上主键吧,和业务侧沟通下。

如果是v7.x 高版本的cdc,就可以在下游添加主键或非空唯一键,然后ticdc设置safe_mode 为 replace避免重复写入。v5.4 的情况楼主可以去重新确认下。

还有一个处理办法是如果允许下游数据重复,那么在报上面的warning时候选择允许也能正常同步。

在上游集群没有指定主键,集群内部确实会自动生成 _tidb_rowid 作为隐式主键,但是隐式主键不是表上有明确定义的业务字段,不会被cdc同步到下游的。

加下主键

明白了,多谢大佬解答

其实感觉支持隐式主键会更好一些

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。