更新时间:2023-02-03 GMT+08:00

canal解析Binlog报错

场景描述

canal解析Binlog出现错误,导致拉取Binlog中断,错误信息如下:

xxx.otter.canal.parse.exception.CanalParseException: java.lang.NumberFormatException:- Caused by: java.lang.NumberFormatException:  - at xxx.fastsql.sql.parser.Lexer.integerValue(Lexer.java:2454)

原因分析

检查RDS for MySQL的参数“binlog_rows_query_log_events”的值是否设置为1ON

  • 目前canal只能支持ROW格式的Binlog增量订阅。
  • 当RDS for MySQL的参数“binlog_rows_query_log_events”的值设置为1ON时,会在Binlog中产生Rows_query类型的event,此类event非ROW格式,一些场景下,会导致canal出现blank topic问题,引发Binlog解析失败。

解决方案

将RDS for MySQL的参数“binlog_rows_query_log_events”的值修改为OFF,重启中断的canal任务。