关于canal无法监控数据库数据变动的问题

Posted 爱奇志

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于canal无法监控数据库数据变动的问题相关的知识,希望对你有一定的参考价值。

问题描述:
使用canal监控数据库数据变化时,是根据数据库的binlog来监控的,由于本人一时手贱,删除了几乎所有的binlog日志,只保留了当前正在使用的binlog日志文件。然后问题就来了,我的canal不管数据库数据如何变化,它就是一点反应都没有,而且控制台并没有报错。

思路分析:
我仔细想了一下,在整个事件中,我好像就删除了日志文件,没有做其他的操作,而canal刚好是通过日志文件来判断数据库变化的。所以我推断应该是日志文件出了问题,经过百度,看了多个大佬的文章后,我找到了meta.data文件,此文件记录了canal读取的日志文件的信息,看到这个文件记录的信息后,我恍然大悟。
原来,该文件中记载此时读取的日志文件为binlog.118日志文件,而我已经把这个日志文件删除掉了,所以canal没办法监听到别的日志文件的信息。

解决方法:
删除meta.data,重启canal,问题解决

以上是关于关于canal无法监控数据库数据变动的问题的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据库数据动态监控(canal+Kafka)

使用canal监控mysql数据库实现elasticsearch索引实时更新

Canal同步数据

阿里开源项目——Canal

Canal同步MySQL数据无法将UPDATE类型数据更新到目标MySQL的解决方案

大数据Canal:使用Canal同步MySQL数据