← 返回技术手记

备份之外,还需要一次真正的恢复验证

备份任务显示成功,只能说明完成了某个复制或导出步骤。能否在需要时恢复,还取决于备份内容是否完整、版本是否匹配,以及恢复过程是否清楚。

一、先列出需要恢复的内容

对于静态网站,文章、样式、图片和 Web 服务器配置通常是主要内容。对于带数据库的应用,还需要数据库数据、上传文件、运行版本和必要的环境配置。容器镜像存在,并不意味着挂载的数据卷已经得到备份。

可以为每个服务建立一份简短清单:数据放在哪里、由什么命令备份、保存多久,以及恢复时依赖哪些软件。涉及密钥的配置应单独保护,避免混入公开代码仓库或普通网站目录。

二、选择与数据类型匹配的方法

普通静态文件可以直接归档,但正在运行的数据库不能简单依赖文件复制。应使用数据库自身的导出或一致性备份能力,并了解导出期间的锁定和性能影响。

以静态网站为例,可以先生成归档,再记录校验值:

tar -czf site-backup.tar.gz -C /var/www example
sha256sum site-backup.tar.gz > site-backup.tar.gz.sha256
sha256sum -c site-backup.tar.gz.sha256

校验值用于发现传输损坏,不能证明文章、上传目录或数据库等业务内容没有遗漏。

三、避免所有副本处在同一故障范围

只把压缩包放在同一台服务器上,可以帮助回退误改,但无法应对整机磁盘损坏。重要数据应有独立位置的副本,并按变化速度保留多个历史版本。

备份频率要结合能接受的数据损失确定。一天备份一次,意味着极端情况下可能损失接近一天的变化。保留周期则要考虑误删被发现的时间,避免问题发现时所有旧版本都已覆盖。

四、在隔离目录中完成恢复演练

  1. 选择一个明确时间点的备份,验证文件完整性。
  2. 恢复到独立目录或测试实例,避免覆盖当前运行数据。
  3. 按照记录重建服务配置,并检查文件属主和权限。
  4. 核对页面、附件与关键业务数据是否可读。
  5. 记录耗时、遗漏项和额外依赖,再完善恢复清单。

如果只有原服务器上的某个脚本能够解释备份格式,那么脚本本身也需要保留。恢复步骤应当足够清楚,让未来的自己在没有原运行环境的情况下仍然能执行。

五、让日常维护留下可追溯记录

修改配置之前,保存带时间标记的原文件;修改之后,执行配置检查和外部访问验证。备份记录至少应包含执行时间、目标位置、结果及必要的错误信息,但不要把口令或令牌写入日志。

一份经过恢复验证的简短备份方案,通常比一个从未验证过的复杂流程更容易在故障时使用。

← 查看其他技术总结