首页/数据/NoSQL 速查/备份恢复演练:从 RPO/RTO 到实操
选型与架构50 条

备份恢复演练:从 RPO/RTO 到实操

备份只有在恢复演练过才算可用:先定义 RPO(可丢多少数据)与 RTO(可停多久),再定期在隔离环境执行恢复、校验数据并记录耗时。演练要覆盖部分恢复(单库、单集合、单索引)与全量恢复两类场景。

NoSQL 速查数据更新于 2026-10-12

演练步骤示例(MongoDB)

演练步骤示例(MongoDB)
# 1) 恢复到一个隔离实例并改名命名空间,避免覆盖线上
mongorestore --uri="mongodb://127.0.0.1:27018" \
  --nsFrom="app.*" --nsTo="verify.*" /backup/mongo-20261012

# 2) 行数与关键聚合比对(线上 vs 恢复实例)
mongosh "mongodb://127.0.0.1:27018/verify" --eval \
  "db.orders.countDocuments(); db.orders.aggregate([{ \$group: { _id: null, total: { \$sum: \$amount } } }])"
记录项恢复开始/结束时间、数据量、校验结果、发现的问题与修复动作
频率按数据重要度安排(季度或月度),版本升级与大变更前加做一次
场景全量恢复、时间点恢复、单集合/单索引恢复、跨版本恢复
演练暴露的问题(脚本失效、权限缺失、耗时超预期)要在平静期修复,而不是在故障当天边处理边发现。

易错点

  • 只验证备份文件存在,从不验证可恢复性:损坏或不完整的备份在事故时才暴露
  • 恢复耗时从未测量:RTO 只能凭猜测回答,业务对停机时间的预期落空

数据来源与参考

  • MongoDB Manual: Backup and restore with mongodump
  • Elasticsearch Guide: Restore a snapshot
  • InfluxData Docs: Back up and restore data
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌