2012-08-05 46 views
3
--- Sharding Status --- 
    sharding version: { "_id" : 1, "version" : 3 } 
    shards: 
    { "_id" : "set1", "host" : "set1/m1.example.com:27018,mr1.example.com:27018,mrb1.example.com:27018" } 
    { "_id" : "set2", "draining" : true, "host" : "set2/m2.example.com:27018,mr2.example.com:27018,mrb2.example.com:27018" } 
    { "_id" : "set3", "host" : "set3/m3.example.com:27018,mr3.example.com:27018,mrb3.example.com:27018" } 

錯誤我將set2從分片簇中移除,並且它開始排空,我該如何停止排水?停止在mongodb中排出分片

回答

12

RemoveShard將開始排空過程,但沒有StopRemoveShard命令。沒關係,沒有命令,因爲手動停止這個過程很容易。

排水只是一個狀態,平衡器開始移動塊標記碎片(這是排水)。您可以通過刪除分片元數據配置中的特殊「排水」字段來停止排水。

//connect to a mongos server with the mongo javascript shell 
use config 
//unset draining from all shards 
db.shards.update({},{$unset:{draining:true}}, false, true) 

完成此操作後,平衡器將恢復正常平衡,不再耗盡碎片。