非表示の自己管理型レプリカセット ノードの構成
非表示ノードはレプリカセットの一部ですが、プライマリになることができず、クライアント アプリケーションからは参照できません。 非表示のメンバーは選挙で投票することができます。 非表示ノードとその使用方法の詳細については、「非表示のレプリカセット ノード 」を参照してください。
Considerations
非表示ノードの最も一般的な用途は、バックアップをサポートすることです。
遅延ノード をサポートするために 非表示ノード を使用することもできます。 ただし、ノードがプライマリにならないようにするだけの場合は、優先順位の 0 のノードを設定します。
settings.chainingAllowed
設定でセカンダリ メンバーが他のセカンダリから同期できる場合、MongoDB は同期ターゲットを選択するときに、デフォルトで 非表示 メンバーよりも非表示メンバーを優先します。 MongoDB は最後の手段として 非表示 のメンバーのみを選択します。 セカンダリが非表示メンバーから同期する場合は、 replSetSyncFrom
データベースコマンドを使用してデフォルトの同期ターゲットを上書きします。 コマンドを使用する前に、 replSetSyncFrom
のドキュメントを参照してください。
例
ノード構成ドキュメント
セカンダリ メンバーを非表示として構成するには、メンバー構成でそのmembers[n].priority
値を0
に設定し、 members[n].hidden
値をtrue
に設定します。
{ "_id" : <num> "host" : <hostname:port>, "priority" : 0, "hidden" : true }
構成手順
次の例では、 members
配列で現在インデックス0
にあるセカンダリ ノードを非表示にします。 非表示ノード を構成するには、プライマリに接続されている mongosh
セッションで次の一連の操作を使用し、 members
配列の配列インデックスで構成するノードを指定します。
cfg = rs.conf() cfg.members[0].priority = 0 cfg.members[0].hidden = true rs.reconfig(cfg)
セットを再構成すると、このセカンダリ メンバーの優先順位は0
であるため、プライマリになることはできず、非表示になります。 セット内の他のノードは、 hello
コマンドまたはdb.hello()
メソッド出力で非表示ノードを公開しません。
レプリカ構成オブジェクトを更新するときは、 配列インデックスmembers
を使用して、 配列内のレプリカセット メンバーにアクセスします。配列インデックスは0
で始まります。 このインデックス値を、 members
配列内の各ドキュメントのmembers[n]._id
フィールドの値と混同 しないでください 。
警告
rs.reconfig()
shell メソッドを使用すると、現在のプライマリを強制的に降格させることができ、選挙が行われます。プライマリが降格すると、mongod
はすべてのクライアント接続を閉じます。通常、この処理時間は 10 ~ 20 秒ですが、スケジュールされたメンテナンス期間中にこれらの変更を行ってください。MongoDB のバージョンによって検証ルールが異なる可能性があるため、異なるバージョンの MongoDB のノードを含むレプリカセットの再設定は避けてください。