【问题标题】:Force drop a collection in MongoDB强制删除 MongoDB 中的集合
【发布时间】:2011-07-12 01:02:59
【问题描述】:

我无法删除它每次都告诉我false 的集合..

我做了一个getCollections(),它给了我很多tmp.mr.mapreduce_1299189206_1618_inc(我想删除的那些)我以为它们在断开连接时被删除了,但它们不是(就我而言)。

然后当我这样做时:db["tmp.mr.mapreduce_1299188705_5595"].drop() 我总是得到false 并且它没有被删除。

日志并没有真正的帮助:

Wed Mar  9 11:05:51 [conn4] CMD: drop customers.tmp.mr.mapreduce_1299188705_5595

现在我的命名空间已用尽,我无法创建更多集合帮助?

顺便说一句,我可以放下,这不是生产(甚至在生产中我也可以放下它)。

【问题讨论】:

  • 你尝试重启你的 mongodb 了吗?
  • 好吧,现在我可以插入和创建新集合,但它们仍然被列出,这正常吗?
  • 现在可以放下了吗?还是仍然返回 false ?
  • 您当前的配置是什么?这是单节点、副本集、分片、分片和副本集吗?你运行的是什么版本?
  • @DhruvPathak 这不是真的。每个数据库可以跨越多个文件。

标签: collections mongodb


【解决方案1】:

现在我的命名空间已用尽,我无法创建更多集合帮助?

默认情况下,MongoDB 有 20k 个命名空间,所以有很多死的 M/R 集合。根据日志,数据库正在收到删除集合的请求。所以现在的问题是 MongoDB 是否已经进入了糟糕的状态。

你能把它取下来重新启动以确保所有连接都关闭吗?

数据量大吗?你能把它取下来运行 --repair 吗?

【讨论】:

  • 修复,修复了一些我无法删除的索引,为我节省了一些空间,问题是仍然有一些死的 m/r 集合,我只是决定删除数据库并重新迁移.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 1970-01-01
  • 2014-05-12
  • 2012-11-19
  • 1970-01-01
  • 2011-04-23
相关资源
最近更新 更多