备份没验证过,等于没有备份
多数站点有备份,少数站点验证过能恢复。本文说明该备什么、放哪里、以及恢复演练要测到什么程度。
- 没有验证过能恢复的备份,完整性、可用性与耗时全是未知数。
- 上传文件与配置最容易被漏备,前者不在代码仓库、后者不能与代码同放。
- 备份与原站同机等于没防住误删与勒索,至少要异地,重要数据再加离线副本。
- 只保留最近一份很危险,损坏往往延迟发现时唯一备份已被覆盖。
- 演练要真恢复到独立环境并记录耗时,只验证能解压远远不够。
问「有没有备份」,多数回答是有。再问「上一次成功恢复是什么时候」,通常就答不上来了。没有验证过的备份只是一个让人安心的文件,它是否完整、能否恢复、需要多久,全是未知数。
要备什么
- 数据库:内容、用户、订单,这是最核心的部分;
- 上传文件:图片、附件、证件扫描件。它们通常不在代码仓库里,也最容易被漏掉;
- 配置:环境变量、证书、第三方密钥。这部分不能和代码放一起,但没有它恢复出来的系统跑不起来;
- 代码:如果有远程仓库,这一项风险最低,但要确认仓库本身也有备份。
放在哪里
备份与原站放在同一台服务器上,等于没有防住服务器故障、误删和勒索软件。至少要做到异地存储 —— 不同机房或不同服务商。对重要数据,再加一份离线或不可变存储,防的是攻击者拿到权限后连备份一起删掉。
保留多久
只保留最近一份是常见错误。数据损坏往往不是立刻被发现的,等到发现时,唯一的那份备份可能已经覆盖成损坏后的状态。合理做法是分级保留:最近几天每天一份、最近几周每周一份、最近几个月每月一份。
恢复演练要测到什么程度
真正把备份恢复到一个独立环境,启动起来,检查数据完整性。只验证文件能解压是不够的 —— 数据库版本不兼容、配置缺失、文件权限不对,这些都只有真恢复一次才会暴露。
演练同时要记录耗时。知道「完整恢复需要四个小时」,和以为「应该很快」,在事故发生时是完全不同的两种处境 —— 前者可以据此决定是修复还是回滚,后者只能一边恢复一边猜。
把它排进日程
备份脚本会失败:磁盘满、权限变更、路径调整、凭据过期。所以除了定期演练,还要监控备份任务本身是否成功执行、产物大小是否正常 —— 一个长期只有几 KB 的备份文件,说明它早就空了。相关运维约定见合作流程与平台与系统开发。
常见问题
网站备份应该备哪些内容?
四项:数据库、用户上传的文件、配置与密钥、代码。上传文件通常不在代码仓库里最容易漏,配置与密钥不能和代码放在一起但缺了就恢复不起来。代码若有远程仓库风险最低,但仍要确认仓库本身也有备份。
备份多久做一次、保留多久?
频率按可接受的数据丢失量决定,内容站通常每日一次即可。保留应当分级:最近几天每天一份、最近几周每周一份、最近几个月每月一份。只保留最新一份时,延迟发现的数据损坏会把唯一备份覆盖掉。
怎么验证备份真的可用?
恢复到一个独立环境并实际启动,检查数据完整性,同时记录整个过程的耗时。只验证压缩包能解开远远不够——数据库版本不兼容、配置缺失、文件权限错误这些问题只有真恢复一次才会暴露。
参考资料
- Cloudflare SSL/TLS Documentation · Cloudflare
- HTTPS – Advanced Administration Handbook · WordPress.org