繁体   English   中英

MongoDB磁盘空间回收

[英]MongoDB disk space reclamation

我对MongoDB repairDatabase和compact命令都很熟悉,但是它们似乎都锁定了数据库和/或集合。 是否有另一种方法可以在实质上不关闭数据库的情况下回收已删除的磁盘空间? 这方面的最佳做法是什么? 谢谢!

最佳实践可能取决于您的架构和应用程序的功能。 这是我的用例,也许您可​​以学到一些东西...我的应用程序正在存储大量带时间戳的数据样本。 从大型存储中删除数据是一项非常昂贵的操作,当您尝试在实时系统上进行操作时,这将变得更加复杂。 过去,MongoDB在将磁盘空间回收回OS时遇到了几个问题,我们不得不绕过这一步,不确定它现在有多好。 但是,我们所做的一切都解决了所有问题-我们以这种方式对数据进行了分区,以便我们可以通过简单地转储整个数据库来处理旧数据。 删除mongodb数据库是一种非常便宜且高效的操作,即使删除TB时也几乎是瞬时的。 请注意,删除集合不如删除数据库有效,这实际上是解决方案的关键。 为此,我们必须重新设计架构。。当然,您的情况可能有所不同,但是从中学到的教训是,从大容量存储中删除数据非常昂贵。

当前最好的方法是运行“主从设置”。 关闭1个mongod实例,然后使其重新同步。

此处有更多详细信息: 减少MongoDB数据库文件的大小

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM