前言
记录一些遇到的问题






(1)Mixed模式不能通过filter进行过滤
问题来源
在 Mixed 模式下,通过 canal 解析 Binlog 获得 SQL 语句,再到另个数据库中去执行这个SQL。
问题出现
在单机和一个instance下,SQL 执行了两次,程序抛出异常。
出现这问题的可能原因
同时监听了这两个数据库,导致执行一次触发一次

1. 通过设置白名单(subscribe)、黑名单

行不通

因为在 Mixed 模式下,filter将失效,因为不解析sql,所以无法准确提取tableName进行过滤 资料参考
<https://github.com/alibaba/canal/wiki/AdminGuide>




2. 业务逻辑判断

既然不能通过设置filter来判断,那就自己写逻辑。

根据上个问题,我们知道在 Mixed 模式下 无法准确提取 tableName,那么就根据 数据库名(schemaName)来判断。







(2)canal 指定 timestamp

当然这些工作,你得先停止 canal ./stop.sh

每修改完 instance.properties ,请删除 meta.dat

因为canal启动后可能先去读取 meta.dat 中 position 的位置,然后在当前位置往下读


只看了阿里简介,没详细看源码,so,这些是我的猜想

在看一下阿里的 EventParser 设计图


我的 instance.properties 配置

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信