-
Notifications
You must be signed in to change notification settings - Fork 7.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
canal v1.1.7不支持mysql 8.0.33的binlog,Decoding Query的候报错java.io.IOException: Read Q_HRNOW error: limit excceed: 65 #4940
Comments
两个版本的mysql binlog配置一致,具体如下: |
|
@e345 先看一下这个版本修复,验证下percona |
非常感谢,马上验证下 ^_^ |
@agapple 您好! 8.0.33终于测通,同步数据没有报错了。 期间的小问题解决过程和一个小建议: |
如果不加-DCOMPILATION_COMMENT,默认的comment是啥行为? |
如果用二进制的,一般包含Percona特征,但通过Percona源码编译的默认是“Source distribution”,除非指定。 |
如果有其他更好的识别percona、mariadb、mysql的机制,也可以反馈给我 |
目前version_comment是相对规范可控的办法,当然如果能够在Decoding binlog第一条的时候进行binlog自适应判断,从binlog格式层面去自适应那是最好的,第一条decode确定好类型后,然后批量跑。 好消息:pxc 8.0.34-26, mysql 8.0.34运行没有报错,数据同步正常。 |
版本信息:
问题描述:
无法正确解析binglog,Decoding Query的时候报错java.io.IOException: Read Q_HRNOW error: limit excceed: 65
希官方对该版本的binlog兼容,谢谢啦!
补充说明:canal.deployer-1.1.7.tar.gz + pxc 8.0.30-22 相同配置可以正常解析binlog
详细报错信息
2023-11-08 08:34:16.753 [destination = cms , address = /192.168.199.11:33066 , EventParser] WARN com.taobao.tddl.dbsync.binlog.LogDecoder - Decoding Query failed from: bin-log.003032:4
java.io.IOException: Read Q_HRNOW error: limit excceed: 65
at com.taobao.tddl.dbsync.binlog.event.QueryLogEvent.unpackVariables(QueryLogEvent.java:750)
at com.taobao.tddl.dbsync.binlog.event.QueryLogEvent.(QueryLogEvent.java:499)
at com.taobao.tddl.dbsync.binlog.event.QueryLogEvent.(QueryLogEvent.java:442)
at com.taobao.tddl.dbsync.binlog.LogDecoder.decode(LogDecoder.java:196)
at com.taobao.tddl.dbsync.binlog.LogDecoder.decode(LogDecoder.java:82)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.seek(MysqlConnection.java:153)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findAsPerTimestampInSpecificLogFile(MysqlEventParser.java:775)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findByStartTimeStamp(MysqlEventParser.java:600)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPositionInternal(MysqlEventParser.java:522)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPosition(MysqlEventParser.java:360)
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$1.run(AbstractEventParser.java:186)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.IllegalArgumentException: limit excceed: 65
at com.taobao.tddl.dbsync.binlog.LogBuffer.forward(LogBuffer.java:130)
at com.taobao.tddl.dbsync.binlog.event.QueryLogEvent.unpackVariables(QueryLogEvent.java:718)
... 11 common frames omitted
2023-11-08 08:34:16.753 [destination = cms , address = /192.168.199.11:33066 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ERROR ## findAsPerTimestampInSpecificLogFile has an error
java.io.IOException: Read Q_HRNOW error: limit excceed: 65
at com.taobao.tddl.dbsync.binlog.event.QueryLogEvent.unpackVariables(QueryLogEvent.java:750)
at com.taobao.tddl.dbsync.binlog.event.QueryLogEvent.(QueryLogEvent.java:499)
at com.taobao.tddl.dbsync.binlog.event.QueryLogEvent.(QueryLogEvent.java:442)
at com.taobao.tddl.dbsync.binlog.LogDecoder.decode(LogDecoder.java:196)
at com.taobao.tddl.dbsync.binlog.LogDecoder.decode(LogDecoder.java:82)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.seek(MysqlConnection.java:153)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findAsPerTimestampInSpecificLogFile(MysqlEventParser.java:775)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findByStartTimeStamp(MysqlEventParser.java:600)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPositionInternal(MysqlEventParser.java:522)
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPosition(MysqlEventParser.java:360)
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$1.run(AbstractEventParser.java:186)
at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.IllegalArgumentException: limit excceed: 65
at com.taobao.tddl.dbsync.binlog.LogBuffer.forward(LogBuffer.java:130)
at com.taobao.tddl.dbsync.binlog.event.QueryLogEvent.unpackVariables(QueryLogEvent.java:718)
... 11 common frames omitted
The text was updated successfully, but these errors were encountered: