Alta disponibilidade

Alta disponibilidade no PostgreSQL: replicação, Patroni e failover

Como funciona alta disponibilidade no PostgreSQL com streaming replication, Patroni e failover testado. RPO, RTO e erros comuns.

14 de outubro de 20268 min de leituraPor equipe PostDB

Alta disponibilidade não é ter uma réplica. É garantir que a aplicação continue funcionando quando um servidor falha, com perda de dados dentro do aceitável e tempo de recuperação conhecido. Isso exige arquitetura, automação e teste.

Comece por RPO e RTO

RPO é quanto de dados você aceita perder em uma falha. RTO é quanto tempo a operação pode ficar indisponível. Esses dois números definem a arquitetura: replicação síncrona ou assíncrona, quantidade de réplicas, necessidade de quorum e orçamento.

  • RPO zero: replicação síncrona, com impacto na latência de escrita
  • RPO de segundos: replicação assíncrona com monitoramento de lag
  • RTO de minutos: failover automatizado e aplicação com reconexão
  • RTO maior: procedimento manual documentado e ensaiado

Streaming replication

O primário envia o WAL para as réplicas, que aplicam as alterações. A réplica pode atender leitura, mas não aceita escrita até ser promovida. O atraso de aplicação do WAL é o lag, que precisa ser monitorado antes de afetar relatórios e decisões.

SELECT client_addr, state, sent_lsn, replay_lsn,
       pg_wal_lsn_diff(sent_lsn, replay_lsn) AS lag_bytes
FROM pg_stat_replication;

Patroni e quorum

Patroni coordena a eleição do primário usando um armazenamento de consenso, como etcd. Com quorum, o cluster evita que dois nós se promovam ao mesmo tempo. A configuração precisa definir quem pode promover, como a aplicação encontra o primário e o que acontece quando o nó antigo volta.

Failover precisa ser testado

O teste de failover é o que separa configuração de operação. Simule queda do primário, meça o tempo até a aplicação voltar, valide escrita e leitura e verifique se o nó antigo retorna como réplica sem divergência. Faça isso em janela controlada e registre o resultado.

  • Derrubar o primário e medir RTO real
  • Validar que a aplicação reconectou sem intervenção manual
  • Conferir replicação e lag após a promoção
  • Testar o retorno do nó antigo ao cluster
  • Revisar alertas e runbook com o que o teste revelou

Erros comuns

  • Réplica que nunca foi promovida em teste
  • Aplicação apontando para IP fixo do primário
  • Lag alto tratado como normal
  • Falta de quorum e risco de split-brain
  • Backup dependente do mesmo servidor do banco
  • Runbook desatualizado ou sem dono

Conclusão

Alta disponibilidade é um contrato com a operação: RPO, RTO e procedimento claro. A tecnologia é parte; o teste é o que prova que funciona. Se a sua réplica nunca foi promovida, o ambiente ainda não tem alta disponibilidade — tem uma cópia.

Precisa de ajuda com este tema?

A PostDB atua com DBA gerenciado, migração, tuning e alta disponibilidade para PostgreSQL. O diagnóstico inicial de 30 minutos é gratuito.

Perguntas frequentes

Qual a diferença entre replicação e alta disponibilidade?

Replicação copia dados para outro servidor. Alta disponibilidade inclui detecção de falha, promoção da réplica, redirecionamento da aplicação e procedimentos testados. Sem essas partes, a réplica existe mas não assume a operação.

Patroni é obrigatório?

Não. Patroni é uma opção comum para automatizar cluster, quorum e failover no PostgreSQL. Ambientes menores podem usar replicação manual com procedimento documentado, desde que o teste de promoção seja feito.

O que é split-brain?

É quando dois nós acreditam ser o primário ao mesmo tempo, aceitando escritas divergentes. Um mecanismo de quorum e regras claras de promoção reduzem esse risco.

Contato

Vamos olhar o seu PostgreSQL por dentro

Conte o que está acontecendo. Em até 1 hora útil, um especialista responde com os próximos passos — sem script de vendas.

  • WhatsApp / Telefone

    (85) 98200-3093
  • Endereço

    Rua Cônego de Castro, 5185, Loja 01, Canindezinho
    Fortaleza/CE · CEP 60763-433

  • Horário

    Segunda a sexta, 8h às 18h. Plantão 24/7 em contratos de suporte.

Seus dados são usados apenas para responder ao contato.

Prefere WhatsApp? Falar agora