首页/数据/数据库速查/备份失败常见原因排查表
备份与恢复56 条

备份失败常见原因排查表

备份失败集中在五类:磁盘满、权限不足、锁等待、网络中断、工具版本错配;按报错关键字对号入座,逐一排查。

数据库速查数据更新于 2026-10-13

备份失败怎么查

备份失败的原因高度集中在几类:目标磁盘写满、账号权限或凭据问题、锁等待超时、网络中断与包大小限制、备份工具与实例版本不匹配。排查顺序建议先看备份日志尾部与退出码,再按报错关键字对号入座,最后才怀疑偶发因素,这样比从现象猜起快得多。

基本信息

适用平台mysqldump、mydumper、XtraBackup 等备份链路
首查位置备份日志尾部与脚本退出码
常见大类空间、权限、锁、网络、版本
验证手段df -h、SHOW PROCESSLIST、产物体积趋势
兜底要求失败必须有告警,不能只看任务是否执行

典型使用场景

  • 凌晨备份任务告警,需要在早高峰前定位并补做一次
  • 备份一直「成功」但产物体积突然变小,怀疑数据不完整
  • 新增表或大表后备份窗口被拉长,开始出现超时失败
  • 迁移到新机器后备份账号权限未对齐导致认证失败
  • 备份产物上传对象存储失败,需要区分本地生成与远端传输两类问题

报错关键字与处置

报错关键字常见原因处置
No space left on device备份盘写满清理与扩容备份盘,检查轮转与保留策略
Access denied账号权限或密码不对核对 GRANT 与 my.cnf 中的凭据
Lock wait timeout exceeded锁等待超时避开长事务,检查是否与备份争抢全局锁
Lost connection / 2013网络中断或包过大检查链路并核对 max_allowed_packet
Exec format error / unsupported工具与实例版本不匹配换成对应版本的工具或升级
Got error 28 / 磁盘类错误临时目录空间不足检查 tmpdir 所在分区余量

快速自查命令

快速自查命令
df -h /data/backup                 # 备份盘与临时目录余量
tail -100 /var/log/mysql_backup.log | grep -iE 'error|fail'
mysql -e "SHOW PROCESSLIST" | head -20   # 长事务与锁等待
mysql -e "SHOW VARIABLES LIKE 'max_allowed_packet'"
ls -lh /data/backup | tail -5      # 产物体积趋势,突变即可疑
echo $?                             # 脚本退出码,非 0 必须告警
备份失败先看日志尾部与退出码,那里通常直接写明是哪一段失败;监控只看任务是否被触发、不看退出码与产物校验的话,失败会被长期静默。
磁盘写满后只在监控层面清理旧文件而不修轮转与保留策略,同样的失败会在下一个周期复发,并且每次都会留下无法使用的截断文件。

易错点

  • 只监控任务是否执行:备份失败被静默,直到需要恢复时才发现没有可用备份
  • 备份期间业务出现长事务:FTWRL 或元数据锁拿不到,备份超时失败,需与业务方约定避开时段
  • 忽略产物体积突变:体积骤降往往意味着某张表被跳过或导出中断,比报错更隐蔽
  • 备份与恢复用同一块盘:备份盘写满的同时也失去了回滚能力,目录与存储介质应分开

数据来源与参考

  • MySQL 8.0 Reference Manual: 错误码
  • Percona XtraBackup 文档: 故障排查

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌