問題タブ [replicaset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - ノードが 2 つだけの ReplicaSet
それぞれmongoインスタンスを持つ2つのサーバーがあります。
最初のサーバーではmongoインスタンスをプライマリとして設定し、2番目のmongoではセカンダリです。
別のサーバーを使用してアービターにする可能性はありません。
2台のサーバーだけでmongodbを使用するにはどうすればよいですか?
プライマリに障害が発生した場合、セカンダリは自動的にプライマリになりますか?
ありがとう!
node.js - mongodb レプリカ セットの構成バージョン エラー
Amazon クラウドで 3 台のマシンを実行しています。最初のプライマリセットを次のように設定しました
}
次に、2 台目のマシンが構成を自動同期します。ただし、3 台目のマシンは構成を同期せず、すべてが [secondary] になります。を使用して 3 台目のマシンの rs conf をセットアップしたときre.reconfig(conf, {force: true})
。次のようなエラーを設定してスローしません
config version >= 新しい cfg バージョンへ。構成を変更できません
python - pymongo:監視スレッドが死んでいる場合はどうすればよいですか?
何らかの理由で、更新がスケジュールされたときに、ReplicaSet のモニターが停止しているように見えました。
find_one() の呼び出しで次の Traceback を取得しました。
コードを少し調べたところ、 Monitor.monitor() に次のものが含まれていることがわかりました。
つまり、どんな悪いことが起こったとしても、それが何であったかはわかりません。
InvalidOperation("Monitor thread is dead: おそらく fork の前に開始されましたか?") をキャッチした場合、どうすればよいですか?
Monitor インスタンスを再起動する良い方法はありますか?
(私はpymongo.version 2.6.2でflask-pymongoを使用しています)
mongodb - レプリカ セットへの MongoDB 接続文字列
http://mongodb.github.io/node-mongodb-native/driver-articles/mongoclient.htmlを見て、「デフォルトで確認応答を使用しないレプリカセット接続とセカンダリの readPreference 」セクションまでスクロールすると、
次のようなレプリカ セットへの接続文字列を示します。
を指定する必要がある理由がわかりません2 hosts
。MongoDB のドキュメントには、レプリカ セットがクライアントに対して透過的であると既に記載されていると思いました。つまり、クライアントはプライマリ レプリカ セットに接続するだけで、MongoDB がその役割を果たします。したがって、接続にはホストが 1 つだけ含まれている必要があります。MongoDB doc には、少なくとも3 hosts
レプリカ セットに存在する必要があり、この接続文字列のみが指定されている必要があると記載されています2 hosts
。
さらに、接続文字列に「replicaSet」が記載されていないのはなぜですか?
mongodb - mgo を使用してレプリカ セットに接続する
ポート 27017、27018、および 27019mtools
で 3 つのノード ( ) を持つレプリカ セットを起動するために使用しています。mlaunch --replicaset
Dial
ただし、mgo パッケージを使用して実際にレプリカ セットに接続するのは困難です。以下のコード スニペットは、次のメッセージでパニックしますno reachable servers
。
mgo パッケージを使用してレプリカ セットに正確に接続するにはどうすればよいですか?
mongodb - レプリカセットでサービスmongodの開始が失敗する
私はmongod
次のコマンドで始めています:
正常に動作し、レプリカ セットを構成できます。コマンドで起動しようとするmongod
とservice mongod start
、次のエラーで失敗します。
データベースmongodの起動[失敗]
var/log/mongodb/mongodb.log
、/var/log/syslog
またはに誤りはありません/var/log/syslog.1
。
この回避策をmongod
サービスとして実行することがわかりました。
mongod --port 27017 --dbpath /var/lib/mongodb/ --replSet rs0 --fork --logpath /var/log/mongodb/mongodb.log
またmongod --config /etc/mongod.conf
私はmongodb 2.6で実行しています。rs.initiate()
うまくいきました。
と を追加fork = true
しreplSet = rs0
ました/etc/mongod.conf
。
を使用して MongoDB を起動するにはどうすればよいservice mongod start
ですか?
node.js - レプリカ セットへのマングース接続
mongoose 経由で MongoDB replicaSet に接続しようとしました。このリンクを使用しました。
構成 json:
マングース接続:
そして、アプリケーションを起動した後、例外が発生しました:
データベース: チャット、プライマリ サーバー: localhost:27022。
また、他の2つのサーバーを削除しようとしました(構成jsonにプライマリサーバーのみを保持)。セカンダリサーバーについて認識していることがわかりました(ログを使用しました)。それはmongodbのメタデータに関するものだと思います。しかし、プライマリをシャットダウンすると、その作業が終了しました (不思議ではありません)。代わりにセカンダリを使用できるようにする必要があります。
何か案は?
mongodb - レプリケートされたシャード クラスタを作成しようとしたときに mongos を接続する際のエラー
mongodb でレプリケートされたシャード クラスターを作成しようとしています。最初に 2 つのシャードを作成し、各シャードに 3 つのメンバーを持つレプリカ セットがあります。また、すべてのシャードとレプリカセットが 1 台のマシンで実行されます。私はついていきます
この構造を展開し、それは完全に機能しました。
しかし、ビジネス アプリケーション用の AWS インスタンスで mongodb を実行していて、node.js サーバーをデータベースに接続しているので、複数の aws インスタンス内でデータベースの負荷を分散して、巨大な環境でもデータベースが正常に動作するようにしたいと考えています。トラフィックの負荷を軽減し、1 つのインスタンスが異常または使用不可になった場合でも、他のインスタンスで実行されているレプリカセットからデータベースにアクセスできます。
前の質問でのさまざまなユーザーの提案に応じて
データベースをシャードに分割しようとしていますが、各シャードには、別々の aws インスタンスで実行されている 3 つ以上のメンバーを持つレプリカ セットがあります。この構造を作成するために、最初はローカルにデプロイしようとしました。
私は2つのレプリカセットfirstsetとsecondsetを持っています
最初のセットには、192.168.1.10:27018 (プライマリ)、192.168.1.11.27018 (セカンダリ)、および 192.168.1.9:27018 (アービター) の 3 つのメンバーがあります。
2 番目のセットには 192.168.1.6:27019 (プライマリ)、192.168.1.9:27019 (セカンダリ)、192.169.1.11:27019 (アービター) の 3 つのメンバーがあります。
私が書いた最初のセットのレプリカを作成するには
192.168.1.10、192.168.1.11、および 192.168.1.9 で
次に、作成したレプリカ セットを開始します。
192.168.1.10 で、その後、
同様の方法でセカンドセットのレプリカを作成しましたが、うまくいきました。
次に、1 台のマシンがシャットダウンしても他の configsvrs が実行されるように、3 つの個別のマシンに 3 つの configsvr を作成しようとしました。configsvs は 192.168.1.10:27020、192.168.1.11:27020 & 192.168.1.6:27020 で実行されます。
だから私は書いた
192.168.1.10、192.168.1.11、および 192.168.1.6 で。
次に、27017 ポートの 192.168.1.10 で mongos を実行し、3 つの configdb を実行しようとしました。だから、私は書いた
次に、mongos にシャードを追加し、27017 ポートで実行中の mongos を追加する必要があるため、次のように記述しました。
でも映ってる
しかし、以前は単一のマシンでテストしていたときに完全に機能していました。
このエラーが発生する理由と解決方法を教えてください。
また、別の混乱があります。192.168.1.10 で mongos を実行していて、node.js サーバーをその mongos に接続しますが、そのマシンがシャットダウンすると問題が発生します。したがって、データベースとの接続をいつでもルーティングするために少なくとも1つのmongoが実行されるように、他のマシンでもmongoを実行する必要がありますか? 実行中の複数の mongos を別々のマシンで同時に作成する必要がある場合、node.js サーバーからいずれかの mongos を接続してデータベースにアクセスするにはどうすればよいですか?