Postgres のプライマリ / スタンバイ レプリケーションを設定する

デフォルトでは、すべての Postgres ノードがプライマリ モードでインストールされます。ただし、複数の Postgres ノードがある本番環境システムでは、プライマリ / スタンバイ レプリケーションを使用するように構成します。これにより、プライマリ ノードに障害が発生しても、スタンバイ ノードがトラフィックの処理を継続できます。

プライマリ ノードに障害が発生した場合は、スタンバイ サーバーをプライマリに昇格させることができます。詳細については、PostgreSQL データベース フェイルオーバーの処理をご覧ください。

インストール時にプライマリ / スタンバイ レプリケーションを構成する

インストール時にプライマリ / スタンバイ レプリケーションを構成するには、2 つの Postgres ノードの構成ファイルに次のプロパティを含めます。

PG_MASTER=IP_OR_DNS_OF_NEW_PRIMARY
PG_STANDBY=IP_OR_DNS_OF_NEW_STANDBY

インストーラにより、2 つの Postgres ノードがレプリケーションのプライマリ / スタンバイとして機能するように自動的に構成されます。

インストール後にプライマリ / スタンバイ レプリケーションを構成する

インストール後にプライマリ / スタンバイ レプリケーションを構成するには、次の操作を行います。

  1. どの Postgres ノードがプライマリ ノードで、どれがスタンバイ サーバーになるかを特定します。
  2. プライマリ ノードで、構成ファイルを編集して次のように設定します。
    PG_MASTER=IP_OR_DNS_OF_NEW_PRIMARY
    PG_STANDBY=IPorDNSofNewStandby
  3. 新しいプライマリでレプリケーションを有効にします。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  4. スタンバイ ノードで、構成ファイルを編集して次のように設定します。
    PG_MASTER=IP_OR_DNS_OF_NEW_PRIMARY
    PG_STANDBY=IPorDNSofNewStandby
  5. スタンバイ ノードを停止します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  6. スタンバイ ノードで、既存の Postgres データをすべて削除します。
    rm -rf /opt/apigee/data/apigee-postgresql/
  7. スタンバイ ノードを構成します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile

プライマリ / スタンバイ レプリケーションをテストする

レプリケーションが完了したら、両方のサーバーで次のスクリプトを発行して、レプリケーションのステータスを確認します。両方のサーバーで同じ結果が表示され、レプリケーションが正常に完了しているはずです。

  1. プライマリ ノードで、
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    を実行します。

    プライマリと表示されていることを確認します。

  2. スタンバイ ノードで:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    スタンバイと表示されることを確認します。