通过canal从MySQL同步数据到OceanBase,对无主键的表做delete操作会导致ob全表删除吗?

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】ob-4.3.5
【问题描述】查看官方文档,发现使用canal从MySQL同步到OceanBase中,针对无主键的表数据同步有限制:同步的表必须有主键。否则,源端删除无主键表的任意一笔记录,同步到目标端会导致整个表被删除
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002012756
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002012748

问题:这个情况是偶发还是必然出现的? 请求官方老师解释一下这个原因。
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

8 个赞

学习一下

2 个赞

canal是啥,是类似DATAX的ETL工具么?建表最好是有主键

2 个赞

通过canal从MySQL同步数据到OceanBase,同步的表必须有主键,否则,源端删除无主键表的任意一笔记录,同步到目标端会导致*整个表被删,可以参考官网的这个贴:https://www.oceanbase.com/docs/community-observer-cn-10000000001878962

2 个赞

没看到能解释这个限制的原因

学习!

官网上 写的功能限制 要求一定要有主键 要不然就会出现这个问题

要用,好像就得按他要求有主键啊

+1

老师,这个原因是什么?能解释一下吗? 正常的对无主键的表执行delete 操作同步到ob应该是进行多次全表扫描,效率可能低点,但是不至于把整个表清空掉吧。

dd

没用用过

学到了不少新知识

文档解释是这样的 要有主键 要不然会有问题