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 コマンドはありません。プロセスを手動で停止するのは簡単なので、コマンドはまだありません。

ドレインは、バランサーがマークされたシャード (ドレインしている) からチャンクを移動し始める状態です。シャード メタデータ構成の特別な「ドレイン」フィールドを削除することで、ドレインを停止できます。

//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 に答える