我把canal重启了,然后不同步数据了
service中的logs/resourcesearch/resourcesearch.log文件报错
2021-03-04 09:44:22.399 [main] INFO c.a.otter.canal.instance.spring.CanalInstanceWithSpring - start CannalInstance for 1-resourcesearch
2021-03-04 09:44:22.410 [main] WARN c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table filter : ^zhqc_aj\..*$
2021-03-04 09:44:22.411 [main] WARN c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table black filter : ^mysql\.slave_.*$
2021-03-04 09:44:22.567 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> begin to find start position, it will be long time for reset or first position
2021-03-04 09:44:22.603 [main] INFO c.a.otter.canal.instance.core.AbstractCanalInstance - start successful....
2021-03-04 09:44:22.640 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] ERROR c.a.o.canal.parse.inbound.mysql.dbsync.DirectLogFetcher - I/O error while reading from client socket
java.io.IOException: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:102) ~[canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.seek(MysqlConnection.java:144) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findAsPerTimestampInSpecificLogFile(MysqlEventParser.java:760) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findPositionWithMasterIdAndTimestamp(MysqlEventParser.java:410) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPositionInternal(MysqlEventParser.java:455) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPosition(MysqlEventParser.java:369) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:194) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_275]
2021-03-04 09:44:22.641 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ERROR ## findAsPerTimestampInSpecificLogFile has an error
java.io.IOException: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:102) ~[canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.seek(MysqlConnection.java:144) ~[canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findAsPerTimestampInSpecificLogFile(MysqlEventParser.java:760) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findPositionWithMasterIdAndTimestamp(MysqlEventParser.java:410) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPositionInternal(MysqlEventParser.java:455) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPosition(MysqlEventParser.java:369) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:194) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_275]
2021-03-04 09:44:22.644 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - dump address /10.10.77.228:3306 has an error, retrying. caused by
com.alibaba.otter.canal.parse.exception.CanalParseException: [fixed timestamp] can't found begin/commit position before with fixed positionmall-mysql-bin.000001:4
2021-03-04 09:44:22.648 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:resourcesearch[com.alibaba.otter.canal.parse.exception.CanalParseException: [fixed timestamp] can't found begin/commit position before with fixed positionmall-mysql-bin.000001:4
]
2021-03-04 09:44:36.986 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> begin to find start position, it will be long time for reset or first position
2021-03-04 09:44:36.993 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] ERROR c.a.o.canal.parse.inbound.mysql.dbsync.DirectLogFetcher - I/O error while reading from client socket
java.io.IOException: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:102) ~[canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.seek(MysqlConnection.java:144) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findAsPerTimestampInSpecificLogFile(MysqlEventParser.java:760) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findPositionWithMasterIdAndTimestamp(MysqlEventParser.java:410) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPositionInternal(MysqlEventParser.java:455) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPosition(MysqlEventParser.java:369) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:194) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_275]
2021-03-04 09:44:36.993 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ERROR ## findAsPerTimestampInSpecificLogFile has an error
java.io.IOException: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:102) ~[canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.seek(MysqlConnection.java:144) ~[canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findAsPerTimestampInSpecificLogFile(MysqlEventParser.java:760) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findPositionWithMasterIdAndTimestamp(MysqlEventParser.java:410) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPositionInternal(MysqlEventParser.java:455) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPosition(MysqlEventParser.java:369) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:194) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_275]
2021-03-04 09:44:36.994 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - dump address /10.10.77.228:3306 has an error, retrying. caused by
com.alibaba.otter.canal.parse.exception.CanalParseException: [fixed timestamp] can't found begin/commit position before with fixed positionmall-mysql-bin.000001:4
2021-03-04 09:44:36.995 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:resourcesearch[com.alibaba.otter.canal.parse.exception.CanalParseException: [fixed timestamp] can't found begin/commit position before with fixed positionmall-mysql-bin.000001:4
]
2021-03-04 09:44:55.618 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> begin to find start position, it will be long time for reset or first position
2021-03-04 09:44:55.626 [destination = resourcesearch , address = /10.10.77.228:3306 , EventParser] ERROR c.a.o.canal.parse.inbound.mysql.dbsync.DirectLogFetcher - I/O error while reading from client socket
java.io.IOException: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.DirectLogFetcher.fetch(DirectLogFetcher.java:102) ~[canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.seek(MysqlConnection.java:144) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findAsPerTimestampInSpecificLogFile(MysqlEventParser.java:760) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findPositionWithMasterIdAndTimestamp(MysqlEventParser.java:410) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPositionInternal(MysqlEventParser.java:455) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPosition(MysqlEventParser.java:369) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:194) [canal.parse-1.1.5-SNAPSHOT.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_275]
重点log
java.io.IOException: Received error packet: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file
ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:resourcesearch[com.alibaba.otter.canal.parse.exception.CanalParseException: [fixed timestamp] can’t found begin/commit position before with fixed positionmall-mysql-bin.000001:4
]
按照网上的教程 https://blog.csdn.net/jingshenbusi/article/details/79920925
删除 meta.dat 重启无效
网上也没有好的办法,就去查canal的配置文件
就这篇: https://www.cnblogs.com/jager/p/6594941.html
看到配置
# position info,需要改成自己的数据库信息
canal.instance.master.address = 172.16.0.158:3306
canal.instance.master.journal.name =
canal.instance.master.position =
canal.instance.master.timestamp =
#canal.instance.standby.address =
#canal.instance.standby.journal.name =
#canal.instance.standby.position =
#canal.instance.standby.timestamp =
发现 canal.instance.master.journal.name 后面是空的
然后自己的配置文件 instance.properties 中是
canal.instance.master.journal.name=mall-mysql-bin.000001
而报错的内容是:can’t found begin/commit position before with fixed positionmall-mysql-bin.000001:4
就把配置文件中
canal.instance.master.journal.name=mall-mysql-bin.000001
修改为 canal.instance.master.journal.name=
重启完事!!!