外观
3.3 恢复验证流程
约 528 字
备份恢复
本页对应「三、操作步骤」的 3.3,完成恢复验证流程。返回上级:自动备份方案说明。
前置条件
- 已有一份校验通过的备份文件,文件名含日期与时间戳。
- 在数据库中有创建与删除临时库的权限。
- 恢复操作在非生产目录与临时库进行,生产目录保持只读访问。
操作步骤
- 准备恢复目录并解包站点文件。
sudo install -d -m 750 -o deploy -g deploy /srv/axis/restore-test
cd /srv/axis/restore-test
tar -xzf /srv/axis/backup/daily/axis-files-2026-06-08_0330.tar.gz
ls -l /srv/axis/restore-test/www | head- 创建临时库并导入数据。
mysql -h 127.0.0.1 -u root -p -e "CREATE DATABASE axis_restore_test CHARACTER SET utf8mb4;"
gunzip -c /srv/axis/backup/daily/axis-db-2026-06-08_0330.sql.gz | mysql -h 127.0.0.1 -u root -p axis_restore_test
echo "import_exit=$?"- 对比关键表行数,确认数据量一致。
mysql -h 127.0.0.1 -u root -p -N -e "SELECT COUNT(*) FROM axis_restore_test.articles;"
mysql -h 127.0.0.1 -u root -p -N -e "SELECT COUNT(*) FROM axis.articles;"- 抽查文件完整性与数量,记录耗时作为 RTO 参考。
find /srv/axis/restore-test/www -type f | wc -l
find /srv/axis/www -type f | wc -l
sha256sum /srv/axis/restore-test/www/index.html- 清理测试环境,避免占用磁盘与误用数据。
mysql -h 127.0.0.1 -u root -p -e "DROP DATABASE axis_restore_test;"
sudo rm -rf /srv/axis/restore-test结果确认
- 导入过程无 SQL 报错,
import_exit=0。 - 关键表行数与生产一致;文件数量差异仅来自日志与备份目录的排除项。
- 抽查文件的 sha256 与源文件一致,
gzip -t无报错。 - 从解包到可查询的总耗时已记录,并写回运维台账作为恢复时间基线。
注意事项
- 恢复验证必须在非生产库与临时目录进行,禁止直接覆盖生产目录。
- 每月至少执行一次完整恢复验证,并在备份记录中登记日期、文件与结果。
- 若导入报 ERROR 1273,说明备份与目标库字符集或排序规则不一致,先统一为 utf8mb4 再导入。
- 验证结束后清理临时库与目录,避免敏感数据长期滞留。