前言…
因为我们读取的mysql数据库是华为云实例数据库,且设置了binlog日志保存最多为30分钟…
在我们的canal 消费端停止时间大于30分钟后再次启动,canal或从之前配置文件中加载binlog读取位置,但此时该binlog已经不存在了,则会导致报错以及后续无法继续读取监控的数据库的binlog信息…
这个时候呢,我们查看自己设置的某一具体消费端日志
meta.log (这是binlog读取日志)
所在位置:canal服务端/logs/消费端实例/meta.log 例如:/usr/local/canal/logs/test/meta.log
解决
①查看监控数据库BinLog 信息
show binary logs;
如发现消费端meta.log读取的binlog不存在或 meta.log不在持续变化,则需要重新设置该实例读取的binlog位置
②停止canal
③更改canal 消费端配置
配置位置:canal的 conf/消费实例/meta.dat文件
修改meta.dat 中 binlog读取偏移量即可
具体数值则根据之前show binary logs; 查出的binlog文件,自己选择设置了 position的值不能大于查出Binlog的 File_size