当前版本canal1.1.5 mysql 8.0
问题原因在于mysql主从切换后,新主库的binlog会从mysql-bin-00001开始, 这将导致canal无法读取新主库的binlog,继而抛出 Could not find first log file name in binary log index file 当时 #172 有人提出过此问题,但在1.1.5版本仍然存在 且需要尽可能不丢失数据, 如果重置位点从当前最新位置开始,可能会丢失部分binlog数据
或者使用gtid是否能解决此问题?
原提问者GitHub用户nielizixiu
解决方案: mysql主从开启binlog,启用gtid,canal使用gtid模式 mysql部分配置如下
server-id=101 log-bin=mysql-bin relay_log=my-relay-bin log_slave_updates=true gtid_mode=on enforce_gtid_consistency=true
测试后canal能在主备切换间正常读取数据,且主备出现同步冲突也不会导致canal解析异常!
原回答者GitHub用户nielizixiu
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。