問題タブ [mongodb-replica-set]
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 - mongo シェルからリモート レプリカ セットに接続していますか?
Amazon クラウドに 3 メンバーのレプリカ セットを作成しました。必要なファイアウォール設定と mongo 構成をすべて設定しました。以下は、レプリカ セットの構成です。
注 : マシンのホスト名マシンのパブリック IP アドレスを使用してレプリカ セットを作成しました。
以下のコマンドを使用して、これら 3 つのレプリカ セット マシンのいずれかからレプリカ セットに接続し、レプリカ セットのプライマリに接続します。
しかし、同じ LAN にない他のマシン (ローカルマシンを想定) から同じコマンドを使用すると、. コマンドは以下のエラーで失敗します:
mongo は、ネットワークの違いにより、レプリカ セットで使用されているホスト名を解決できません。パブリック Ip は使用していません。
最後に、このリモート レプリカ セットに接続するにはどうすればよいですか??
ありがとう
mongodb - Ubuntu 14.04.4 で構成ファイルを使用して、replicaSet で mongoDB を起動する方法
こんにちは、MongoDB を replicaSet で構成しました。コマンドを実行すると:
すべてが機能し、3 つのレプリカが機能しますが、コマンドを実行すると:
動作しません。シェルは何も表示しません。実行中のプロセスを確認すると、mongod がレプリカ セットで実行されていません。
これは私のmongod.confです:
これはログファイルです:
mongodb - saveState で WriteConflictException が許可されていません - レプリカ セットを持つ mongodb
MongoDB レプリカ セットを使用します。しばらくすると、プライマリ セットが以下の例外をスローし、そこから回復できなくなります。このエラーは、サーバーをReplicasetモードで実行した場合にのみ発生します。
不変の失敗 !"WriteConflictException は saveState で許可されていません" src/mongo/db/query/plan_yield_policy.cpp 95
上記のエラーの後、MongoDB サーバー (レプリカ セット内) は使用できず、mongo.log に次のメッセージが繰り返されます。
REPL [ReplicationExecutor] プライマリから降格、新しい用語が始まったため: 32
これは私のサーバー構成です:
サーバー 1:
- MongoDB (Percona バージョン 3.2.4-1.0rc2)
- MongoDB アービター (Percona バージョン 3.2.4-1.0rc2)
サーバー 2:
- MongoDB (Percona バージョン 3.2.4-1.0rc2)
mongodb - MongoDB 初期同期が繰り返し失敗する (Azure VM 上の Ubuntu 16.04 上の Mongodb 3.2)
- 250 万のドキュメント (各ドキュメントは非常に大きい) と 4 つのインデックスを持つ非常に大きな DB を持つ 1 つのメンバーの mongod インスタンス (Server1) があります。
- 次に、別のマシン (Server2) をこのレプリカ セットに追加しました。Server2 の Mongod は、この大きなデータベース内のすべてのドキュメントを取得するのに約 5 時間かかります。
すべてのドキュメントが Server2 によってフェッチされた後、セカンダリ インデックスの作成が開始されます。インデックスが完成するまで約 3 時間かかります。
- セカンダリ インデックスの構築が完了した直後に、プライマリに接続しようとすると、ソケットの有効期限が切れてタイムアウトになっていることがわかります。
タイムアウト エラーを受信すると、サーバー (Server2) は単純にすべてのデータベースを削除し、最初の同期を再開します。
ログのスニペットは次のとおりです。
- このレプリカ セットを同期しようとすると、非常にイライラします。初期同期を何度も繰り返します。どんな助けでも大歓迎です。
mongodb - 3つのノードで1つのノードがダウンしたときにプライマリを放棄するmongo ReplicaSet
ReplicaSet
192.168.254.107:27023、192.168.254.108:27023、192.168.2.69:27023 の 3 つのノード があります。
192.168.254.108:27023 がダウンしている場合 (予期しないシャットダウン)、192.168.2.69:27023 がプライマリになります。
しかし、しばらくするとプライマリを放棄し、セカンダリに移行します。そして、選挙と放棄は実行をループし続けます。
ReplicaSet はクラスターのシャードです。
ログは次のとおりです。
シャードのステータスは次のとおりです。
それはどのように起こりますか?
ReplicaSet
OK の場合の の設定は次のとおりです。
java - レプリカセットでプライマリ サーバー ノードが変更されると、Mongodb Java クライアントが失敗する
問題: MongoDB の書き込みがエラーで失敗する -
PrimaryServerSelector に一致するサーバーを待機中に 30000 ミリ秒後にタイムアウトしました。クラスタ状態のクライアント ビューは {type=REPLICA_SET, servers=[{address=intdb01:27017, type=REPLICA_SET_SECONDARY, roundTripTime=0.7 ms, state=CONNECTED}] です
これは、プライマリが intdb01 から intdb02 に切り替わったときに発生します。クライアント ドライバーは、引き続きintdb01 をプライマリ ノードとして探しているようです。
私たちのセットアップ
rs0 というレプリカセットに 3 つの mongoDb ノードがあります。Java を使用して接続する場合、接続文字列で 3 つのサーバーすべてを次のように 指定します。
データベースのバージョン--> 3.0.4
Java ドライバーのバージョン: mongodb-driver-3.0.4.jar、mongodb-driver-core-3.0.4.jar
クライアント接続コード:
mongoConnect には、上記の接続文字列が含まれています。
Mongo レプリカセットのステータス情報
ドキュメントでコード/構成を確認して再確認しましたが、何が問題なのかを見つけることができません。プライマリをステップダウンすることで、これをシミュレートできます。セカンダリが引き継ぎますが、アプリの書き込みは失敗し始めます。:-(
ポインタ/ヒントは大歓迎です!
スタック トレースの追加 -
コーディング エラーなのか構成なのかを調べています。スタック トレースの最後の情報メッセージは、connectionMode が SINGLE であることを示しています。それがこの問題を引き起こしている疑いがありますが、開発者ドキュメント サイトでそれに関する情報を見つけることができません。