目录
Canal报错position位置的mysql binlog被删除解决方法
解决方法:不考虑中间的binlog日志,从最新的binlog开始读取
备注:如果adapter客服端有配置了es索引,需要把es索引重建
其他:如果配置了es消费binlog那么如果还要在同服务消费数据获取binlog需要建立两个example
Canal报错position位置的mysql binlog被删除解决方法
本次解决方法是测试环境,只要从新监控最新的binlog日志即可,因为canal会记录当前的读取到binlog日志文件名,也就是position位置,当mysql数据库设置的binlog有效期较短,并且canal并没有完全读取完数据时,binlog文件被清空导致canal读取文件为空发生阻塞异常无法再继续读取下面的binlog文件。
解决方法:不考虑中间的binlog日志,从最新的binlog开始读取
1、先关闭canal服务在bin文件夹执行
sh stop.sh
2、进入在conf/example文件夹 清空 自生成的文件只保留instance.properties
3、启动canal服务,在bin文件夹执行
sh startup.sh
4、进入logs文件夹example中查看日志是否重新启动,报错是否已解决
备注:如果adapter客服端有配置了es索引,需要把es索引重建
put 索引名{mappings}
mapping可以通过kibana 中mannager -> index manager->manger 中查看mappings信息
其他:如果配置了es消费binlog那么如果还要在同服务消费数据获取binlog需要建立两个example
1、在conf文件夹复制example 到 example1
cp -r example example1
2、进入在conf/example1文件夹 清空 自生成的文件只保留instance.properties
3、修改example1文件夹下的instance.properties配置
canal.mq.topic=example1
4、修改conf文件夹下canal.properties文件
canal.destinations = example,example1
5、重启canal服务
6、进入logs文件夹example1中查看日志是否启动成功
其他服务可以消费example1中与example互不干涉,互不影响。
感谢观看