首页/数据/数据库速查/XtraBackup 恢复(copy-back / move-back)
备份与恢复56 条

XtraBackup 恢复(copy-back / move-back)

把 prepare 完成的备份拷回数据目录:--copy-back 保留备份目录、--move-back 直接移动;恢复前 datadir 必须为空且权限归 mysql。

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

物理备份怎么恢复

恢复物理备份就是把准备完成的文件拷回数据目录,工具给了两种方式:拷贝方式会保留备份目录,可以重复使用;移动方式直接搬移文件,省空间但备份目录被清空。恢复前有三个硬前提——实例必须停机、数据目录必须为空、目录属主必须是服务账号,任何一条不满足都会失败。

基本信息

拷贝方式保留备份目录,文件被复制
移动方式直接移动文件,备份目录被清空
前置条件实例停机、数据目录清空、属主正确
顺序先准备再拷回,顺序不能颠倒
验证启动后检查实例状态并抽样核对数据
回退原数据目录改名保留,便于失败回退

典型使用场景

  • 整实例恢复:磁盘损坏或数据被误删后的兜底手段
  • 从库重建:在从库上用物理备份快速拉起
  • 机房或机型迁移:整实例物理搬迁
  • 恢复演练:验证备份可用性与实际耗时
  • 同版本紧急回滚

恢复步骤

恢复步骤
systemctl stop mysqld   # 第一步:停实例
mv /var/lib/mysql /var/lib/mysql.bak   # 原目录改名保留,出问题可回退
mkdir -p /var/lib/mysql   # 目标目录必须为空
xtrabackup --copy-back --target-dir=/data/backup/base --datadir=/var/lib/mysql
chown -R mysql:mysql /var/lib/mysql   # 属主必须改回服务账号
systemctl start mysqld

两种方式对照

方式行为适用场景
拷贝方式保留备份目录,文件被复制需要重复使用同一份备份
移动方式直接移动文件,备份目录清空空间紧张或一次性的恢复
准备步骤恢复前必须完成未准备的产物无法恢复
数据目录必须为空非空时工具会拒绝执行
目录属主必须为服务账号属主错误会导致启动失败
回退方案原目录改名保留恢复失败时能退回原状态
恢复前把原数据目录改名保留:一旦恢复结果不符合预期还能退回原状态,直接删除就没有第二次机会了。
数据目录非空时拷回会被拒绝,目录属主未改回服务账号会导致实例启动失败,这两点几乎是最常见的恢复失败原因。

恢复检查清单

  • 确认备份已完成准备步骤
  • 确认实例已停止且没有残留进程
  • 确认数据目录已清空并预留足够空间
  • 恢复后检查目录属主与权限
  • 启动后抽样核对数据并确认错误日志无异常
物理恢复的时间主要花在文件拷贝与日志准备上:数据量越大越明显,恢复窗口要按实际演练耗时预留,而不是按备份耗时估算。

易错点

  • 数据目录非空时执行拷回:工具直接拒绝执行,恢复被中断,需要先确认目录状态
  • 忘记把目录属主改回服务账号:实例启动失败并报权限被拒,排查时容易误判成数据损坏
  • 用未完成准备的备份恢复:数据文件不一致,实例可能起不来或数据异常
  • 恢复前不做原目录改名:失败后无路可退,只能从更早的备份重来

数据来源与参考

  • Percona XtraBackup 文档: copy-back 恢复

相关工具

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