web-dev-qa-db-ja.com

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

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

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

ここでのドキュメントは2つを言います: http://docs.mongodb.org/manual/core/replication/

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

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

16
cat pants

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

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

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

19
MrKurt

チュートリアルの要件はレプリカセットに関する一般的な記述ではなく、チュートリアル自体に関係しているため、これは基本的に表現の問題です。一般にレプリカセットを展開するための要件は1つ以上で、ほとんどの場合は2つ以上ありますが、リンクするチュートリアルは特に3つのメンバーセットを展開することです。

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

したがって、チュートリアルの要件は、セットに3つのメンバーがあることです。それでも、2つのステートメントがあると少し混乱するので、 pull request (編集:プルリクエストがマージされました)を送信して少しクリーンアップしました。

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

3
Adam C