投票権のない自己管理型レプリカセット ノードの構成
投票権のないノードを使用すると、最大 7 つの投票ノードを超える読み取りディストリビューションのノードを追加できます。
ノードを非投票として設定するには、replSetReconfig
コマンドまたはそのmongosh
ヘルパーメソッドrs.reconfig()
members[n].votes
members[n].priority
を使用して、 と の値を0
に設定します。投票権のないレプリカセットの priority
は0
である必要があります。
注意
レプリカ再構成で、一度に追加または削除できる投票権のあるレプリカセット ノードは1 つだけです。 複数のノードの投票を変更するには、一連のreplSetReconfig
またはrs.reconfig()
操作を発行して、一度に 1 つのノードを変更します。 詳しくは、「再構成では一度に 1 人の投票メンバーしか追加または削除できない」を参照してください。
手順
次の手順では、単一のセカンダリレプリカセット ノードを非投票にするように構成します。 プライマリノードを非投票に変換するには、この手順を実行する前に、まずreplSetStepDown
またはそのshellヘルパーrs.stepDown()
を使用してプライマリを正常に降格する必要があります。
- 1) レプリカセット プライマリに接続する
mongosh --host "<hostname>:<port>" <hostname>
と<port>
をレプリカセット プライマリのホスト名とポートに置き換えます。 配置に必要なその他のパラメーターを含めます。- 2) レプリカ構成を取得する
shell で
rs.conf()
メソッドを発行し、その結果を変数cfg
に割り当てます。cfg = rs.conf(); 返されるドキュメントには
members
配列が含まれます。配列の各要素には、1 つのレプリカセット ノードの構成が含まれています。- 3) ノードを非投票に設定する
レプリカ ノードを変更して非投票にするには、
votes
とpriority
を0
に設定します。cfg.members[n].votes = 0; cfg.members[n].priority = 0; n
を変更するノードの配列インデックス位置に置き換えます。members
配列は0 から始まるインデックスであり、配列の最初の要素のインデックス位置は0
です。配列内のノードの配列インデックス位置は、特定のノードの
members
とは 異なりmembers[n]._id
ます。内の任意のノードの配列インデックス位置を参照するために、_id
を使用し ないmembers
でください- 4) 新しい構成でレプリカセットを再構成する
rs.reconfig()
メソッドを使用して、更新されたレプリカセット構成ドキュメントでレプリカセットを再構成します。rs.reconfig(cfg);
警告
rs.reconfig()
shell メソッドを使用すると、現在のプライマリを強制的に降格させることができ、選挙が行われます。プライマリが降格すると、mongod
はすべてのクライアント接続を閉じます。通常、この処理時間は 10 ~ 20 秒ですが、スケジュールされたメンテナンス期間中にこれらの変更を行ってください。MongoDB のバージョンによって検証ルールが異なる可能性があるため、異なるバージョンの MongoDB のノードを含むレプリカセットの再設定は避けてください。