是,mongodump 必须加 --oplog 才能实现副本集一致性备份,否则仅为静态快照;它要求连接稳定 primary、oplog 覆盖全程、且需同步导出 local.oplog.rs 并配合 mongorestore --oplogReplay 恢复。
mongodump 备份副本集时,不加 --oplog 就不是一致备份——它只保证单次快照,但无法捕获备份过程中发生的写入,恢复后可能丢失最后几秒数据。
--oplog 会让 mongodump 在导出数据的同时,把备份起止时间内的 oplog 条目也一并保存到 oplog.bson 文件中mongorestore --oplogReplay,否则只是“静态快照”,不是“可回放的一致点”cannot use --oplog against a secondary
--authenticationDatabase,否则可能因权限不足跳过部分数据库mongodump 连接的是主节点,但实际执行过程会强制主节点读取全部数据页,可能触发内存压力,逐出热点数据 → 线上查询变慢Users 和 users),会被覆盖 → 必须加 --archive 或改用 Linux 环境备份--oplog 要求副本集的 oplog 足够长,能覆盖整个备份耗时;若备份花了 10 分钟,而 oplog 只保留 5 分钟,mongorestore --oplogReplay 会失败并提示 oplog entry not found
-d 或 -c 限定范围时,--oplog 仍会捕获全量 oplog,但恢复时 mongorestore 默认只重放与目标库/集合匹配的 oplog 条目典型命令:
mongodump --host rs0/192.168.1.10:27017,192.168.1.11:27017,192.168.1.12:27017 --username admin --password pwd --authenticationDatabase admin --oplog --out /backup/mongo/20260721
--host rs0/...:用 replica set 名 + 成员列表方式连接,确保自动发现主节点--oplog:必须项,缺了就不是副本集级一致性备份--out 路径下会生成 oplog.bson 和各数据库子目录,不能是已有非空目录(否则报错)--oplog,但加 --db myapp;此时 oplog.bson 不会变小,只是恢复时过滤备份操作本身不难,难的是对 oplog 生命周期、文件系统限制、权限模型和性能扰动的预判——这些细节不提前检查,恢复时才发现数据不一致,就晚了。