我有一个由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" }
现在我无法移除任何碎片。我希望有人知道发生了什么以及如何解决它。
提前致谢。
答案 0 :(得分:1)
我认为自己回答这个问题会很好,因为我可以找到如何摆脱这种情况。我做的是: 首先,将原色从碎片移动到另一个碎片。 当所有原色被移动到另一个碎片时,我手动从config.shard集合中删除了该条目。 最后重启了mongos。如果你有多个mongos,那么重新启动所有mongos'。
答案 1 :(得分:1)
完成删除操作,检查状态以及块移动是否已完成,再次运行remove命令。 这将“完成”remove命令并允许运行另一个remove shard命令。