What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Ter logs e métricas não garante que uma equipe descubra a tempo que uma réplica parou de acompanhar o banco primário. Em um relato publicado no DEV Community em 2 de outubro de 2026, Francisco das Chagas afirma que sua equipe passou 8 horas e 40 minutos operando sem uma réplica disponível e sem saber. O problema, segundo ele, não foi a falta de dados, mas a falta de detecção acionável.

O que aconteceu, segundo o relato

Francisco das Chagas conta que uma manutenção automática do provedor de nuvem reciclou dois servidores do banco de produção, com seis minutos entre os eventos. O failover teria sido concluído em quatro segundos; depois, a reciclagem do novo primário durante a ressincronização teria deixado a réplica travada. O autor diz que a equipe ficou 8 horas e 40 minutos sem cópia de segurança do banco e sem perceber.

Mais tarde, o negócio notou o impacto. Na revisão descrita por Chagas, logs e métricas existiam, mas uma métrica de saúde da réplica continuava indicando “saudável”. O sinal que revelou o problema foi a diferença entre o que o primário escreveu e o que a réplica aplicou. A publicação é um relato pessoal, não uma investigação auditada de forma independente; não informa provedor, versão do PostgreSQL, configuração de replicação, detalhes do alerta ou dados de impacto.

Por que coletar telemetria não basta

Uma métrica disponível só ajuda se representar uma condição relevante, for interpretada corretamente e chegar à pessoa capaz de agir. Um painel pode conservar dados úteis para análise posterior sem detectar uma falha em tempo real. Chagas resume a distinção assim: “Telemetria sem alerta é arqueologia. O MTTR não veio de falta de dado, veio de falta de detecção.”

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Também importa a rota de notificação. O autor diz que um aviso em um card de chat não acordou ninguém às 00:34. Isso descreve aquele incidente; não é uma regra sobre toda ferramenta de chat. O ponto operacional é verificar se o alerta chega ao plantão pelo canal e pela severidade que exigem uma resposta imediata, e se alguém confirma o recebimento.

O que as posições de WAL revelam

No PostgreSQL, a replicação pode ser observada em etapas. A vista pg_stat_replication apresenta uma linha por processo WAL sender conectado a uma réplica e inclui posições como sent_lsn, write_lsn, flush_lsn e replay_lsn. Elas ajudam a distinguir o WAL enviado pelo primário, escrito pela réplica, descarregado em disco e reproduzido. replay_lsn corresponde à posição já reproduzida.

Comparar essas etapas pode revelar onde o avanço parou, em vez de depender apenas de um rótulo genérico de saúde. Isso não substitui a interpretação do contexto: a consulta mostra posições e estado observados, mas não prova por si só que a réplica está íntegra, recuperável ou disponível para failover.

Como interpretar lag sem confiar em um único número

A documentação do PostgreSQL 17 descreve replay_lag como um intervalo entre o flush local recente e a confirmação de que a réplica escreveu, descarregou e aplicou os dados. Em replicação assíncrona, ele aproxima o atraso até que transações recentes fiquem visíveis na réplica. Não é uma previsão de quanto tempo ela levará para alcançar o primário.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Há ainda dois casos importantes para o monitoramento: quando uma réplica ociosa já alcançou o primário, valores de lag podem persistir por pouco tempo e depois tornar-se NULL; quando a replicação está quebrada, uma métrica temporal baseada no último replay pode não conseguir representar quanto o primário avançou. Portanto, o sistema de alertas deve definir explicitamente como tratar um valor nulo, ausente ou antigo, em vez de interpretá-lo automaticamente como ausência de problema.

No Cloud SQL para PostgreSQL, o Google Cloud distingue network_lag, associado ao atraso antes da chegada, de replica_lag, ligado ao atraso de aplicação. A métrica temporal de lag do serviço é uma aproximação baseada em now() - pg_last_xact_replay_timestamp(); se a replicação estiver interrompida, a réplica pode não saber o avanço total do primário. Essas métricas são específicas da documentação do serviço gerenciado, não uma garantia de que toda instalação PostgreSQL exponha os mesmos indicadores.

Verifique também se o fluxo de replicação está ativo

Para Cloud SQL para PostgreSQL, o Google Cloud descreve a consulta de pg_stat_wal_receiver para verificar o campo status e o horário last_msg_receipt_time. Um receiver presente, em streaming e com recebimento recente fornece evidência de fluxo atual; uma consulta sem resultado indica que não havia receiver naquela verificação. Isso é um sinal pontual, não uma garantia de integridade ou disponibilidade futura.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Transforme os sinais em um alerta que gere ação

Um monitoramento de réplica precisa responder não só “qual é o valor da métrica?”, mas “qual condição exige intervenção e quem será avisado?”. Ao revisar a configuração do seu ambiente, verifique:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Fluxo: se há um receiver ativo e mensagens recentes, quando esses sinais estão disponíveis.
  • Progresso: se as posições enviadas, escritas, descarregadas e reproduzidas avançam conforme esperado.
  • Localização do atraso: se o problema está antes da chegada do WAL ou na aplicação pela réplica, quando o ambiente oferece métricas separadas.
  • Dados inválidos ou antigos: como o sistema trata valor nulo, métrica ausente e ausência de atualização.
  • Regra e duração: qual limiar, por quanto tempo, justifica uma notificação; isso depende da tolerância e do comportamento do seu sistema.
  • Plantão: qual canal acorda a pessoa responsável, qual severidade é usada e como se confirma o recebimento.

Os detalhes de limiares, roteamento e confirmação não são especificados no relato de Chagas; devem ser definidos para o ambiente e para o risco que a equipe precisa controlar. A pergunta que ele deixa é direta: “Em gestão de risco, a pergunta certa não é ‘temos o dado?’. É ‘quanto tempo levamos para saber?’”

Referências