MongoDBレプリカセットには少なくとも2つまたは3つのメンバーが必要ですか?


16

ここのドキュメントには3つあります:http : //docs.mongodb.org/manual/tutorial/deploy-replica-set/

「レプリカセットには3つの異なるシステムが必要です...」

一方、ここのドキュメントには次の2つが記載されています:http : //docs.mongodb.org/manual/core/replication/

「ほとんどのレプリカセットは、2つ以上のmongodインスタンスで構成されています...」

誰が正しいか知っていますか?

回答:


19

必要に応じて、実際に単一のメンバー「セット」を実行できます。

ただし、3メンバー(またはそれ以上の奇数)が本当に最適です。レプリカセットは、セットの大部分が利用できない場合にのみ読み取り専用になるため、2メンバーセットのメンバーを失うと、残りのメンバーは読み取り専用になります。

2つの完全なメンバーと「投票専用」メンバー(アービターと呼ばれる)を実行することもできます。これは、レプリカセットの最小の合理的に安全なオプションです。


6
2つのメンバーがフォールトトレラントシステムではないことを強調したい。@MrKurtが正しいのは、1人のメンバーがダウン(予定外)になった場合、もう1人はPRIMARYにならず、SECONDARY(読み取り専用)にステップダウンするということです。言い換えると、実稼働環境でレプリカが必要な場合、メンバーの障害に対するフォールトトレランスの最小要件は3メンバーです。
ブレットフィッシャー14

3

チュートリアルの要件はレプリカセットに関する一般的な説明ではなく、チュートリアルitelfに関係するため、これは基本的に文言上の問題です。一般にレプリカセットを展開するための要件は1つ以上で、ほとんどが2つ以上ありますが、リンクするチュートリアルは、特に3つのメンバーセットを展開することです。

このチュートリアルでは、MongoDBの3つの既存のインスタンスから3メンバーレプリカセットを作成する方法について説明します

したがって、チュートリアルの要件は、セットに3つのメンバーがあることです。それでも、2つのステートメントがあるのは少しわかりにくいので、プルリクエスト(EDIT:プルリクエストは現在マージされています)を送信して、少しクリーンアップします。

単一のmongodノードをレプリカセットの一部として構成することもできますが、厳密に言えば、それは「セット」ではありません。実際、レプリケーションはスタンドアロンよりも多くのリソースを使用するmongodため(基本的にoplogのため)、他のメンバーをセットに追加する前の一時的な手段として、またはoplogが必要な場合を除いて、単一のメンバーを実行する意味はありません。その他の理由(バックアップなど)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.