2016-12-19 10 views
1

私はMongoを初めて使い、しばらくの間、Cassandraを使用しています。私はMongoの文書から明確な答えを見つけられませんでした。以下の私の質問はすべて密接に関連しています。MongoDBの複製要因

1)Mongoの複製係数を指定する方法は?

C *では、データベース全体および/または各テーブルのレプリケーションファクタ(レプリカ数)を定義できます。 Mongoの新しいレプリカセットのコンセプトは、C *の考え方に似ています。しかし、私はMongoの各テーブル/コレクションの複製係数をどのように定義できるのか分かりません。それをどこで定義するのですか?

2)レプリカセットとレプリケーションファクタ?

データベースのMongoクラスタに複数のレプリカセットを定義できるようです。レプリカセットには最大7人の投票メンバーを含めることができます。 5メンバのレプリカセットは、データが5回複製されることを意味しますか?または、レプリカセットはプライマリのみを投票するためのものですか?

3)どのコレクションのレプリカセットですか?

レプリカセット構成のドキュメントには、データベースやコレクションについては何も言及されていません。レプリカセットが意図しているコレクションを指定する方法はありますか?

4)レプリカセット定義?

15ノードのMongoクラスタを作成し、各レコードを3つコピーしたい場合、ノードを複数のレプリカセットに分割する方法は?

ありがとうございました。

答えて

1

Mongoレプリケーションは、全体を複​​製することによって動作します。インスタンス。個々のデータベースやコレクションレベルでは行われません。すべてのレプリカには、アービタを除いてデータのコピーが含まれています。アービターはデータを保持せず、新しいプライマリの選挙にのみ参加します。インスタンスがダウンすると、新しいインスタンスをプライマリとして選ぶことができるだけの大多数を作成するために、通常は展開されます。

そのはかなりよくここhttps://docs.mongodb.com/manual/replication/

+0

を説明したが、だから私の15ノードおよび3-レプリカケースのために、私は実際には3つのノードを必要と私はコレクションのシャードない限り、他の12のノードを有効に利用することができないのですか? –

+0

必要に応じて、すべての15をレプリカセットに入れて、セカンダリの読み取りを使用して、潜在的に失効したデータがある限り、プライマリから負荷を取り除くことができます。それ以外の場合は、シャードすることができますが、シャーディングの経験は限られており、複雑な作業になっています。余分なマシンを敷設するだけではなく、絶対にそうしなければならないことを知っているときには、破棄すべきです。 – ThrowsException

+0

ええと、Mongoはまだスケーラビリティの問題を解決していません。 3つのレプリカを保持すれば十分であり、マシンを追加することで、Mongoはすべてのデータを均等かつ自動的に配布し、それらのレプリカセットで管理するために、複数の仮想レプリカセット(私の場合はそれぞれ3人のメンバー)を自動的に作成する必要があります。カサンドラのようにスケールアップされます。現在のレプリカセットは、マニュアルシャーディングなしでスケールアップすることはできません。つまり、1台のマシン上のデータベースインスタンス全体です。 –

関連する問題