【问题标题】:Mongodb remove shard - Can't have more than one draining shard at a timeMongodb 删除分片 - 一次不能有多个排水分片
【发布时间】:2013-02-22 06:34:42
【问题描述】:

我有一个由 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" }

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

提前致谢。

【问题讨论】:

  • 你愿意分享你的 sh.status() 输出吗?
  • 我的数据库太多了。输出真的太大了。你到底想知道什么?
  • 它为您尝试删除的碎片列出了什么?
  • 因此,输出的数据库部分中没有任何 db 条目。但是在分片部分中有以下条目: { "_id" : "shard0000", "draining" : true, "host" : "shard0000/xxx.xxx.xxx.xxx:27017,xxx.xxx.xxx.xxx: 27017" }
  • @AbhayPS 你最后为此做了什么?

标签: mongodb


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 1970-01-01
      • 2011-08-04
      • 2022-12-04
      • 2012-01-30
      • 2013-08-31
      相关资源
      最近更新 更多