记一次canal除坑记录

记一次canal除坑记录

错误信息

Caused by :com.alibaba.otter.canal.parse.exception.CanalParseException: column size is not match for table

问题处理

今天对Canal相关程序进行升级,原监听的表及业务都正常;遇到新增加的表时总是不走;
因为我们开发的程序都记过测试环境自测,所以直接从线上canal的日志开始排查问题;
canal错误日志截图:
canel错误
从错误看表字段数不对,以为时程序开很长时间了canal缓存了之前的表结构;但是canal跑了2年左右了,啥时候缓存的已经不知道了,随对canal进行重启,但是问题依旧,随针对问题进行网上检索;
找到了CanalParseException: column size is not match for table 标题和错误一致;查看和我们初步分析一致 canal缓存的表结构出现了不一致的情况;
随后依次按照文档的处理办法进行处理;

  1. 停止canal相关程序,和Canal服务;
  2. 找到conf/canal.properties 将canal.instance.tsdb.enable设置为false;
  3. 删除$CANAL_HOME/conf/目标数据库实例标识/h2.mv.db文件;
  4. 最后启动Canal服务
    启动后发现第二部的设置未达到预期,h2.mv.db文件又生成了。

Canal服务有问题?不可能;

继续排查发现在canal.properties有关于conf的配置:

canal.instance.tsdb.enable = false
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.properties配置也有关于canal.instance.tsdb.enable = true;随停止Canal服务后将这个改为false;再次重启Canel服务;当问题仍旧没有解决;
问题找到了,诸多措施仍处理问题;
网络一大搜,找到了 canal读取mysql采坑大全; 是第一条就是:

删除meta.dat删除,再重启canal,问题解决;

随对实例下的meta.dat删除,重启;
问题终于解决了。

总结

问题定位到,处理问题措施需要根据自己的实际情况,各自的配置都不一样。

资料

CanalParseException: column size is not match for table
canal读取mysql采坑大全

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/599621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

202402读书笔记|《当你老了》——灰蒙曙光比爱情温柔,清晨露珠比希望更可爱

202402读书笔记|《当你老了》——灰蒙曙光比爱情温柔,清晨露珠比希望更可爱 《当你老了》作者叶芝,断断续续碎片时间读完的一本书,不是很惊艳,但值得一读。就因为很喜欢当你老了,所以拾起的这本书。读完知道了原来叶芝…

什么是软件安全性测试?如何进行安全测试?

一、什么是软件安全性测试? 软件安全性测试是指对软件系统中的安全漏洞进行检测和评估的过程。其目的是为了确保软件系统在面对各种安全威胁时能够保持其功能的完整性、可用性和机密性。 二、软件安全性测试可以通过以下几个步骤来进行: 1. 需求分析&a…

51单片机四位数码管计算器 Proteus仿真程序

目录 概要 仿真图 部分代码 资料下载地址:51单片机四位数码管计算器 Proteus仿真程序 概要 1.系统通过4x4的矩阵键盘输入数字及运算符。 2.可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E 3.可以进行加法以外…

LowB三人组(冒泡排序,插入排序,选择排序)(数据结构课设篇1,python版)(排序综合)

本章博客主要详细讲解一下LowB三人组排序,为什么叫LowB三人组呢?因为他们的时间复杂度都为O(n^2)。下篇博客会再讲解NB三人组(堆排序,归并排序和快速排序),第三篇博客会讲解其他排序…

算法每日一题:队列中可以看到的人数 | 单调栈

大家好,我是星恒 今天是一道困难题,他的题解比较好理解,但是不好想出来,接下来就让我带大家来捋一捋这道题的思路,以及他有什么特征 题目:leetcode 1944有 n 个人排成一个队列,从左到右 编号为 …

Spring国际化的应用及原理详解

1. 简介 Spring国际化(Spring Internationalization,简称i18n)是Spring框架提供的一种机制,用于支持多语言的应用程序。它使得开发者能够轻松地在应用程序中实现不同语言的支持,从而满足全球化的需求。通过Spring国际…

面试必问究极重点之HashMap的底层原理

1.底层数据结构 JDK版本不同的数据结构 1.7 数组 链表 1.8 数组 (链表 | 红黑树) 2.添加数据put 在添加一个值的时候,首先会计算他的hash码,然后进行二次hash,在对当前长度取模得到在底层数组中的索引位置当取模完…

electron——查看electron的版本(代码片段)

electron——查看electron的版本(代码片段)1.使用命令行: npm ls electron 操作如下: 2.在软件内使用代码,如下: console.log(process) console.log(process.versions.electron) process 里包含很多信息: process详…

【Linux】——基本指令(二)

💗个人主页💗 ⭐个人专栏——数据结构学习⭐ 💫点击关注🤩一起学习C语言💯💫 目录 导读:1. vim 指令2. head指令3. tail指令4. tree指令5. 输出重定向6. echo指令7. wc指令8. | 字符9. date指令…

PCIe 6.0生态业内进展分析总结

上一篇,我们针对PCIe 6.0的功能更新与实现挑战做了简单的分析与总结。更多详细内容可以参考: 扩展阅读:浅析PCIe 6.0功能更新与实现的挑战 那么,PCIe 6.0已经发布了一段时间了,业内硬件支持PCIe 6.0目前有哪些进展呢…

面试算法93:最长斐波那契数列

题目 输入一个没有重复数字的单调递增的数组,数组中至少有3个数字,请问数组中最长的斐波那契数列的长度是多少?例如,如果输入的数组是[1,2,3,4,5,6,7&#x…

外包干了5个月,技术明显退步了...

先说一下自己的情况,本科生,19年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年12月份,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…

周鸿祎分享大模型十大趋势:2024将出现杀手级应用

1月5日,“2023年风马牛年终秀”上,三六零(601360.SH,下称“360”)集团创始人周鸿祎分享了对2024年大模型发展趋势的十大预测,呼吁企业树立AI信仰,All in AI。他认为,创新才能破局&am…

ctfshow——信息搜集

文章目录 web 1web 2web 3web 4web 5web 6web 7web 8web 9web 10web 11web 12web 13web 14web 15web 16web 17web 18web 19web 20 web 1 题目提示开发注释未及时删除。 直接右键查看源代码。 web 2 在这关我们会发现:1)无法使用右键查看源代码&…

Linux服务器的几种类型

Linux是一个开源操作系统内核,用作各种Linux发行版(也称为“distros”)的核心组件。由Linus Torvalds于1991年开发,Linux基于Unix操作系统。它以其稳定性、安全性和多功能性而闻名。 Linux的关键特点: 开源性质&#…

OpenCASCADE MFC例子

OpenCASCADE MFC例子 说明 一直对OpenCASCADE一直都比较感兴趣,这个例子是我参考这位大神C幼儿园中班小朋友的专栏做出来的OpenCASCADE_C幼儿园中班小朋友的博客-CSDN博客 不过我用的是vcpkg的方式安装OpenCASCADE,这个需要注意一下,可能需…

[蓝桥杯学习] 树链剖分

定义 将树分割成若干条链,以维护树上的信息,若无特殊需求,一般是重链剖分。 重链剖分 如何重链剖分 两个dfs 第一个dfs是预处理各个结点的基本信息,第二个dfs是利用信息进行剖分(dfs序) 操作步骤 第一…

git在本地创建dev分支并和远程的dev分支关联起来

文章目录 git在本地创建dev分支并和远程的dev分支关联起来1. 使用git命令2. 使用idea2.1 先删除上面建的本地分支dev2.2 通过idea建dev分支并和远程dev分支关联 3. 查看本地分支和远程分支的关系 git在本地创建dev分支并和远程的dev分支关联起来 1. 使用git命令 git checkout…

构建高效秒杀系统的设计原理及注意事项

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

设计模式——迭代器模式(Iterator Pattern)

概述 迭代器模式(Iterator Pattern):提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标(Cursor)。迭代器模式是一种对象行为型模式。 在软件开发中,我们经常需要使用聚合对象来存储一系列数据。聚合对象拥有…