問題タブ [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 - mongodbでレプリカセットをシャットダウンするには?
Ubuntuを使用しています。
次のように 3 つの mongod レプリカ セットを開始します。
どうすればそれらをシャットダウンできますか?
mongodb - errmsg" : "レプリカ セット rs0 の新しい構成 1 に記述されているホストがこのノードにマップされていません"、なぜこのメッセージが表示されるのですか?
毎回このメッセージが表示されますrs.initiate()
:
レプリカ セット rs0 の新しい構成 1 に記述されているホストがこのノードにマップされていません
これは、私の/etc/hosts/ファイルが両方のレプリカ セット サーバーでどのように見えるかです。
サーバー 1 およびサーバー 2 の「hosts」ファイル
127.0.0.1 ローカルホスト
aa.bb.cc.dd DataMongo1
ee.ff.gg.hh DataMongo2
サーバー 1-mongod.conf ファイル
bind-ip aa.bb.cc.dd
サーバー 2 -mongod.conf ファイル
bind-ip ee.ff.gg.hh
server1 のホスト名を DataMongo1 に、server2 を DataMongo2 に変更しました
$ホスト名 DataMongo1
ポート 27071 は両方のサーバーでコメント解除されています
ReplicaSet構成ファイル:
cfg= {
_id:"rs0",
members:[{_id:0,host:"DataMongo1:27071"},{_id:1,host:"DataMongo2:27071"}]}
この問題で私を助けてください。
mongodb - MongoDB - 大容量データのアーカイブと Oplog サイズ
大規模なコレクションの定期的なデータ アーカイブを依頼しています。要件のいくつかの点が私からいくつかの懸念を引き起こしています:
- アーカイブされたデータは、本番環境と同等のアプリケーション アクセスのために別のデータベースに移動する必要があります。
- バックアップの頻度は、毎月、毎年、またはそれ以下にすることもできます。
- 実稼働システムの可用性とパフォーマンスを中断することなく、アーカイブを実行する必要があります。
この要件は、アーカイブが実行されている短い時間枠での大容量の挿入と削除を意味します。対処すべき課題がいくつかあります。
- 同じレコードの場合、削除は挿入が成功した後にのみ発生し、発生する必要があります。
- 大量の挿入と削除は、レプリケーションがレプリカセットのセカンダリ ノードに完了する前に oplog を吹き飛ばす可能性があります。結局のところ、oplog のサイズは通常、日常的な操作用に設定されます。
課題 1 については、Mitch Pronschinske がここで非常に近い解決策を提案しています。Mitch のアーカイブ機能は、削除が挿入の成功後にのみ発生する可能性があるが、「発生する必要がある」部分では発生しないという問題に対処しています。それにもかかわらず、これは非常に近いものであり、このスクリプトの上に「発生する必要がある」部分に対処することが可能です。
私に頭痛を引き起こすのはチャレンジ2です。MongoDB の指示によると、oplog のサイズを変更するには、ダウンタイムと手動の介入が必要です。要件 3 を考慮すると、これはオプションではありません。
これをどのように達成できるかについて、誰か経験やアドバイスがありますか? ありがとう!
私の環境情報:
- モンゴDB 3.2
- シャード3個
- レプリカセット: 3 つのデータ メンバー、1 つのメンバーは優先度 0 で地理的に冗長です。
- OS:MS Win2012R2
mongodb - Mongo レプリカ セットの構成
3 ノードのレプリカ セットを構成し、仮想メモリの制限を超えたときに mongo をアンインストールしました。その後、mongo のレプリケーションを開始していたときに、これらのコマンドを実行できませんでした。
私の以前のレプリカセットはprimary(27017)
、secondary(27018,27019)
再インストール後、セカンダリを機能させることができましたが、プライマリは言っています
レプリカ セット conf が見つかりませんでした。
実際に何が起こったのかわかりません。いくつかのファイルを見逃しているか、mongo がそれについてもっと知りたがっています。早急にアドバイスをお願いします。
mongodb - mongodb レプリカ セットは問題ありませんが、複製されません
mongodb レプリカセットを作成しましたが、リモート ホストでレプリケートされないことを除いてすべて正しいですが、ポート 27017 でリモート PC にアクセスしようとしましたが、正常に動作しています。リモート PC にデータベースを作成して、これが解決したかどうかを確認しましたが、何もありませんでした。新しいレコードも挿入しましたが、何もありませんでした。何かアイデアはありますか?
rs.status()
rs.conf
mongodb - mongo レプリカ セットの特定のノードからデータを読み取る
私は 3 つのメンバーのレプリカ セットを持っています。2 つのセカンダリ ノードのいずれかから読み取りたいだけということは可能ですか? IP がセカンダリの 1 つである次のコードを使用しますが、トラフィックが他のノードに展開されていることがわかりました。
mongodb - MongoDB シャード クラスターに接続する方法
このようなクラスターをawsにセットアップします
接続文字列 URI を介して接続したい。
現在、接続文字列は次のようになっています。
しかし、何らかの理由で、接続しようとするとエラーに到達できません。
ただし、単一のシャードに問題なく接続できます。
クラスタ全体への接続を妨げている原因は何ですか?
mongodb - MongoClientURI接続文字列にReplicaSet名が必要ですか?
Java アプリケーションから MongoDB レプリカ セットに接続するためのクライアント URI を指定するときに、MongoDB 接続文字列のreplicaSetオプションの使用/必要性について混乱しています。
レプリカ セットを構成する MongoDB の 3 つのノード インスタンスが実行されており、それぞれが同じレプリカ セットのメンバーとして指定されています。Java アプリケーションからレプリカ セットに接続したいと考えています。2 つ以上のホスト名のリストを提供するときに、接続文字列でレプリカ セット名を指定する必要さえある場合、私が読んだドキュメントから混乱しています。
3 ノードの MongoDB インスタンスを開始する方法は次のとおりです。
- Server1$: mongod --replSet " rs0 "
- Server2$: mongod --replSet " rs0 "
- Server3$: mongod --replSet " rs0 "
その後、交渉が行われ、プライマリが選出され、残りがセカンダリとしてマークされると仮定します。
次に、Java アプリケーションから MongoClient 呼び出しを介してレプリカ セットに接続します。実際のレプリカ セット名も必要ですか? また、レプリカ セットの各メンバーを一覧表示する必要がありますか?それとも、MongoDB ドライバーがレプリカ セットの 1 つのメンバーだけで残りを判断する必要がありますか?
replicaSet オプションは必要ですか?