0

3 つのシャードがあり、それぞれ 3 つのボックス (合計 9 つのボックス) に複製されています。メインのホスティング プロバイダー (サイト A) に 2 つのレプリカがあり、別のホスティング プロバイダー (サイト B) に 3 つ目のレプリカ (セカンダリのみに設定) があります。サイト A に障害が発生した場合、(どのように) サイト B からの要求を自動的に受け取ることができますか?

http://docs.mongodb.org/manual/core/replication/でアドバイスされているように、サイト B のレプリカをセカンダリ専用に構成しましたデータベースの 3 分の 1 であるローカル シャード。

すべての助けに感謝します!

4

1 に答える 1

1

レプリカ セットの大部分が使用できない場合、自動的にフェールオーバーすることはできません。

サイト A を失うということは、レプリカ ノードの 2/3 を失うことを意味します。サイト B のノードが読み取りと書き込みを受け入れるようにするには、レプリカ セットを再構成する必要があります。サイト A のノードを構成から削除するか、アービターを追加して「多数派」を復元することができます。

この方法では冗長性がないことに注意してください。そのため、サーバーが大幅に失われた場合に備えて、自動またはできるだけ迅速に起動しようとするのではなく、時間をかけて新しいサーバーを起動することをお勧めします。新しい構成の冗長性。

アプリケーションの要件として、データ センターの損失に耐えることが必要な場合、推奨される構成は、DC1 と DC2 に同じ数のノードを配置し、3 番目の場所にアービターを配置することです (どのデータ センターに障害が発生しても、レプリカ セットの大部分はまだ存在し、新しいプライマリを選択できます)。

于 2013-03-20T04:02:48.273 に答える