前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >xtrabackup备份报错案例

xtrabackup备份报错案例

作者头像
SEian.G
发布2022-03-30 10:15:22
1.3K0
发布2022-03-30 10:15:22
举报
文章被收录于专栏:SEian.G学习记录SEian.G学习记录

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

代码语言:javascript
复制
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相关的系统变量:

代码语言:javascript
复制
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高峰期。

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA的辛酸事儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原因分析
  • 解决方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档