修改网站前,先留下一个能恢复的版本
“有一个压缩包”和“可以恢复网站”并不是一回事。备份的价值,要通过恢复验证来确认。
1. 先分清网站由什么组成
- 程序与页面:源代码、构建产物、静态文件以及依赖锁定文件。
- 运行配置:反向代理配置、启动方式、环境变量的名称和安全保存的位置。
- 业务数据:数据库、用户上传文件和其他无法从代码重新生成的内容。
- 外部配置:域名解析、证书续期方式以及所依赖服务的信息。
代码仓库可以帮助保存程序版本,但不自动包含数据库和上传文件。密码、密钥和访问令牌不能放进公开仓库,也不能混入网页目录。
2. 避免得到不一致的数据
数据库仍在写入时,直接复制其文件可能无法得到一致的备份。应使用对应数据库支持的备份机制,或按照其要求暂停写入。采用 SQLite 时,也应注意日志文件与主数据库的一致性,不能默认只复制一个文件就足够。
3. 备份放在哪里
只保存在原服务器同一块磁盘上的备份,无法应对整台服务器或磁盘损坏。重要数据应保留独立副本,并限制读取权限。包含个人信息或密钥的备份,还应考虑加密和合适的保留期限。
4. 在独立位置试一次恢复
- 记录备份时间、文件范围及对应程序版本。
- 将备份恢复到独立目录或测试环境,避免覆盖当前服务。
- 确认页面能打开、关键文件存在,数据库可以读取。
- 确认测试环境不会发送真实通知、执行定时任务或重复处理线上业务。
- 把恢复步骤写下来,避免只能依靠记忆。
5. 更新后不要马上删除旧版本
发布新版本后,先检查首页、关键路径和服务日志。保留经过验证的旧版本与配置,在观察确认后再按保留策略清理。回退程序之前,也要检查新版本是否改变了数据结构,避免旧程序无法读取新数据。
最重要的检查:这个备份是否真的恢复成功过?