开发者社区 问答 正文

mysql主库在进行操作时,报错:[destination = example , address

环境信息

canal version canal.deployer-1.1.0 mysql version 5.7.22-log MySQL Community Server (GPL)

问题描述

2019-01-31 11:06:06.357 [destination = example , address = /127.0.0.1:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - prepare to find start position just show master status 2019-01-31 11:10:26.716 [destination = example , address = /127.0.0.1:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - find start position : EntryPosition[included=false,journalName=log-bin.000001,position=12782,serverId=139,gtid=,timestamp=1548903950000] 2019-01-31 11:10:26.718 [destination = example , address = /127.0.0.1:3306 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - dump address /127.0.0.1:3306 has an error, retrying. caused by java.lang.IllegalArgumentException: null at java.util.concurrent.ThreadPoolExecutor.(ThreadPoolExecutor.java:1314) ~[na:1.8.0_191] at java.util.concurrent.ThreadPoolExecutor.(ThreadPoolExecutor.java:1237) ~[na:1.8.0_191] at java.util.concurrent.Executors.newFixedThreadPool(Executors.java:151) ~[na:1.8.0_191] at com.alibaba.otter.canal.parse.inbound.mysql.MysqlMultiStageCoprocessor.start(MysqlMultiStageCoprocessor.java:84) ~[canal.parse-1.1.0.jar:na] at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:238) ~[canal.parse-1.1.0.jar:na] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_191] 2019-01-31 11:10:26.722 [destination = example , address = /127.0.0.1:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:example[java.lang.IllegalArgumentException at java.util.concurrent.ThreadPoolExecutor.(ThreadPoolExecutor.java:1314) at java.util.concurrent.ThreadPoolExecutor.(ThreadPoolExecutor.java:1237) at java.util.concurrent.Executors.newFixedThreadPool(Executors.java:151) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlMultiStageCoprocessor.start(MysqlMultiStageCoprocessor.java:84) at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:238) at java.lang.Thread.run(Thread.java:748) ] 2019-01-31 11:10:44.111 [destination = example , address = /127.0.0.1:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - prepare to find start position just show master status

步骤重现

1.mysql 环境均ok

2.canal在原配置文件的基础上修改内容为:

canal.properties canal.ip= 192.168.31.139

instance.properties

username/password

canal.instance.dbUsername=canal canal.instance.dbPassword=canal

出现这条语句后,在主库执行insert动作,必然报错,是因为环境没有搭建好么

2019-01-31 11:19:20.961 [destination = example , address = /127.0.0.1:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - prepare to find start position just show master status

原提问者GitHub用户pdudo

展开
收起
古拉古拉 2023-05-08 14:27:01 414 分享 版权
2 条回答
写回答
取消 提交回答
  • 找到问题,升级为canal.deployer-1.1.1就可以了

    原回答者GitHub用户pdudo

    2023-05-09 18:00:22
    赞同 展开评论
  • 随心分享,欢迎友善交流讨论:)

    从日志中可以看出,Canal在执行dump操作时,出现了IllegalArgumentException异常,导致Canal无法获取binlog的数据。原因可能是在dump过程中,Canal的线程池出现了问题,建议按照以下步骤进行排查:

    检查Canal的配置文件,确认binlog的正确配置参数,特别是需要配置server-id参数。

    检查Canal的线程池配置,确认线程池的核心线程数、最大线程数、队列大小等参数是否合理。

    检查当前MySQL数据库的使用情况,确认是否有其他进程正在占用MySQL资源,导致Canal无法获取binlog数据。

    检查Canal的日志,查看是否有其他异常信息,以确定具体的问题原因。

    如果以上方法无法解决问题,可以尝试升级Canal的版本,或者采用其他的数据同步方案,如使用MySQL自带的binlog同步功能。

    2023-05-08 14:39:57
    赞同 展开评论