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

使用できないノードを含む自己管理型レプリカセットの再構成

項目一覧

  • 強制的に再構成するによる再構成

大多数 のメンバーが使用可能なときに レプリカセットrs.reconfig() を再構成するには、 レプリカセットの再構成手順 の例に従って、現在の プライマリ で 操作を使用します。

このドキュメントでは、 少数 のノード のみ がアクセスできる場合にレプリカセットを再構成する手順について説明します。

たとえば、地理的に分散されたレプリカセットでは、 手順を使用する必要がある場合があります。ここでは、ノードローカル グループは過半数に到達できません。 この状況の詳細については、「レプリカセットの選挙」を参照してください。

この手順により、レプリカセット ノードの大部分がダウンしているかアクセスできなくなっている間に回復できます。 残りのノードに接続し、 forceオプションをrs.reconfig()メソッドに使用します。

forceオプションはノードに新しい構成を強制します。 この手順は、致命的な中断から回復する目的でのみ使用してください。 再構成するたびにforceを使用しないでください。 また、自動スクリプトでforceオプションを使用せず、プライマリがまだ存在する場合はforceを使用しないでください。

再構成を強制するには、以下の手順を行います。

  1. 正常に実行されているノードをバックアップします。

  2. 有効なノードに接続し、現在の構成を保存します。 構成を保存するための次のサンプルコマンドの例を検討します。

    cfg = rs.conf()
    printjson(cfg)
  3. 同じノードで、配列を残りのノードのみに等しく設定して、レプリカセットのダウンしたノードとアクセスできないノードをmembers配列から削除します。 前のステップで作成されたcfg変数を使用する次の例を考えてみましょう。

    cfg.members = [cfg.members[0] , cfg.members[4] , cfg.members[7]]
  4. 同じノードで、 forceオプションをtrueに設定したrs.reconfig()コマンドを使用してセットを再構成します。

    rs.reconfig(cfg, {force : true})

    この操作により、セカンダリに新しい構成が強制されます。 その後、構成は、 members配列にリストされているすべての正常なノードに伝達されます。 その後、レプリカセットは新しいプライマリを選択します。

    注意

    force : trueを使用すると、レプリカセット構成のバージョン番号は、数十、数百、大幅に増加します。 これは正常であり、ネットワーク パーティションの両方に再構成を強制してネットワーク パーティション分割が終了した場合に、セット バージョンの競合を防ぐように設計されています。

  5. 障害やパーティションが一時的なものであれば、すぐに削除されたノードをシャットダウンまたは廃止してください。

Tip

以下も参照してください。

戻る

ノードの再同期