我有一个由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" }现在我不能移除任何碎片。我希望有人会知道发生了什么,以及如何修复它。
提前谢谢。
发布于 2013-06-05 14:06:15
我认为我自己回答这个问题会很好,因为以后我可以找到摆脱这种情况的方法。我所做的是:首先,将主图像从分片移动到另一个分片。当所有主映像移到另一个分片时,我手动从config.shard集合中删除了该条目。最后重启了mongos。如果你有一个以上的mongos,那么重新启动所有mongos。
发布于 2014-01-01 07:12:10
要完成删除操作,请检查状态,如果区块移动已完成,请再次运行删除命令。这将“完成”remove命令,并允许运行另一个remove shard命令。
https://stackoverflow.com/questions/15018291
复制相似问题