可能重复:
Auto compact the deleted space in mongodb?MongoDB的数据删除 - 回收磁盘空间
我的理解是,在删除操作MongoDB中不会释放磁盘空间,但根据需要将重用。
- 这是正确的吗?
- 如果不是,我会运行修复命令吗?
- 修复可以在活的mongo实例上运行吗?
可能重复:
Auto compact the deleted space in mongodb?MongoDB的数据删除 - 回收磁盘空间
我的理解是,在删除操作MongoDB中不会释放磁盘空间,但根据需要将重用。
db.repairDatabase()
以缩小数据库大小。这有点这个问题的MongoDB的副本的......
Auto compact the deleted space in mongodb?
查看怎么说答案细节...
还可以看到此相关的博客文章:http://learnmongo.com/posts/compacting-mongodb-data-files/
我有另一种解决方案可能工作不是做db.repairDatabase(),如果您不能负担的系统更好地被锁定,或者不要没有双倍的存储空间。
您必须使用副本集。
我的想法是,一旦你已经删除了吞噬你的磁盘的所有多余数据,停止一个辅助副本,擦除它的数据目录,启动它并让它与主节点重新同步。重复与其他次级人物,一次一个。
在主设备上,执行rs.stepDown()以将MASTER切换到其中一个同步辅助设备,现在停止此设备,擦除它并重新同步。
该过程非常耗时,但执行rs.stepDown()时应该只花费几秒钟的停机时间。
虽然您可以在实时系统上运行修复,但它会使其不可用,因为它在运行时锁定服务器;我认为这实际上意味着如果您打算继续使用该实例,则无法在实例上运行它。 – 2011-04-03 14:39:44