sql >> データベース >  >> NoSQL >> MongoDB

アービターなしで設定された2ノードのMongoDBレプリカ

    簡単な答え:しないでください。

    長い答え:MongoDBで自動フェイルオーバーが機能する方法は、レプリカセットが新しいプライマリを正常に選択するには、適格な過半数を必要とするということです。遅れたメンバーは選挙に投票します。したがって、どちらか ノードの一部が失敗すると、レプリカセットは、この過半数がないことを検出し、失敗しなかった場合でも現在のプライマリがステップダウンします。つまり、基本的に行うのは倍増です。 レプリカセットを作成する可能性は失敗します。アービターは、--smallfiles --no-journal --nopreallocを使用して実行すると、RAM使用量、CPU、さらにはディスク容量の点で非常に安価なプロセスです。 または、構成ファイルで設定された同等のオプション。アービターは基本的にデータ保持ノードのハートビートのみをチェックするため、前述のオプションは安全に使用できることに注意してください。たとえば、アービターをアプリケーションサーバーに配置できます。

    免責事項:次の手順を使用することは強くお勧めしません。自己責任で進めてください。

    遅延サーバーの投票を0に設定できます。このようにして、遅延メンバーが失敗した場合に遅延されていないノードが選挙を要求し、レプリカセットのオンラインの唯一のノードであるという結論に達します。 投票の過半数(1/1)を持ち、期待どおりに機能し続けること。後でレプリカセットにメンバーを追加し、レプリカセットを再構成する必要が生じた場合に備えて、再び偶数の投票が行われるため、この一連のアクションには注意が必要です。また、ネットワークの断片化の問題にも深刻な影響を及ぼします。繰り返しますが、自己責任で使用してください



    1. 二次の無限の回復状態

    2. モンゴスキンに関連するsafe:trueとsafe:falseの違いは何ですか?そしてそれをどのように使用しますか?

    3. Java、MongoDB:膨大なコレクションを繰り返しながらすべてのオブジェクトを更新するにはどうすればよいですか?

    4. マングースのidと_idの違いは何ですか?