更新时间:2024-09-05 GMT+08:00

canal解析binlog报错

场景描述

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

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

原因分析

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

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

解决方案

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