2012-08-05 15 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) 

完成此操作后,平衡器将恢复正常平衡,不再耗尽碎片。