1

我有一个由 8 个分片组成的 mongodb 集群,其中包含许多数据库。我们已经对大的集合进行了分片,而其他集合则不分片。过去的某个时候,当我们运行 2.0 时,我们移除了两个分片,所以这两个分片进入了耗尽状态。由于这些分片上有未分片的集合,因此排水永远无法完成。

现在,当我们将集群升级到 2.2 时,我试图摆脱这两个分片(耗尽的分片)。所以我把所有的原色移到其他分片并试图删除分片,我得到了这个:

mongos> db.runCommand( { removeShard: "shard0000" } )
{ "ok" : 0, "errmsg" : "Can't have more than one draining shard at a time" }

现在我无法移除任何碎片。我希望有人会知道发生了什么以及如何解决它。

提前致谢。

4

2 回答 2

1

要完成删除操作,请检查状态,如果块移动已完成,请再运行一次删除命令。这将“完成”删除命令并允许运行另一个删除碎片命令。

于 2013-12-31T23:12:10.377 回答
1

我认为自己回答这个问题会很好,因为以后我可以找到摆脱这种情况的方法。我所做的是:首先,将原色从分片移到另一个分片。当所有主节点都移动到另一个分片时,我手动从 config.shard 集合中删除了该条目。最后重新启动了mongos。如果您有多个 mongos,则重新启动所有 mongos'。

于 2013-06-05T06:06:15.113 回答