AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

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

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

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

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

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

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

警告

強制的に再構成すると、 がコミットした書き込みの ロールバック "majority"など、予期しない動作が発生する可能性があります。

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

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