问题一:
ERROR c.a.otter.canal.parse.inbound.mysql.MysqlEventParser - dump address /192.168.1.50:3306 has an error, retrying. caused by
com.alibaba.otter.canal.parse.exception.CanalParseException: can't find start position for example
原因:meta.dat 中保存的位点信息和数据库的位点信息不一致;导致canal抓取不到数据库的动作;
解决方案:删除meta.dat删除,再重启canal,问题解决;
集群操作:进入canal对应的zookeeper集群下,删除节点/otter/canal/destinations/xxxxx/1001/cursor ;重启canal即可恢复;
问题二:
java.lang.OutOfMemoryError: Java heap space
canal消费端挂了太久,在zk对应conf下节点的
/otter/canal/destinations/test_db/1001/cursor 位点信息是很早以前,导致重启canal时,从很早以前的位点开始消费,导致canal服务器内存爆掉
监听数据库变更,只有TransactionBegin/TransactionEnd,没有拿到数据的EventType;
原因可能是canal.instance.filter.black.regex=.*\\..*导致,改canal.instance.filter.black.regex=再重启试试;
问题三:

本文档列举了四个常见的Canal使用问题及其解决方案:1.由于meta.dat或Zookeeper中位点信息不一致导致的错误,解决方案是删除meta.dat或Zookeeper相关节点并重启Canal;2.因内存溢出和历史位点导致的问题,可通过调整过滤规则或重启避免从旧位点开始消费;3.解析row数据失败,通常由于权限问题,需修改Canal过滤规则;4.数据库修改未被Canal捕获,可能由于canal.ip配置错误,解决方法是清空canal.ip并重启服务。
最低0.47元/天 解锁文章
8886





