2012-11-27 63 views
0

我有一个配置服务器和5个分片的mongodb设置。 使用db.dropDatabase()命令成功删除数据库后, show dbs仍列出数据库并且磁盘空间未被释放。 此外,如果我再次连接到数据库并开始插入,则数据库将从先前使用的任何磁盘空间建立起来,即使在丢弃数据库之前的数据不再可访问之前。删除数据库不释放磁盘空间

+0

您正在使用哪个版本的MongoDB? –

+0

最新版本2.2.1 ... –

+0

您是否正在尝试'db.dropDatabase()'形成'mongos' shell或其中一个碎片?您可以确认哪些节点已删除数据库文件,因为五个分片节点中的至少一些节点在dbpath中应该没有该数据库的文件。 –

回答

0

您是否切换到数据库丢失之前?

use database_to_drop 
db.dropDatabase() 
+0

是的,我做到了。 –

0

如果你当你发出的命令dropDatabase()有你mongos和碎片之间的连接问题,那么你可能有过这样的问题。这已经看到类似下面的内容外壳:

{ 
    "errmsg" : "exception: socket exception [CONNECT_ERROR] for <shard>", 
    "code" : 11002, 
    "ok" : 0 
} 

由于连接无法在mongos和由碎片的节点,或主要为碎片之间建立,如果它是一个副本集,然后数据库不能被删除。如果分片没有主分片,情况也是如此,因为分片将是只读的。

相关问题