隠ぺいされたレプリカセット
非表示ノードはプライマリのデータセットのコピーを保持しますが、クライアント アプリケーションからは表示されません。 非表示ノードは、レプリカセット内の他のノードとは使用パターンが異なるワークロードに適しています。 非表示メンバーは常に優先順位0メンバーである必要があるため、 プライマリ になることはできません。 db.hello()
メソッドは非表示メンバーを表示しません。 しかし、 非表示 のメンバーは選挙に投票する可能性があります。
次の 5 ノードのレプリカセットでは、4 つのすべてのセカンダリ ノードにプライマリのデータセットのコピーがあり、セカンダリ ノードの 1 つは非表示になっています。
動作
読み取り操作
クライアントは、適切な 読み込み設定( read preference )を持つ読み取りを 非表示ノード に分散しません。 その結果、これらのノードは基本レプリケーション以外のトラフィックを受け取りません。 レポート作成やバックアップなどの専用タスクには 非表示のメンバー を使用します。
重要
レプリカセットに遅延ノードが含まれている場合は、遅延ノードが 非表示 で、投票権のないことを確認します。
遅延レプリカセット ノードを非表示にすると、そのノードに直接接続せずにアプリケーションが遅延データを参照したりクエリを実行したりできなくなります。 遅延レプリカセット ノードを投票権のないものにすると、書込み保証(write concern "majority"
による書込み操作の確認にはカウントされません。
遅延ノードを非表示にせず、1 つ以上のノードが使用できなくなった場合、レプリカセットは遅延ノードを待機する必要があり、コミット ポイントは遅延します。 コミット ポイントが遅延すると、パフォーマンスの問題が発生する可能性があります。
たとえば、プライマリ-セカンダリ-遅延レプリカセットの構成で、遅延セカンダリが 10 分の遅延で投票するものを考えてみましょう。
遅延していないセカンダリが 1 つ使用できない場合、プライマリ遅延の削減構成は、 "majority"
で書込み (write) 操作を確認するまでに少なくとも 10 分待機する必要があります。マジョリティ コミット ポイントが進むまでに時間がかかり、キャッシュ負荷による同様のパフォーマンスの問題が発生しますセカンダリ と アービタ (PSA)レプリカセットがあるプライマリ。
マジョリティ コミット ポイントの詳細については、「因果整合性、読み取り保証、書込み保証」を参照してください。 パフォーマンスの問題の解決に関する追加の詳細については、「レプリカセットのメンテナンス チュートリアル 」を参照してください。
シャーディングされたクラスターでは、 mongos
は非表示メンバーとやり取りしません。
投票
非表示ノードはレプリカセットの選挙で投票することができます。 投票権を持つ非表示ノードを停止する場合は、セットにアクティブな過半数が存在することを確認してください。そうしないと、プライマリが降格します。
バックアップの目的で、
db.fsyncLock()
は、cp
、scp
、tar
などの低レベルのバックアップ ユーティリティを使用してデータファイルを安全にコピーすることを保証します。 コピーされた ファイルを使用して開始されたmongod
には、ロックされたmongod
のユーザーが記述したデータと区別できないユーザーが記述したデータが含まれています。ロックされた
mongod
のデータファイルは、ジャーナリング同期やWiredTiger スナップショットなどの操作によって変更される可能性があります。 これは論理データ(例: クライアントがアクセスするデータ)では、一部のバックアップ ユーティリティがこれらの変更を検出して警告を発したり、エラーで失敗したりすることがあります。 MongoDB が推奨するバックアップ ユーティリティと手順の詳細については、「自己管理型配置のバックアップ メソッド 」を参照してください。
書込み保証 (write concern)
非表示のレプリカセット メンバーは、 w: <number>
で発行された書込み (write) 操作に確認通知を返せます。 ただし、 w : "majority"
で発行された書込み操作の場合、非表示ノードは投票ノードでもある必要があります( members[n].votes
0
が より大きい場合)、"majority"
書込み操作を確認します。投票権のないレプリカセット ノード( members[n].votes
は0
です)は、 majority
書込み保証(write concern)付きで書込み操作の確認に貢献できません。
さらに読む
MongoDB データベースのバックアップの詳細については、「自己管理型配置のバックアップ メソッド 」を参照してください。 非表示ノードを設定するには、「非表示の自己管理型レプリカセット ノードの構成 」を参照してください。