主机指南服务器选购 · 线路分析 · 建站实践
返回文章列表

VPS 备份怎么做?把快照、数据库和恢复演练组成真正可用的方案

主机指南

备份任务成功,不代表网站一定能恢复。本文用内容站的实际场景,讲清备份范围、保留周期、异地副本和恢复验证,给出一套可以逐项执行的方案。

先看结论

备份要同时覆盖数据、文件和恢复所需配置;保留独立副本与历史版本,并定期从零恢复一次。

一、先回答两个时间问题

如果网站现在故障,你最多愿意丢失多久的数据?又希望多久恢复访问?这分别对应恢复点目标 RPO 与恢复时间目标 RTO。AWS 的恢复目标文档用这两个指标指导恢复策略。[1]

假设博客每天更新一次,丢失当天修改已经令人不舒服;一个不断接收订单的网站,可能连数小时数据都不能丢。我们建议先按业务写出目标,再选择备份频率。不要因为面板默认每日一次,就认为这对所有网站都足够。

二、网站目录不是完整网站

对常见 WordPress 站,文章、评论等内容在数据库里,主题、插件和上传图片在文件里。官方备份文档明确说明,完整恢复通常需要数据库和文件两部分;下载网站目录不能自动得到数据库备份。[2]

此外还要保存必要的配置与说明:运行环境版本、站点入口、定时任务、邮件服务配置、证书续期方式。凭证应加密存储并限制访问;不要为了便于恢复,把数据库密码放进公开仓库或未保护的压缩包。

内容 为什么要备份 恢复时要验证
数据库 文章、设置、订单等结构化数据 能导入且数据逻辑完整
上传文件 图片、附件、用户上传资料 数据库里的链接能找到文件
代码与配置 程序运行和部署方式 版本及环境相互兼容
恢复说明 避免只靠某个人的记忆 别人也能按步骤操作

三、快照很方便,但要理解一致性

快照通常适合回滚环境或加速整机恢复,但创建时应用还在写数据,可能需要额外步骤才能得到应用一致的数据。以 Amazon EBS 为例,官方建议创建快照前暂停写入,以获得一致且完整的快照;不同平台和备份工具的处理方法要分别确认。[3]

对数据库,不应只把正在使用的数据目录打包就认定完成备份。使用数据库支持的备份方式,并安排文件与数据库在逻辑上匹配。例如恢复到昨天的数据库,却使用今天被替换的上传文件,可能出现缺图或附件不一致。

四、独立副本防的,是共同故障

同一账号中的服务器和快照,可能一起受账号失去访问、误操作或权限问题影响。独立副本应考虑位置和权限上的分离:把恢复所需数据放在另一处,使用与日常服务器不同的访问方式,并保留受保护的历史版本。

有副本但没有解密密钥,也恢复不了。把密钥、恢复步骤和联系渠道纳入演练。同步也不能替代历史备份:若错误删除立即同步到另一处,你只是得到两个同样缺数据的位置。

五、给内容站一份可调整的计划

以下是一个起点示例:数据库每日备份,上传目录按变动频率备份,重大更新前额外创建恢复点;保留近期每日版本,再保留较稀疏的较早版本。副本存放在独立位置,每月抽取一次完整恢复演练。频率应按你的 RPO、数据变化和存储费用调整。

每次记录备份是否结束、文件大小是否异常、是否有缺失、保留策略是否执行。失败要能被发现,而不是等到故障才看到三个月前的红色日志。AWS Backup 的责任说明同样强调定期验证恢复能力。[4]

六、恢复演练要验证业务,不只验证解压

  1. 在隔离测试环境准备兼容的系统与程序版本。
  2. 恢复文件、导入数据库,并更新测试环境配置。
  3. 检查首页、文章、图片、登录与表单等核心流程。
  4. 测试环境禁用真实邮件发送、付款与其他外部写入。
  5. 记录耗时、缺失步骤与需要的权限,修正文档。

如果无法从现有副本恢复,优先修复备份链路,而不是购买更大的备份空间。我们的判断标准很简单:能够完成一次可重复的恢复,才算拥有一套可用的备份方案。

常见问题:有 RAID,还需要备份吗?

需要。硬件冗余可以应对部分磁盘故障,但误删除、应用错误、账号问题与历史数据回退,需要不同的保护方法。采购时分别询问硬件冗余和数据恢复功能,不把它们当作同一件事。

技术资料

  1. AWS:制定数据损失与停机恢复目标
  2. WordPress:文件和数据库备份
  3. AWS:EBS 快照的一致性要求
  4. AWS Backup:定期验证恢复能力