2013-02-22 37 views
1

我有一个由8个包含大量数据库的碎片组成的mongodb集群。我们已经分割了很大的收藏品,并且让其他的收藏品不受束缚。过去有些时候,当我们运行2.0时,我们删除了两个碎片,所以这两个碎片进入了耗尽状态。由于这些碎片上存在未粘贴的集合,所以排空永远无法完成。Mongodb删除碎片 - 一次不能有一个以上的耗尽碎片

现在,当我们将集群升级到2.2时,我试图摆脱这两个碎片(排水的碎片)。所以,我感动了所有初选其他碎片,并试图删除碎片,我得到这个:

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

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

在此先感谢。

+0

你会分享你的sh.status()输出吗? – 2013-02-22 07:18:00

+0

我有太多的dbs。产量真的太大了。你想知道什么? – 2013-02-22 08:15:52

+0

它列出了您尝试删除的碎片的内容? – 2013-02-22 09:58:11

回答

1

我认为这将是很好的回答这个问题我自己后来我可以找到如何摆脱这种情况。我做的是: 首先,将初选从碎片移动到另一个碎片。 当所有的原色都移动到另一个碎片时,我手动从config.shard集合中删除条目。 最后重新启动mongos。如果你有多个mongos,那么重新启动所有mongos'。

1

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