我正在为 mongo 设置备份策略,只是想知道 mongodump 在执行数据库转储之前是否锁定了数据库?
2 回答
我在mongo 的 google group上找到了这个:
Mongodump 对实时系统进行简单查询,不需要关闭。像所有查询一样,它在运行时需要读锁,但不会比普通查询阻塞。
如果您有一个副本集,您可能希望使用 --oplog 标志来进行备份。
有关更多信息,请参阅文档
另外我发现了这个以前问过的问题
摘自上述问题
只有当您没有繁重的写入负载时,才可以选择锁定和复制文件。
mongodump
可以针对实时服务器运行。它会产生一些额外的负载,所以不要在高峰时段这样做。此外,建议在辅助节点上执行此操作(如果您不使用副本集,则应该这样做)。当您拥有一个大到没有一台机器可以容纳它的数据库时,会出现一些复杂情况。请参阅此文档。
此外,如果您有副本集,则删除其中一个辅助节点并直接复制其文件。请参阅http://www.mongodb.org/display/DOCS/Backups:
Mongdump 不锁定数据库。这意味着其他读写操作将继续正常进行。
实际上, mongodump 和 mongorestore 都是非阻塞的。因此,如果您想 mongodump mongorestore 一个数据库,那么您有责任确保它确实是所需的快照备份/恢复。为此,您必须在使用 mongodump/mongorestore 进行/恢复备份时停止所有其他写入操作。如果您正在运行分片环境,那么建议您也停止平衡器。