0

私は mongodb レプリカ セットを実験しています。そこでは、localhost:27017 をセカンダリとして開始し、localhost:27018 をプライマリとして開始しました。

次に、localhost:27018 を切断し、localhost:27017 が自動的にプライマリになることを期待していましたが、期待どおりに動作しません。シェルで、rs.add() や rs.remove() などのコマンドを使用すると、次のようなエラーが発生し ます

コマンドが現在セカンダリで実行されているため、このエラーが発生することはわかっていますが、プライマリはすでに閉じられているためです。私は今何をすべきですか?

また、プライマリを閉じると、レプリカ セットが新しいプライマリに投票できないのはなぜですか? 新しい予備選挙に自動的に投票するための柔軟な方法は何ですか?

4

1 に答える 1

1

MongoDB レプリカ セットで新しいプライマリを選出するには、メンバーの大多数が新しいプライマリに投票する必要があります。これは、元の (または構成された) メンバーの大部分です。

2 人のメンバーを構成しました - 1 人は過半数ではありません。フェイルオーバーを自動的に行う場合は、通常のノードまたはアービターのいずれかの 3 番目のメンバーを追加する必要があります。

于 2013-06-04T03:49:48.707 に答える