我有mongodb设置了一个配置服务器和5个分片。
使用db.dropDatabase()
命令成功删除数据库后,
show dbs
仍然列出数据库,并且磁盘空间未被释放。
此外,如果我再次连接到数据库并开始插入,则数据库将从之前使用的任何磁盘空间构建,即使在删除数据库之前的数据不再可访问之前...
答案 0 :(得分:0)
你在放弃之前是否切换到了数据库?
use database_to_drop
db.dropDatabase()
答案 1 :(得分:0)
如果您在发出mongos
命令时dropDatabase()
与分片之间存在连接问题,那么您可能遇到此问题。这可以在shell中看到类似于以下内容:
{
"errmsg" : "exception: socket exception [CONNECT_ERROR] for <shard>",
"code" : 11002,
"ok" : 0
}
由于无法在mongos
和构成分片的节点之间建立连接,或者如果该分片是副本集,则无法建立连接,因此无法删除数据库。如果分片没有Primary,则同样如此,因为分片将是只读的。