Skip to content

备份与恢复

MongoDB 的备份目标是保存一个可恢复的一致数据状态,并在需要时恢复到指定时间。复制集只保存当前数据副本,不能代替能够隔离误操作、恶意删除和集群级损坏的历史备份。


备份方式

方式特点适用边界
mongodump / mongorestore逻辑导出 BSON 与元数据,便于选择 Database/Collection大数据量耗时长,不是物理页级备份
文件系统快照快速保存数据文件时间点必须保证数据文件、Journal 与多个卷之间一致
复制集节点快照可在 Secondary 降低 Primary 影响仍需记录 Oplog 和快照一致点
托管连续备份自动快照并结合 Oplog 支持时间点恢复能力、保留期和恢复粒度取决于服务配置

复制集备份需要考虑写入持续发生时各文件或各 Shard 的一致性。简单复制正在运行的 dbPath 不等于有效热备份。


恢复范围

目标所需能力
恢复某个 Collection逻辑备份或独立的数据修复流程
恢复整个 Replica Set完整快照、配置和重新建立成员
Point-in-Time Recovery基础备份加连续的 Oplog 历史
Sharded Cluster 一致恢复各 Shard 与 Config Server 的协调备份和统一恢复点

Oplog 是循环覆盖的,当前 Oplog Window 不天然满足长期恢复保留。需要 PITR 时必须由备份系统持续捕获所需变化。


恢复验证

备份完成不代表能够恢复。恢复演练应验证:

  1. 备份文件、密钥和配置是否完整可读。
  2. 恢复后的 Document 数量、关键业务聚合和索引是否正确。
  3. 用户、角色、认证机制和连接配置是否可用。
  4. Replica Set、Shard、Config Server 元数据是否形成正确拓扑。
  5. 实际恢复耗时是否满足 RTO,目标时间是否满足 RPO。

备份应复制到独立账户或故障域,并设置不可变或最小删除权限,避免数据库凭据泄露时备份同时被删除。

参考资料