Canal 报错处理:ERROR com.alibaba.otter.canal.common.utils.NamedThreadFactory

环境:

        canal 版本 1.1.6

报错日志:

2023-12-13 09:50:00.135 [MultiStageCoprocessor-Parser-pre_db_tbl_job-0] ERROR com.alibaba.otter.canal.common.utils.NamedThreadFactory - from MultiStageCoprocessor-Parser-pre_db_tbl_job-0
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.
Caused by: 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:position.tbl_job,89 vs 87

        表示canal存储的元数据对这张表的记录字段不一致,之前是87个字段,现在是89。

 处理思路:

找到canal.properties文件,查看canal.instance.tsdb.url信息,

如果canal.instance.tsdb.url用的是jdbc:h2,那么可以在主机上找到h2.mv.db文件,进行删除

如果canal.instance.tsdb.url用的是jdbc:mysql 那么需要到mysql的库里,删除元数据。

delete from  canal_tsdb.meta_snapshot WHERE destination = 'tbl_job';
delete from  canal_tsdb.meta_history WHERE  destination = 'tbl_job';

因为这是一个集群模式,使用zookeeper存储位点,因此也需要到zk里删除对应的存储位点

[zk: localhost:2181(CONNECTED) 4] ls /otter/canal/destinations/tbl_job
[1001, cluster]
[zk: localhost:2181(CONNECTED) 5] deleteall /otter/canal/destinations/tbl_job
[zk: localhost:2181(CONNECTED) 6] ls /otter/canal/destinations/tbl_job
Node does not exist: /otter/canal/destinations/tbl_job

最后到canal的界面重启instance。

canal.adapter 运行异常是指在使用 com.alibaba.druid.pool.DruidDataSource 时发生了错误。DruidDataSource 是阿里巴巴开发的一种数据库连接池,用于管理数据库连接的创建和释放,提供了更好的性能和稳定性。 出现 canal.adapter 运行异常可能有多种原因,包括配置错误、数据库连接问题、依赖库缺失等。 首先,我们需要检查配置文件,确保数据库的连接参数正确配置。这包括数据库的 URL、用户名和密码等。如果任何一个参数错误或者缺失,都会导致 canal.adapter 运行异常。 其次,我们需要确认数据库连接是否可用。可以通过测试连接或者手动连接数据库来检查连接是否成功。如果连接失败,可能是数据库服务器故障或网络问题导致的。 另外,还需要检查相关依赖库是否正确导入。如果缺少了相应的依赖库,也会导致 canal.adapter 运行异常。可以通过查看项目的依赖管理文件,确认是否缺少必要的依赖库。 最后,如果以上步骤都没有发现问题,可以尝试重新部署 canal.adapter,并确保使用的是最新版本。有时候,旧版本的 canal.adapter 可能存在一些已知的问题,更新到最新版本可能会解决运行异常的问题。 总结来说,canal.adapter 运行异常出现时,我们需要检查配置文件、确认数据库连接是否可用、检查依赖库导入是否正确,并尝试重新部署和更新版本,以解决运行异常的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值