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

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

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

    2024-09-01 20:49:56 举报
    赞同 94 评论

    评论

    全部评论 (0)

    登录后可评论
  • 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 举报
    赞同 77 评论

    评论

    全部评论 (0)

    登录后可评论
  • 问题解决:
    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 举报
    赞同 75 评论

    评论

    全部评论 (0)

    登录后可评论

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

还有其他疑问?
咨询AI助理