资讯文章 资讯 · NEWS
备份一直有,恢复从来没试过:目录站的容灾演练该怎么跑
2026-10-24 约 1,145 字 预计阅读 3 分钟 yiyunkj
备
备份成功和恢复成功是两件事。前者只说明文件写出来了,后者才说明业务能起来。中间隔着一整套没人碰过的步骤:去哪拿备份、密钥还在不在、配置对不对、图片能不能读出来。
演练的本质是把这些"以为没问题"的环节跑一遍,让它们出问题的时候是在演练里,而不是在事故里。

图片来源:网络,版权归原作者所有,侵权请联系删除
先把两个数字定下来
RPO 是能接受丢多少数据,RTO 是能接受多久恢复。这两个数不是技术指标,是业务指标,和站点可用性目标本来是一套东西,可用性该定到几个九那篇讲的就是怎么把它定成能考核的数字。
目录站的实际感受是:条目数据和用户提交记录,丢一天基本能接受(有日志可以补),所以 RPO 定 24 小时,每天全量加 binlog 增量就够。真正难的是 RTO,因为大头在文件:几十 GB 的缩略图和截图从对象存储拉回来要几小时,这个时间压不下去,只能靠预热和分级恢复——先把页面跑起来,图片慢慢回填。
分级恢复是我现在默认采用的方案:数据库先恢复,站点以"无图模式"上线,图片按访问热度异步回填。用户能查能搜,体验差一点,但不用等六个小时。
备份到底要备几样东西
只备数据库是最常见的漏法。完整的清单至少包括:数据库、上传的文件(缩略图、截图、附件)、配置文件、密钥和证书、定时任务定义、还有对象存储的生命周期规则。
后四样最容易漏,因为它们在代码仓库或者控制台里,不在服务器上。真到重建环境时,发现证书私钥没留、定时任务表没记、生命周期规则把冷数据删了,一样恢复不了。我的做法是把这些全部纳进同一份备份清单,每次演练逐项打勾。
| 演练项 | 建议频率 | 通过标准 |
|---|---|---|
| 数据库全量恢复 | 每季度 | 行数对得上,抽样条目页 200 |
| 文件恢复与回填 | 每半年 | 抽样图片可访问,无 403 |
| 配置与密钥恢复 | 每季度 | 站点能启动,HTTPS 正常 |
| 跨机房切换 | 每年 | DNS 生效后前台可访问 |
演练怎么跑才算数
三条要求:在独立环境跑,不许连生产;全程计时,不看文档先跑一遍,卡住的地方记下来;恢复完必须做校验。
校验不能只看"网站打开了"。我用的检查项是:条目总数和备份时点的记录对得上;随机抽 20 个条目页返回 200 且内容完整;搜索能出结果;后台能登录;图片抽样 50 张可访问。这几条过了,才算这次演练通过。
还有个细节,演练这天谁值班、谁有权决定是否切到备份环境,也要一起定。真出事的时候,最浪费时间的往往不是技术步骤,是"谁来拍这个板"。
3-2-1 这个老规矩
三份副本、两种介质、一份异地,说了十几年依然有效。对目录站来说,两种介质通常就是数据库 dump 加对象存储的跨区域复制;异地那份是关键,机房级别的事故虽然少见,一旦发生,同城的任何备份都救不了。
演练的价值不在演练本身,在于演练之后那份改进清单。我第一次跑完发现的问题有九个,其中三个是"根本没人知道这一步要做"。这些才是真正会要命的地方。