gunagyu001
gunagyu001
几周前发现canal-server的日志中有报错: `Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: column size is not match for table:boxonline.order,46 vs 43`; 然后我去校验原表,和我同步到下游的表结构,发现两个表结构一致,都是46个字段; 但是当我查看canal_tsdb.meta_history表时发现,表中sql_text字段的建表语句中只有43个字段,和上下游两张表的建表语句比较了下,确实少了三个字段的信息; 接下来我尝试清空canal的meta_history,meta_snapshot两张表,删除zk中保存的cusor信息,修改instance文件中偏移量到最新的位置,然后重新启动canal-server,又可以继续同步数据了,但过了1天左右再次报错: column size is not match for table:boxonline.order,46 vs 43; 再次尝试上述的方式,重新启动了; 这个问题发生了好几次,而且永远只会在这张表发生,其他的表没有出现过这个错误,目前已经停止同步了,还没有解决,请指点下是什么原因导致的? tsdb中表结构是从哪里拿到的呢(是binlog中的table_map_event吗,我看到canal的原始日志里面mysql_type信息是正确的)? 有哪些原因会导致tsdb缺少字段的问题? 这种问题我该如何处理?...