2010-10-05 39 views
4

我有一個MongoDB分片設置與3個碎片:shard0000,shard0001和shard0002。運行shard0002的計算機現在已關閉,這會導致我的所有查詢都失敗。我想暫時從我的設置中刪除shard0002,並繼續使用前兩個分片。這應該是可行的,假設我只使用駐留在前兩個分片中的非分片集合,對吧?刪除無法訪問的蒙戈碎片

我第一次嘗試的是:db.runCommand({removeshard: 'IP:PORT'})這顯然沒有幫助,因爲它只是將分片放入排水模式,這將永遠不會結束(因爲它已關閉)。然後我嘗試連接到我的配置服務器並在配置數據庫上執行db.shards.remove({_id: 'shard0002'}),然後重新啓動mongos,以便重新加載配置。現在,只要我嘗試做任何事情,我都會「找不到shard0002的碎片」。

有沒有什麼辦法可以讓Mongo知道我現在不關心這個碎片,然後在它變得可用時重新啓用它。

+0

你說的所有查詢失敗?這是否包括可以與僅存在的單個碎片一起工作的查詢? – Thilo 2010-10-05 06:26:38

回答

4

手動修改配置分貝的碎片條目,然後removeshard

+0

UNHELPFUL。需要詳細信息或鏈接到如何做到這一點。什麼收藏?哪裏?如何修改它? ???? – 2014-08-19 14:31:31

+1

@ KevinJ.Rice,在配置數據庫中,有一個名爲shards的集合。您需要手動從該處刪除碎片條目。 – brismuth 2014-09-09 15:33:05

4

我有一個不同的問題,我手動刪除與碎片:

use config 
db.shards.remove({"_id":"shard0002"});