开发者社区 > 数据库 > 正文

canal server在同步binlog日志的时候表结构发生变化改怎么处理?

一直都在报这个错误:image.png
我只是想同步行级变化的数据内容,根据每一条变化的数据做业务处理。但是表结构发生变化这种应该怎么跳过?

展开
收起
hf3cmqntz5s4q 2024-09-01 10:07:56 37 0
3 条回答
写回答
取消 提交回答
  • 你这是改了表结构,元数据改了,只能更新Canal配置,清理Canal缓存后重跑
    image.png
    回答不易请采纳

    2024-09-01 20:49:56
    赞同 11 展开评论 打赏
  • canal的坑:CanalParseException: column size is not match for table
    解析线程阻塞问题
    这个基本是每个使用Canal的开发者的必踩之坑。$CANAL_HOME/conf/canal.properties配置文件中存在一行注释掉的配置:canal.instance.parser.parallelThreadSize = 16。该配置用于指定解析器实例并发线程数,如果注释了会导致解析线程阻塞,得到的结果就是什么都不会发生。
    注释解除即可,建议使用默认值16。
    image.png
    参考文档https://blog.csdn.net/BBinChina/article/details/115481605

    2024-09-01 16:37:24
    赞同 6 展开评论 打赏
  • 问题解决:
    1、在canal.properties里面配置tsdb的mysql数据库,具体配置如下:
    canal.instance.tsdb.enable = true
    canal.instance.tsdb.dir = ${canal.file.data.dir:../conf}/${canal.instance.destination:}

    canal.instance.tsdb.url = jdbc:h2:${canal.instance.tsdb.dir}/h2;CACHE_SIZE=1000;MODE=MYSQL;

    canal.instance.tsdb.url=jdbc:mysql://hadoop:3306/canal_tsdb
    canal.instance.tsdb.dbUsername = root
    canal.instance.tsdb.dbPassword = root

    canal.instance.tsdb.spring.xml = classpath:spring/tsdb/h2-tsdb.xml

    canal.instance.tsdb.spring.xml = classpath:spring/tsdb/mysql-tsdb.xml

    2、在数据库里面创建canal_tsdb数据库,数据库的用户需要有创建表的权限。
    create database canal_tsdb;

    image.png
    参考文档https://blog.csdn.net/weixin_40126236/article/details/103928950

    2024-09-01 14:11:58
    赞同 11 展开评论 打赏

数据库领域前沿技术分享与交流

相关电子书

更多
“啄”壮成长-移动app线上日志分析利器 立即下载
基于日志trace的智能故障定位系统 立即下载
自动化运维之日志平台 立即下载