gpt4 book ai didi

mongodb - 删除 MongoDB 数据库和集合

转载 作者:可可西里 更新时间:2023-11-01 10:04:29 27 4
gpt4 key购买 nike

我在使用 mongoDB 和我当前的 ubuntu 12.04 台式机时遇到空间问题。我总是使用默认设置,这意味着数据物理存储在/var/lib/mongodb 下。到数据库大小大幅增长时,现在我想删除一些集合,以便在我的硬盘驱动器中留出一些空间。我检查了this和其他方法但是每当我运行删除函数时,我都会收到以下错误消息:

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 数据目录,然后将新的目录复制到它上面。

关于mongodb - 删除 MongoDB 数据库和集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22009057/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com