Canal学习之Canal报错position位置的mysql binlog被删除解决方法

3 篇文章 1 订阅
2 篇文章 0 订阅

目录

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互不干涉,互不影响。

感谢观看

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值