应用写锁定之前Mongodb正常退出

时间:2013-08-05 10:07:41

标签: mongodb scrapy

我正在使用python,scrapy,MongoDB进行网络抓取项目。我曾经每天刮掉40Gb的数据。 mongodb.conf文件中是否有方法或设置,以便MongoDB在由于磁盘已满错误而在db上应用写锁定之前将正常退出?

因为每次我在MongoDB中遇到磁盘完全错误的问题。然后我必须手动重新安装MongoDB以从db中删除写入锁。我无法在数据库上运行repair和compact命令,因为运行此命令也需要可用空间。

1 个答案:

答案 0 :(得分:0)

在某些情况下,MongoDB不能很好地处理磁盘已满的错误,但您不必卸载然后重新安装MongoDB以删除锁定文件。相反,您可以mongod.lock从中提交文件。只要启用了日记功能,您的数据就应该很好。当然,在那一刻,您无法向MongoDB数据库添加更多数据。

如果您确实从MongoDB中删除了数据,则可能不需要repaircompactcompact 压缩数据,因此仅在您确实删除了数据时才有用。

不断添加,然后再删除会导致碎片,并且大量磁盘空间未被使用。您可以通过使用可以在集合上设置的userPowerOf2Sizes option来阻止这种情况。 compact通过重写数据库文件来缓解这种情况,但正如您所说,您需要可用的磁盘空间。我建议你也添加一些监控,以便在数据大小达到整个磁盘空间的50%时发出警告。在这种情况下,仍然有足够的时间使用compact来回收未使用的空间。