← 返回文章FIELD NOTE

备份真正有用之前,还差一次恢复演练

备份最容易制造一种错觉:只要定时任务显示成功,数据似乎就安全了。真正决定备份价值的,却是它能否在另一处环境中完整恢复。

先确定需要保护什么

一个常见的自托管服务通常不只有数据库,还可能包括:

  • 用户上传的图片和附件;
  • 应用配置与环境变量;
  • 数据加密所需的密钥;
  • 反向代理和证书配置;
  • 当前运行版本与部署文件。

只复制数据库,可能得到一份无法解密的数据;只复制应用目录,也可能遗漏独立的数据卷。

给备份加上可验证的信息

备份任务完成后,至少记录文件大小、生成时间和校验值:

sha256sum backup.tar.zst > backup.tar.zst.sha256

数据库还应该执行自身的完整性检查。例如 SQLite 可以对备份副本执行 PRAGMA integrity_check,而不是只确认文件非空。

定期从零恢复

恢复演练最好在隔离目录或临时机器中进行:

  1. 准备一个没有原始数据的干净环境;
  2. 按文档还原配置、密钥和数据;
  3. 启动服务并完成一次真实读取;
  4. 记录缺失步骤,更新恢复文档;
  5. 删除演练环境,避免留下第二套生产数据。

能够被恢复的备份,才是备份。其他文件只是尚未验证的希望。