基于 TiCDC 不能同步无有效索引表的问题,如何从源头解决无有效索引表的创建呢?

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】7.1
基于 TiCDC 不能同步无有效索引表的问题,如何从源头解决无有效索引表的创建呢?
eg:比如是否有参数禁止无有效索引表创建?

1 个赞

有的,https://docs.pingcap.com/zh/tidb/stable/system-variables#sql_require_primary_key-从-v630-版本开始引入

1 个赞

这个感觉还是跟领导沟通下,应该出个规范, 跟考核挂上钩, 这样的话, 才行。 从技术角度做限制, 似乎别人也不领情, 认为你在设置障碍。

引入sql工单审计,我们也是研发多权限大,下游同步经常出问题,上了审计之后就有效避免了这个问题,类似yearning,有语句校验,还有配置想要的限制,第一步就会拒绝。

1 个赞

规范化创建索引吧!
创建索引遵循一定的规范和使用率
规章制度或审核机制

这就是开发规范问题,正常建表肯定会有主键。

这个参数正解,修改主键写成删除添加在一条语句里

我们之前用的是mysql 8.0版本,所有环境都强制开启了sql_require_primary_key=ON。tidb同理

一般使用cdc建议同步设置 SET GLOBAL sql_require_primary_key=on,没有主键的情况下创建或修改表,将返回错误。

1 个赞

开发规范,培训。在做参数限制,

其实这个有大坑,DM上metadata表很多是没有主键的,开启后会导致DM失败的

数据库开发规范不能少

数据库开发规范不能少 :+1:

:saluting_face:了解了,感谢