1. IOException: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
- 异常日志
2021-06-15 11:40:40.548 [destination = example , address = /10.89.2.242:3306 , EventParser] ERROR c.a.o.canal.parse.inbound.mysql.dbsync.DirectLogFetcher - I/O error while reading from client socket
java.io.IOException: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:102) ~[canal.parse-1.1.5.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.dump(MysqlConnection.java:238) [canal.parse-1.1.5.jar:na]
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$1.run(AbstractEventParser.java:262) [canal.parse-1.1.5.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]
-
问题原因
binlog保存时间为一天, 导致跨点时mysql binlog文件找不到
-
应急方案
canal-server/conf/example/meta.dat 重命名备份, 并重启
-
解决方案
show variables like '%expire_logs_days%'; // 查看binlog保存时间 expire_logs_days = 7 // 调整binlog保存时间
2. CanalParseException: column size is not match
-
异常日志
2021-06-15 16:40:39.769 [destination = example , address = /10.89.2.242:3306 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - dump address 10.89.2.242/10.89.2.242:3306 has an error, retrying. caused by com.alibaba.otter.canal.parse.exception.CanalParseException: com.alibaba.otter.canal.parse.exception.CanalParseException: parse row data failed. Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: parse row data failed. Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: column size is not match for table:iot_device.t_vbox_gateway,18 vs 17 2021-06-15 16:40:39.770 [MultiStageCoprocessor-Parser-example-1] ERROR com.alibaba.otter.canal.common.utils.NamedThreadFactory - from MultiStageCoprocessor-Parser-example-1 com.alibaba.otter.canal.parse.exception.CanalParseException: com.alibaba.otter.canal.parse.exception.CanalParseException: com.alibaba.otter.canal.parse.exception.CanalParseException: parse row data failed. Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: com.alibaba.otter.canal.parse.exception.CanalParseException: parse row data failed. Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: parse row data failed. Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: column size is not match for table:iot_device.t_vbox_gateway,18 vs 17
-
问题原因
Canal停服时间过久, 导致数据库表结构有差异
-
应急方案
canal-server/conf/example/h2.mv.db 重命名备份, 并重启
-
解决方案