tidb 上游mysql 下游tidb 使用dm同步,报错"get binlog event error: ERROR 1236 (HY000): Could not find first log file name in binary log index file

【 TiDB 使用环境】生产环境
【 TiDB 版本】 V7.5.0
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
问题是这样的,使用dm向tidb同步mysql的数据。报错信息截图如下:
},
“subTaskStatus”: [
{
“name”: “order-migrate-other”,
“stage”: “Paused”,
“unit”: “Sync”,
“result”: {
“isCanceled”: false,
“errors”: [
{
“ErrCode”: 36069,
“ErrClass”: “sync-unit”,
“ErrScope”: “upstream”,
“ErrLevel”: “high”,
“Message”: “get binlog event error: ERROR 1236 (HY000): Could not find first log file name in binary log index file”,
“RawCause”: “”,
“Workaround”: “Please check if the binlog file could be parsed by mysqlbinlog.”
}
],
“detail”: null
},
“unresolvedDDLLockID”: “”,
“sync”: {
“totalEvents”: “12”,
“totalTps”: “0”,
“recentTps”: “0”,
“masterBinlog”: “(mysql-bin.087559, 1048413401)”,
“masterBinlogGtid”: “”,
“syncerBinlog”: “(mysql-bin.086999, 47836715)”,
“syncerBinlogGtid”: “”,
“blockingDDLs”: [

在上游的mysql 查看,由于mysql的binlog自动清理1天前的binlog,确实应该是已经清理了,现在想从


上游的mysql 存在的binlog中进行恢复,如mysql-bin.087449
尝试方式,在task的任务配置文件中


制定master 的binlog
启动后信息

【附件:截图/日志/监控】

dm有个 Relay Log功能,开启试试
https://docs.pingcap.com/zh/tidb/stable/relay-log#dm-relay-log

2 个赞

大意是,上游的mysql binlog目录下的index文件里面没有找到对应的binlog文件名。

1711363112393

可以去上游看看是否如此。

上游 binlog 被清理了。。。。

缺是是没有了

1 个赞

是的呢

要从最新 binlog 点位继续,最简单的方法是换一个任务名,或者启动任务时有个清理缓存的传参数,你可以 start-task 看下提示
问题是这样做两边数据就不一致了,建议重新全量+增量吧

没搞过,收获经验喽!

不是,你binlog中间已经缺失了,这同步还有意义嘛?重新全量+增量同步吧。。。

重新做全量+增量是最好的建议

这种情况,重新来做比较好

应该是上游的binlog不存在了,可以开启dm relay log

既然要同步的 binlog 已经被清理掉了,就无法再用旧binlog 来实现同步了。解决办法就是重新做主从吧,导出全量数据恢复到tidb ,再用最新的binlog 搭建实时同步

保留1天binlog太少了,生产最少3天

重新同步吧

删除数据,重新同步,唯一不会丢数的做法了,,