繁体   English   中英

删除MongoDB数据库和集合

[英]Deleting MongoDB database and collections

我的mongoDB和当前的ubuntu 12.04台式计算机存在空间问题。 我一直使用默认设置,这意味着数据实际存储在/ var / lib / mongodb下。 到数据库大小大大增加的时候,现在我想删除一些集合以在硬盘驱动器中留出一些空白空间。 我已经检查了方法和其他方法,但是每当我运行remove函数时,我都会不断收到以下错误消息:

Can't take a write lock while out of disk space

我想到的第一个解决方案是将mongodb的路径设置为外部硬盘或USB磁盘,然后使用rm -rf物理删除该文件夹。 那是一个安全的解决方案吗? 还有其他解决方案吗?

Mongodb对于复制数据库非常有用,因为您要做的就是将完整的数据目录复制到其他位置,然后只需在它上指向一个新的mongod进程即可。

因此,您的步骤是:

  • 查找当前数据目录
  • 将此复制到另一个位置
  • 删除目录中具有.lock的任何文件(这将阻止Mongo重新加载)
  • 现在,使用以下命令启动另一个mongo:

     mongod --dbpath <path to new directory on new disk> --port 27020 

现在,这将打开一个新的mongo数据库(但在另一个端口上,以避免可能已经在运行的mongod出现任何问题)。 现在,您将在新磁盘上运行一个新mongod,而无需删除collections \\ dbs。 请记住,Mongodb贪婪,并且在删除集合时不会自愿放弃磁盘空间。 你需要跑步

 db.repairDatabase()

满意后,您可以安全地删除旧的mongodb数据目录,然后在其上复制新目录。

暂无
暂无

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

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