非表示ノードはレプリカセットの一部ですが、プライマリになることができず、クライアント アプリケーションからは参照できません。 非表示のメンバーは選挙で投票することができます。 非表示ノードとその使用方法の詳細については、「非表示のレプリカセット ノード 」を参照してください。
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 のノードを含むレプリカセットの再設定は避けてください。