【 TiDB 使用环境】生产环境
【遇到的问题:问题现象及影响】TiCDC搭建主从集群,部分表不满足同步条件,有什么其他方式可以解嘛,最终这几张表还是要同步到下游的从集群
【报错】[WARN] some tables are not eligible to replicate
1 个赞
还是把上游需要同步的表都加上主键或者唯一索引吧
后面和业务反馈下看看
跟个后续
统一給表加主键吧
官方文档很明确了,只能按官方要求来处理。
文档:100:
确认是需要主键或唯一索引,不然无法有效验证数据
这个情况只有进行业务管理了,要么必须有主键或者唯一索引,要么就不保证数据同的强一致性。
这个不太懂,不指定主键的话,tidb不是会自动生成一个吗
要求其实很简单,如果没有主键或者唯一索引,那么同步数据的效率将会大打折扣。
隐式的tidb_rowid不会同步给下游
对于ticdc数据同步的场景,为了避免在流重启/抖动等情况下,下游出现数据重复,都会要求表要有主键或非空唯一键。而且从表的设计角度来看,每个表也都应该要有一个主键才行,不管是从设计角度还是从数据同步角度,还是建议在上游加上主键吧,和业务侧沟通下。
如果是v7.x 高版本的cdc,就可以在下游添加主键或非空唯一键,然后ticdc设置safe_mode 为 replace避免重复写入。v5.4 的情况楼主可以去重新确认下。
还有一个处理办法是如果允许下游数据重复,那么在报上面的warning时候选择允许也能正常同步。
在上游集群没有指定主键,集群内部确实会自动生成 _tidb_rowid 作为隐式主键,但是隐式主键不是表上有明确定义的业务字段,不会被cdc同步到下游的。
加下主键
明白了,多谢大佬解答
其实感觉支持隐式主键会更好一些
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。