3ノードのreplicaSetで、2がダウンすると、3番目がPRIMARYではなくSECONDARYになるのはなぜですか?
データセンター内に2つのモンゴッド、外部に1つのモンゴッドが必要なので、データセンターに障害が発生した場合は、3番目の外部モンゴッドをプライマリにします。
アービターなしでも可能ですか?
3ノードのreplicaSetで、2がダウンすると、3番目がPRIMARYではなくSECONDARYになるのはなぜですか?
データセンター内に2つのモンゴッド、外部に1つのモンゴッドが必要なので、データセンターに障害が発生した場合は、3番目の外部モンゴッドをプライマリにします。
アービターなしでも可能ですか?
OK、応答が見つかりました:
http://tebros.com/2010/11/mongodb-arbiters-with-only-two-replicas/
何が起こった?!mongodインスタンスが分離されている場合、それ自体がプライマリになるように投票することはできません。あなたがそれについて考えるとき、これは理にかなっています。ネットワークリンクがダウンして2つのレプリカが分離された場合、両方がプライマリとして自分自身を選択することは望ましくありません。したがって、私の場合、rep1-1がレプリカセットの残りの部分から分離されていることに気付いたとき、それ自体がセカンダリになり、書き込みの受け入れを停止しました。
常に(cluster_participants / 2)+ 1ノードダウン(参加者の数が奇数であると想定)になると、クラスターは読み取り専用モードになります。候補ノードは、すべてのノードの大部分がプライマリとして選出される必要があります。
たとえば、5つのnoDeクラスターがあり、3つのノードが吹き飛ばされた場合、他のノードは3票を獲得できないため、セカンダリのままになります。
詳細については、http://docs.mongodb.org/manual/core/replication-internals/#replica-set-election-internalsをご覧ください。