web-dev-qa-db-ja.com

レポート目的でmongodb読み取り専用レプリカを追加する

MongoDB DB Xが2つのレプリカセットにシャーディングされています。ここで、レポート作成のためにmongodbの負荷を軽減するために、レプリカ(読み取り操作のみになります)を追加します。コレクションが2つの異なるレプリカセットに分割されているため、これをどのように実現できますか?

2
Ritesh K

Mongo DBのシャーディングは、読み取り可能なセカンダリに影響を与えません。各シャードには、シャーディングされなかったかのようにレプリカセットが設定されます。それらにアクセスするための「読み取り専用」メソッドは同じ方法です。

https://docs.mongodb.com/manual/core/read-preference-mechanics/ リンクから:

設定とシャードの読み取り

レプリカセットシャードを持つシャードクラスターの場合、mongosはシャードから読み取るときに読み取り設定を適用します。サーバーの選択は、読み取り設定とreplication.localPingThresholdMs設定によって制御されます。

あなたはおそらく「二次優先」オプションを探すでしょう: https://docs.mongodb.com/manual/reference/read-preference/#secondaryPreferred

"ほとんどの状況で、操作はセカンダリメンバーから読み取りますが、セットが単一のプライマリで構成されている(他のメンバーは構成されていない)状況では、読み取り操作はセットのプライマリを使用します。タグセットの場合、クライアントは、指定されたタグセットと一致するセカンダリメンバーを見つけようとし、最も近いグループの中からランダムなセカンダリに読み取りを送信します。一致するタグを持つセカンダリがない場合、クライアントはタグを無視してプライマリから読み取ります。読み取り操作secondaryPreferredモードを使用すると、古いデータが返される場合があります。 "

1
Ali Razeghi