PostgreSQL データベースのフェイルオーバーの処理

PostgreSQL データベースのフェイルオーバーが発生した場合は、次の手順を行います。

  1. 現在のマスターでまだ apigee-postgresql が動作している場合は、次のコマンドを使用して停止します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  2. スタンバイ ノードに移動して次のコマンドを呼び出し、スタンバイ ノードをマスターにします。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master IPorDNSofOldMaster

旧マスターが復旧したら、スタンバイ ノードに戻します。

  1. 現在のマスターで構成ファイルを編集し、次を設定します。
    PG_MASTER=IPorDNSofNewMaster
    PG_STANDBY=IPorDNSofOldMaster
  2. 新しいマスターノードでレプリケーションを有効にします。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
  3. 旧マスターで構成ファイルを編集し、次を設定します。
    PG_MASTER=IPorDNSofNewMaster
    PG_STANDBY=IPorDNSofOldMaster
  4. 旧マスターで apigee-postgresql を停止します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  5. 旧マスターから、古い Postgres データをすべて削除します。
    rm -rf /opt/apigee/data/apigee-postgresql/
  6. 旧マスターをスタンバイとして構成します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  7. レプリケーションが完了したら、両方のサーバーで次のスクリプトを発行して、レプリケーションのステータスを確認します。両方のサーバーで同じ結果が表示されれば、レプリケーションは成功しています。
    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

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