备份不等于可恢复
备份任务成功只证明文件已写入;恢复演练才能证明这些文件能在要求时间内重建可工作的系统。
# 示例:恢复到隔离数据库
createdb restore_drill
pg_restore --dbname=restore_drill --clean --if-exists backup.dump
psql restore_drill -c "SELECT count(*) FROM accounts;"
步骤
- 选择保留期内的一份近期备份和一份较早备份,记录时间戳与存储位置。
- 在独立数据库或集群中恢复,移除生产凭据,绝不覆盖生产。
- 校验表数量、约束、索引和关键记录样本,与已知预期或校验和比较。
- 让预发应用连接恢复后的数据库,执行登录、读取和写入旅程。
- 记录恢复耗时、数据丢失窗口、手工步骤和失败项,与 RTO/RPO 比较。
验证
- 恢复完成且未触碰生产。
- 完整性检查通过。
- 预发应用能对恢复数据读写。
- 恢复时间已测量并与 RTO 比较。
- 每个差距都有负责人和整改计划。
决策点
至少每季度使用代表性备份演练,并在备份或基础设施变更后追加;年度演练容易错过漂移。恢复超过 RTO 属于真实的可靠性差距,应分配负责人和截止日期,而不是只记录文档。
常见失败
备份遗漏大表、事故时取不到凭据、手工步骤没有文档化。总是使用同一份近期备份也可能漏掉影响较早恢复点的损坏;应变化所选备份并记录确切流程。