canal ERR :column size is not match for table

ERROR c.a.o.c.parse.inbound.mysql.MysqlMultiStageCoprocessor - DmlParserStage on event error
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:aaa.ccccc_2023-12-16,42 vs 1
2023-12-16 00:41:42.283 [MultiStageCoprocessor-Parser-porter_1835-1] ERROR com.alibaba.otter.canal.common.utils.NamedThreadFactory - from MultiStageCoprocessor-Parser-porter_1-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.

canal任务一直正常运行突然报错。看日志提示表字段对应不上,查看源码表结构检查规则。在分表情况下,canal会把每张分表的表结构同步到mysql中每次表结构变更也会同步当进行数据同步时会进行表结构检查。检查的是最早的一条,当有表结构变更时就会出错。

canal 启动时会把监控的表同步到mysql中,当监控到符合任务的表时也会写入mysql中同时也会写入缓存中,当canal重启时会自动加载。

起因:由于任务时按天分表业务方会提前三天创建表。中间业务增加一个字段,在同步到当天数据时表结构检查失败。

问题时间点:

13号:创建tb_202315

14号:创建(tb_202316)修改tb_14,tb_15,tb_202315

15号凌晨:报错

处理:删除旧的表结构信息表明meta_history 重启canal

TableMetaTSDB · alibaba/canal Wiki · GitHub

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值