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

デフォルトでは、すべての Postgres ノードがマスターモードでインストールされます。ただし、複数の Postgres ノードを伴う本番環境システムでは、マスター / スタンバイ レプリケーションが行われるように構成してください。そうすることで、マスターノードに障害が発生してもスタンバイ ノードがサーバー トラフィックを引き継ぐことができます。

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

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

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

PG_MASTER=IPorDNSofNewMaster
PG_STANDBY=IPorDNSofNewStandby

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

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

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

  1. どちらの Postgres ノードがマスター サーバーになり、どちらの Postgres ノードがスタンバイ サーバーになるかを決定します。
  2. マスターノードで、構成ファイルを編集して
    PG_MASTER=IPorDNSofNewMaster
    PG_STANDBY=IPorDNSofNewStandby
    を設定します。
  3. 新しいマスターでレプリケーションを有効にします。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  4. スタンバイ ノードで、構成ファイルを編集して
    PG_MASTER=IPorDNSofNewMaster
    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

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