Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

自己管理型レプリカセットからのノードの削除

項目一覧

  • を使用したノードの削除 rs.remove()
  • を使用したノードの削除 rs.reconfig()

レプリカセットのノードを削除するには、次のいずれかの手順を行います。

  1. 削除するメンバーの mongod インスタンスをシャットダウンします。インスタンスをシャットダウンするにはmongosh を使用して接続し、db.shutdownServer() メソッドを使用します。

  2. レプリカセットの現在のプライマリに接続します。現在のプライマリを確認するには、レプリカセットの任意のノードに接続した状態で db.hello()を使用します。

  3. 以下のいずれかの形式で rs.remove() を使用して、ノードを削除します。

    rs.remove("mongod3.example.net:27017")
    rs.remove("mongod3.example.net")

    レプリカセットで新しいプライマリを選択する必要がある場合、MongoDB により shell が一時的に切断されることがあります。このような切断が起きると、shell により自動的に再接続されます。ただし、コマンドが正常に実行されても、shell に DBClientCursor::init call() failed エラーが表示される場合があります。

ノードを削除するには、レプリカ構成ドキュメント を使用してレプリカセットを再構成し、そのノードを members 配列から削除します。

rs.reconfig() では、一度に最大 1 voting メンバーを追加または削除できます。レプリカセットから複数の投票メンバーを削除するには、一連の rs.reconfig() 操作を発行して、一度に 1 つのメンバーを削除します。詳しくは、「再構成では一度に 1 人の投票メンバーしか追加または削除できない」を参照してください。

  1. 削除するメンバーの mongod インスタンスをシャットダウンします。インスタンスをシャットダウンするにはmongosh を使用して接続し、db.shutdownServer() メソッドを使用します。

  2. レプリカセットの現在のプライマリに接続します。現在のプライマリを確認するには、レプリカセットの任意のノードに接続した状態で db.hello()を使用します。

  3. rs.conf() メソッドを発行して現在の構成ドキュメントを表示し、削除するメンバーの members 配列内での位置を決定します。

    mongod_C.example.net は、次の構成ファイルの 2 の位置にあります。

    {
    "_id" : "rs",
    "version" : 7,
    "members" : [
    {
    "_id" : 0,
    "host" : "mongod_A.example.net:27017"
    },
    {
    "_id" : 1,
    "host" : "mongod_B.example.net:27017"
    },
    {
    "_id" : 2,
    "host" : "mongod_C.example.net:27017"
    }
    ]
    }
  4. 現在の構成ドキュメントを変数 cfg に割り当てます。

    cfg = rs.conf()
  5. cfg オブジェクトを変更してメンバーを削除します。

    mongod_C.example.net:27017 を削除するには、次の JavaScript 操作を使用します。

    cfg.members.splice(2,1)
  6. 次のコマンドを発行して、新しい構成でレプリカセット構成ドキュメントを上書きします。

    rs.reconfig(cfg)
  7. 新しい構成を確認するには、rs.conf() を実行します。

    上記の例では、出力は次のようになります。

    {
    "_id" : "rs",
    "version" : 8,
    "members" : [
    {
    "_id" : 0,
    "host" : "mongod_A.example.net:27017"
    },
    {
    "_id" : 1,
    "host" : "mongod_B.example.net:27017"
    }
    ]
    }

戻る

アービタを追加する