Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

投票権のない自己管理型レプリカセット ノードの構成

項目一覧

  • 手順
  • 関連ドキュメント

投票権のないノードを使用すると、最大 7 つの投票ノードを超える読み取りディストリビューションのノードを追加できます。

ノードを非投票として設定するには、 replSetReconfigコマンドまたはその mongoshヘルパー メソッドrs.reconfig()を使用して、 members[n].votesmembers[n].priorityの値を0に設定します。 投票権のないレプリカセット ノードの は であるpriority 必要0 があります。

注意

レプリカ再構成で、一度に追加または削除できる投票権のあるレプリカセット ノードは1 つだけです。 複数のノードの投票を変更するには、一連のreplSetReconfigまたはrs.reconfig()操作を発行して、一度に 1 つのノードを変更します。 詳しくは、「再構成では一度に 1 人の投票メンバーしか追加または削除できない」を参照してください。

次の手順では、単一のセカンダリレプリカセット ノードを非投票にするように構成します。 プライマリノードを非投票に変換するには、この手順を実行する前に、まずreplSetStepDownまたはそのshellヘルパーrs.stepDown()を使用してプライマリを正常に降格する必要があります。

1) レプリカセット プライマリに接続する

mongoshをレプリカセットプライマリに接続します。

mongosh --host "<hostname>:<port>"

<hostname><port>をレプリカセット プライマリのホスト名とポートに置き換えます。 配置に必要なその他のパラメーターを含めます。

2) レプリカ構成を取得する

shell でrs.conf()メソッドを発行し、その結果を変数cfgに割り当てます。

cfg = rs.conf();

返されるドキュメントにはmembers配列が含まれます。配列の各要素には、1 つのレプリカセット ノードの構成が含まれています。

3) ノードを非投票に設定する

レプリカ ノードを変更して非投票にするには、 votespriority0に設定します。

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 のノードを含むレプリカセットの再設定は避けてください。

戻る

遅延ノード