canal版本1.1.1,
发现只要数据库里面有存储过程,不知道为何老是会拉取到存储过程,然后就卡在那里,任务动不了了。报错: 2019-04-28 16:17:26.280 [destination = RDBConn_cpribcm_01 , address = /10.116.208.24:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - prepare to find start position just last position {"identity":{"slaveId":-1,"sourceAddress":{"address":"我把IP地址屏蔽","port":3306}},"postion":{"gtid":"","included":false,"journalName":"master-bin.000003","position":662339127,"serverId":152420,"timestamp":1556439349000}} 2019-04-28 16:17:26.420 [destination = RDBConn_cpribcm_01 , address = /我把IP地址屏蔽:3306 , EventParser] WARN c.a.otter.canal.parse.inbound.mysql.tsdb.MemoryTableMeta - parse faield : CREATE DEFINER=dbAdmin@% PROCEDURE effectCertMember(in v_cert_id VARCHAR(50)) BEGIN ^M DECLARE cert_id_temp VARCHAR(50);^M DECLARE recordtype_temp VARCHAR(50);^M
查了一些资料,锁定过下面这几个配置项 canal.instance.filter.druid.ddl = true canal.instance.filter.query.dcl = false canal.instance.filter.query.dml = false canal.instance.filter.query.ddl = false canal.instance.filter.table.error = false
可是怎么配置r仍然都是一样的情况。
请问大大,是我用的方法不对,还是能力上不支持?
原提问者GitHub用户sherlock111
canal理论上是支持解析存储过程的,但是在解析存储过程时可能会遇到一些问题,例如存储过程中包含的语句、变量等信息可能无法正确解析。同时,存储过程中可能会包含一些特殊的操作,例如调用其他存储过程、执行系统命令等,这些操作也可能会影响canal的解析。因此,建议在使用canal进行数据同步时,尽量避免使用存储过程,而是使用普通的SQL语句来操作数据库。
针对你的问题,建议检查一下canal的配置文件,确认是否已经将canal.instance.filter.druid.ddl设置为true,以便可以正确解析存储过程中的DDL语句。同时,也可以尝试升级canal的版本。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。