一 问题描述

发现同一个canal instance里,其中一个表操作可以正常同步到kafka,另一个表则不行。日志也没报错。

不能同步的表最近的操作有修改表结构(增加了一个字段)。

二 出错原因

binlog filter config配置得不正确:
canal.instance.filter.query.ddl = true
设为true,表示无法同步ddl相关sql。

三 解决办法

将其修改为:
canal.instance.filter.query.ddl = false

关闭canal server(canal-server/bin/stop.sh)

删除h2.mv.db文件

启动canal server(canal-server/bin/startup.sh)

会自动生成一个h2.mv.db文件

后续DML能正常同步了,只是之前没同步过来的数据就丢失了。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐