私たちの設定では、合計6つのMongodサーバがあります。そのうちの3つ(3.0.6)、新しいデータセンターから3つの新しいデータセンターを追加しました(v3.2.6)。これは、古いものから古いものへの使用を移行する良い方法であると考えていました。新しい。これらの新しい箱は数週間回転していて、最新の状態になっています。いずれのボックスも0以上のスレーブ遅延を持っていません。Mongoレプリカセットでフェールオーバーが動作しないのはなぜですか?
1つの元のサーバーの優先度は2で、残りの5の優先度は1です。それ以外の場合、各サーバーの設定は同じです。投票目的のサーバーはありません。
私たちのアプリケーションは6つのアドレスをすべて使用しているため、自分でフェールオーバーします。
今日、私たちはすべてを考えていたと考えて、元の3つのサーバーでmongodプロセスを停止しました。
新しいボックスのどれもプライマリにならないでしょう。彼らはすべて二次的に残っていた。そこで元のプライマリに戻ってすぐに再びプライマリになりました。問題が優先されていると考えて、元のプライマリを1に減らし、新しいボックスの1つを2にしました。設定を保存し、新しいボックスがプライマリになりました。
私たちはそれを舐めたと思って、もう一度元のプライマリをシャットダウンします。
新しいボックスはすぐにセカンダリに戻り、プライマリは残されませんでした。
私たちは古いプライマリをバックアップし始めました。新しいボックスはすぐに再びプライマリになりました。
したがって、現在、古いボックスの優先度を0に設定して、実行したままにしておきます。
しかし、私たちはそのように走り続けることはできません。なぜ新しいマシンの1つがプライマリに自動的に昇格しなかったのですか?私たちが古い箱を取り除くと、なぜそれは降りるだろうか?
ありがとうございます!私はちょうどこの目的のためにチームに参加しましたが、Mongoの管理コース(これまでの開発者のコース)はまだ受けていません。あなたの答えは完璧です。セットから古いマシンを削除すると、合計が少なくなり、クォーラム用のマシンが少なくて済みます。ありがとう! –