2013-02-22 60 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命令並允許運行另一個刪除分片命令。