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

自己管理型連鎖レプリケーション

項目一覧

  • 連鎖レプリケーションの無効化
  • 連鎖レプリケーションを再度有効化

バージョン 2.0 以降、MongoDBは 連鎖レプリケーションをサポートしています。 連鎖レプリケーションは、 セカンダリ メンバーが プライマリ ではなく別のセカンダリ メンバーから複製する場合に発生します。これは、例のように、セカンダリがping時間に基づいてレプリケーションソースを選択し、最も近いノードが別のセカンダリである場合に当てはまります。 操作のレプリケーションソースは、データが読み取られるノードです。

連鎖レプリケーションにより、プライマリの負荷を軽減できます。 ただし、ネットワークのトポロジーによっては、連鎖レプリケーションラグが増加する可能性もあります。

自己管理型レプリカセット構成settings.chainingAllowed の 設定を使用して、連鎖レプリケーションが遅延を発生している状況では、連鎖レプリケーションを無効にできます。

MongoDB はデフォルトで連鎖レプリケーションを有効にします。 この手順では、これを無効にする方法と、再度有効にする方法について説明します。

注意

連鎖レプリケーションが無効になっている場合でも、 replSetSyncFromを使用して、セカンダリが別のセカンダリから複製されることを指定できます。 ただし、その構成が続くのは、セカンダリが同期元のメンバーを再計算するまでのみです。

連鎖レプリケーションを無効にするには、settings.chainingAllowed 自己管理型レプリカセット構成 の フィールドをfalse に設定します。

次の一連のコマンドを使用して、 settings.chainingAllowedfalseに設定できます。

  1. 構成設定をcfgオブジェクトにコピーします。

    cfg = rs.config()
  2. 現在の構成設定にsettings埋め込みドキュメントが含まれているかどうかをメモします。 その場合は、この手順をスキップしてください。

    警告

    構成設定にsettings埋め込みドキュメントが含まれている場合は、データの損失を防ぐために、この手順をスキップします。

    現在の構成設定にsettings埋め込みドキュメントが含まれていない場合は、次のコマンドを発行して埋め込みドキュメントを作成します。

    cfg.settings = { }
  3. 次の一連のコマンドを発行して、 settings.chainingAllowedfalseに設定します。

    cfg.settings.chainingAllowed = false
    rs.reconfig(cfg)

連鎖レプリケーションを再度有効にするには、 settings.chainingAllowedtrueに設定します。 次の一連のコマンドを使用できます。

cfg = rs.config()
cfg.settings.chainingAllowed = true
rs.reconfig(cfg)

戻る

使用できないノードの設定