Como lidar com um failover de banco de dados PostgreSQL

Faça o seguinte durante um failover de banco de dados do PostgreSQL:

  1. Pare apigee-postgresql no mestre atual, se ele ainda estiver em execução:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  2. Acesse o nó de espera e invoque o seguinte comando para torná-lo o mestre:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master IPorDNSofOldMaster

Se o mestre antigo for restaurado em algum momento no futuro, torne-o um nó de espera:

  1. No mestre atual, edite o arquivo de configuração para definir:
    PG_MASTER=IPorDNSofNewMaster
    PG_STANDBY=IPorDNSofOldMaster
  2. Ative a replicação no novo mestre:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
  3. No mestre antigo, edite o arquivo de configuração para definir:
    PG_MASTER=IPorDNSofNewMaster
    PG_STANDBY=IPorDNSofOldMaster
  4. Pare apigee-postgresql no mestre antigo:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  5. No mestre antigo, limpe os dados antigos do Postgres:
    rm -rf /opt/apigee/data/apigee-postgresql/
  6. Configure o mestre antigo como em espera:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  7. Após a conclusão da replicação, emita os seguintes scripts nos dois servidores para verificar o status dela. O sistema precisa exibir resultados idênticos nos dois servidores para garantir uma replicação bem-sucedida:
    1. No nó mestre, execute:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

      Verifique se ele indica que é o mestre.

    2. No nó de espera:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

      Verifique se está em espera.