开发者社区 问答 正文

延迟情况下多条ddl语句引发schema不匹配的bug

在有多条ddl语句时,如果binlog解析存在延时,会引发如下错误: 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:xxdb.xxxtable,39 vs 37。

原因如下: binlog中有前后两条ddl语句a和b,由于解析落后,canal才解析到a,从db中获取最新的schema,得到了b操作后的schema。a和b之间的消息的表结构跟最新的schema不匹配。

原提问者GitHub用户sunryuan

展开
收起
绿子直子 2023-05-09 12:02:21 157 分享 版权
1 条回答
写回答
取消 提交回答
  • 新版本会支持ddl版本变更,可以随意回切到任意位点,DDL表结构也会同步回滚 新版本代码已经提交到master

    原回答者GitHub用户agapple

    2023-05-10 10:28:00
    赞同 展开评论
问答分类:
问答地址: