• 欢迎访问DBA的辛酸事儿,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 欢迎大家关注博主公众号:DBA的辛酸事儿
  • 博文中若有错误的地方,请大家指正,大家的指正是我前进的动力

xtrabackup备份报错:expected log block no. 172665700, but got no. 176859996 from the log file.

MySQL SEian.G 3年前 (2022-02-16) 1694次浏览 已收录 0个评论
文章目录[隐藏]

最近发现隔几天就会出现一台实例备份失败的情况,具体的报错信息如下所示

xtrabackup: error: log block numbers mismatch:
xtrabackup: error: expected log block no. 172665700, but got no. 176859996 from the log file.
xtrabackup: error: it looks like InnoDB log has wrapped around before xtrabackup could process all records due to either log copying being too slow,
or log files being too small.
xtrabackup: Error: xtrabackup_copy_logfile() failed.

原因分析

备份失败原因在xtrabackup的输出信息中已经有说明:log block numbers mismatch,大概的意思是说:XtraBackup在顺序拷贝完redo log末尾的数据后,重新从redo log的起始位置去拷贝时,发现起始位置的log block no.与刚才尾部的no.不连续。

expected log block no. 172665700, but got no. 176859996 from the log file.,本应该读取的redo 块是no. 172665700,但是只能获取到no. 176859996

读redo错误的原因:it looks like InnoDB log has wrapped around before xtrabackup could process all records due to either log copying being too slow,

要么xtrabackup读取redo的速度太慢了,或者redo 文件太小了,导致读取速度跟不上redo文件的切换速度,在读取之前,相应的redo块已经被覆盖了。

1、检查redo log相关的系统变量:

innodb_log_file_size=1073741824
innodb_log_files_in_group=2

从以上设置可以看出,设置的redo log大小是2 * 1024M,文件大小设置的一般情况可以满足需求。

2、检查实例在备份时间左右的负载,发现实例的整体负载都正常,没发现异常;

3、此时又想起了一件事,最近将8个分布式集群的的配置方式调整成了全量备份,并且远程备份传输;

检查备份机的监控,发现备份机的压力比较大,所以出现网络带宽小而导致拥堵的情况

解决方法

由于innodb_log_file_size变量不能动态更改,暂时也不能重启数据库更改变量值,并且备份失败的原因也不在redo大小设置的问题。所以将XtraBackup的开始时间推迟了一段时间,以错开集群备份时的IO高峰期。

备份计划推迟后,经过一周的观察,该实例的备份没有再次出现错误。

xtrabackup备份报错:expected log block no. 172665700, but got no. 176859996 from the log file.


如果您觉得本站对你有帮助,那么可以收藏和推荐本站,帮助本站更好地发展,在此谢过各位网友的支持。
转载请注明原文链接:xtrabackup备份报错:expected log block no. 172665700, but got no. 176859996 from the log file.
喜欢 (2)
SEian.G
关于作者:
用心去记录工作,用心去感受生活,用心去学着成长;座右铭:苦练七十二变,笑对八十一难
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址