开发者社区> 问答> 正文

请问,canal解析是不是不支持存储过程?

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

展开
收起
数据大拿 2023-05-04 18:24:05 129 0
2 条回答
写回答
取消 提交回答
  • 不支持存储过程的解析,这个只是一个日志输出,暂时不影响同步

    原回答者GitHub用户agapple

    2023-05-05 10:50:46
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    canal理论上是支持解析存储过程的,但是在解析存储过程时可能会遇到一些问题,例如存储过程中包含的语句、变量等信息可能无法正确解析。同时,存储过程中可能会包含一些特殊的操作,例如调用其他存储过程、执行系统命令等,这些操作也可能会影响canal的解析。因此,建议在使用canal进行数据同步时,尽量避免使用存储过程,而是使用普通的SQL语句来操作数据库。

    针对你的问题,建议检查一下canal的配置文件,确认是否已经将canal.instance.filter.druid.ddl设置为true,以便可以正确解析存储过程中的DDL语句。同时,也可以尝试升级canal的版本。

    2023-05-05 09:56:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像