在这个类MysqlEventParser 下面这个方法
/ private EntryPosition findAsPerTimestampInSpecificLogFile(MysqlConnection mysqlConnection, final Long startTimestamp, final EntryPosition endPosition, final String searchBinlogFile, final Boolean justForPositionTimestamp)*
我的配置文件里面指定了 canal.instance.master.journal.name=mysql-bin.000344 canal.instance.master.position=106199547
开启tsdb功能后
canal服务启动的时候 程序会进入这里找起始位点 由于没有找到这个位点程序会一致找下去甚至大于106199547 了还在找导致一直出于初始化阶段,然后就会出现 客户端无法创建cursor 。
我是通过这个命令找的 show binlog events in'mysql-bin.000344'
mysql-bin.000344 106199500 Rotate 609344520 106199547 mysql-bin.000345;pos=4
这条是最后一条记录 然后去取了106199547 作为canal.instance.master.position
然后上面的源码就进入无限循环当中
有数据的,但是已经进入下一个文件的了。 106199547 是mysql-bin.000344的最后一个位点, 但是下面是有 mysql-bin.000345文件的
原提问者GitHub用户zhp8341
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。