切断されたプライマリレプリカセットをレプリカセットに再度追加します

切断されたプライマリレプリカセットをレプリカセットに再度追加します

データベースを使用するアプリケーションのサービスを復元するために、セカンダリの 1 つをプライマリに昇格させる程度まで、ネットワークから切断されたプライマリ レプリカ セット (データ センターのネットワーク停止など) をどうするかについてアドバイスを求めています。

ネットワークに再接続する前に、ボックスで実行されている mongodb を終了して、セカンダリとして再度追加できるようにする必要がありますか? または、プライマリは設定変更モードから切断されますか?

再接続まで隔離されているものの、mongodb をプライマリとして実行し、mongodb サーバーをネットワークに戻すとどうなるでしょうか?

他のドキュメントで回答されている場合は申し訳ありませんが、検索してみましたが、正しい用語を検索していない可能性があります。

答え1

データベースを使用するアプリケーションのサービスを復元するために、セカンダリの 1 つをプライマリに昇格させる程度まで、ネットワークから切断されたプライマリ レプリカ セット (データ センターのネットワーク停止など) をどうするかについてアドバイスを求めています。

自動フェイルオーバーはMongoDBの固有の機能の1つです。レプリカセットデザインなので、意図的にデフォルトから設定を変更しない限り、セカンダリに手動でフェイルオーバーする必要はありません。 とprimarysecondaryどちらも加盟諸国(またはロール) をレプリカ セット内に保持し、フェイルオーバーのために通常は手動による介入を必要とするマスター/スレーブ トポロジとは異なることを目的としています。

MongoDB レプリカ セットの構成された投票メンバーの過半数が現在のプライマリに到達できない場合、予想される結果は次のようになります。

  • 孤立したプライマリは退いてセカンダリになる
  • 投票メンバーの過半数がまだ相互に接続しており、選出資格のあるメンバーがいる場合は、新しい予備選挙が選出される可能性があります。

見るレプリカセットの選択詳細については、MongoDB マニュアルを参照してください。

ネットワークに再接続する前に、ボックスで実行されている mongodb を終了して、セカンダリとして再度追加できるようにする必要がありますか? または、プライマリは設定変更モードから切断されますか?

レプリカ セットの分離されたデータ保持メンバーはセカンダリ状態のままですが、rs.status()レプリカ セットの他のメンバーを確認すると、「正常ではない/アクセス不可」と表示されます。通常、選択可能なデータ保持メンバーをすべて同じようにプロビジョニングして、必要に応じてどのメンバーもプライマリの役割を担えるようにすることをお勧めします (特別にプロビジョニングされたプライマリ メンバーを持つのではなく)。

レプリカセットを自動的に回復させたい場合は、すべてのメンバーをそのまま実行したままにしておくと、接続が回復すると同期が再開されます(可能な場合)。デフォルトの構成では、以前はプライマリだった分離されたメンバーはセカンダリとして同期を再開します。どのメンバーをプライマリに選出するかを強く希望する場合は(たとえば、データセンターの場所に基づいて)、優先順位を調整するレプリカ セット メンバーの場合。優先プライマリが分離された場合、セカンダリとしてレプリカ セットに再度参加し、プライマリになる資格を得て選出をトリガーできるまで同期を再開します。

同期を再開する際の注意点は、分離されたメンバーがまだ十分な重複を持っている必要があることです。レプリケーション oplog正常なレプリカセットメンバーの書き込みアクティビティをキャッチアップするために、メンバーが隔離されている間に発生した書き込みアクティビティをキャッチアップする必要があります。レプリカセットの他のメンバーと重複していないoplogを持つセカンダリは「古い」とフラグ付けされ、再同期

再接続まで隔離されているものの、mongodb をプライマリとして実行し、mongodb サーバーをネットワークに戻すとどうなるでしょうか?

レプリカセットを強制的に再構成して他の投票メンバーがいないようにしない限り、独立したプライマリを持つことはできません。レプリカセットに2つのプライマリを持つことはできません。分離された以前のプライマリが、レプリカセットメンバーの過半数に伝播されなかった書き込みを受け入れた場合、これらの書き込みはロールバックされた(管理者の介入のためにディスクにエクスポートされます)元のプライマリがレプリカセットの他のメンバーとの接続を再開したときに、ロールバックを回避する、使用を含むmajority懸念を書く

MongoDB レプリカ セットを初めて使用する場合は、デフォルトの構成とプロビジョニングを使用して、自動フェイルオーバーとリカバリを有効にすることをお勧めします。手動による介入は、例外的な状況でのみ必要になります。

関連情報