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,它开始排空,我该如何停止排空?

4

1 回答 1

20

RemoveShard 将启动排空过程,但没有 StopRemoveShard 命令。没关系,还没有命令,因为手动停止进程很容易。

Draining 只是平衡器开始将块从标记的分片(正在耗尽)中移出的状态。您可以通过删除分片元数据配置上的特殊“排水”字段来停止排水。

//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)

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

于 2013-03-25T15:17:47.120 回答