Monitoramento PostgreSQL: Como Monitorar Desempenho, Saúde e Disponibilidade do Banco
Monitoramento PostgreSQL é o processo de acompanhar continuamente a saúde, desempenho, disponibilidade, utilização de recursos e comportamento das cargas de trabalho de um ambiente PostgreSQL. Em ambientes corporativos, monitorar o banco de dados é fundamental para identificar gargalos, antecipar falhas, acompanhar replicação, analisar conexões, detectar problemas de armazenamento e manter os níveis de serviço definidos pelo negócio.
O PostgreSQL disponibiliza um conjunto amplo de mecanismos nativos para observação do ambiente, incluindo estatísticas cumulativas, pg_stat_activity, informações de replicação, estatísticas de WAL, I/O, bancos de dados, tabelas, índices, locks e relatórios de progresso. A documentação oficial também recomenda combinar essas informações com ferramentas de monitoramento do sistema operacional e recursos de análise como EXPLAIN.
O que é Monitoramento PostgreSQL?
Monitoramento PostgreSQL é o conjunto de práticas utilizadas para observar o funcionamento do servidor de banco de dados e identificar alterações que possam afetar desempenho, disponibilidade, capacidade ou segurança operacional.
Um monitoramento corporativo pode acompanhar:
- Disponibilidade do servidor PostgreSQL;
- Número de conexões;
- Consultas em execução;
- Consultas de longa duração;
- Locks e bloqueios;
- Transações;
- Taxa de commits e rollbacks;
- Uso de CPU;
- Uso de memória;
- Utilização de armazenamento;
- Latência de I/O;
- WAL;
- Replicação;
- Lag de servidores standby;
- Checkpoints;
- Autovacuum;
- Uso de tabelas e índices;
- Crescimento dos bancos de dados;
- Erros e eventos operacionais;
- Disponibilidade de espaço em disco.
O objetivo não é simplesmente acumular métricas, mas transformar essas informações em capacidade de diagnóstico, prevenção e tomada de decisão.
Por que monitorar PostgreSQL em ambientes corporativos?
Um banco de dados pode continuar tecnicamente disponível e, ao mesmo tempo, apresentar degradação significativa de desempenho.
Uma aplicação pode, por exemplo, continuar respondendo, mas apresentar aumento progressivo da latência devido a:
- Consultas ineficientes;
- Excesso de conexões;
- Bloqueios;
- Problemas de I/O;
- Falta de índices adequados;
- Autovacuum insuficiente;
- Crescimento excessivo das tabelas;
- Pressão sobre memória;
- Armazenamento próximo do limite;
- Problemas de replicação;
- Acúmulo de WAL;
- Configuração inadequada.
Por isso, monitoramento deve fazer parte da operação normal do PostgreSQL e não ser utilizado apenas quando ocorre um incidente.

Monitoramento nativo do PostgreSQL
O PostgreSQL possui recursos nativos para observar a atividade do banco de dados. A documentação oficial dedica um capítulo específico ao monitoramento e apresenta o sistema de estatísticas cumulativas, visualizações de atividade, replicação, WAL, I/O, tabelas, índices, locks e progresso.
Entre as principais visões utilizadas estão:
pg_stat_activity;pg_stat_replication;pg_stat_wal_receiver;pg_stat_archiver;pg_stat_io;pg_stat_wal;pg_stat_database;pg_stat_database_conflicts;pg_stat_all_tables;pg_stat_all_indexes;pg_statio_all_tables;pg_statio_all_indexes.
A documentação atual também inclui informações relacionadas ao checkpointer, background writer, replicação, subscriptions e outros componentes internos.
pg_stat_activity: monitorando as conexões e consultas
A visão pg_stat_activity é uma das ferramentas mais importantes para diagnosticar o que está acontecendo no PostgreSQL naquele momento.
Ela apresenta informações relacionadas aos processos do servidor e permite observar o estado das conexões e das consultas.
Entre as informações relevantes estão:
- Banco de dados;
- Usuário;
- Processo;
- Estado da sessão;
- Consulta atual;
- Horário de início da consulta;
- Horário de início da transação;
- Cliente conectado;
- Tipo de backend;
- Informações relacionadas à espera.
A documentação oficial descreve pg_stat_activity como uma visão com uma linha por processo do servidor, contendo informações sobre a atividade atual daquele processo.
Estados importantes
Entre os estados que podem ser observados estão:
active;idle;idle in transaction;idle in transaction (aborted).
Uma quantidade elevada de sessões em idle in transaction, por exemplo, pode exigir investigação, principalmente quando essas transações permanecem abertas durante períodos prolongados.
Monitoramento de consultas PostgreSQL
O acompanhamento das consultas é fundamental para identificar problemas de desempenho.
Uma consulta pode consumir recursos excessivos devido a:
- Plano de execução inadequado;
- Ausência de índices;
- Filtros pouco seletivos;
- Joins complexos;
- Grande volume de dados;
- Estatísticas desatualizadas;
- Ordenações pesadas;
- Operações de agregação custosas.
Consultas de longa duração
Consultas que permanecem executando por períodos superiores ao esperado devem ser investigadas.
O tempo isoladamente não determina se uma consulta é problemática. Uma consulta de processamento analítico pode naturalmente executar durante mais tempo do que uma transação OLTP.
Por isso, o monitoramento deve considerar o comportamento esperado da aplicação.
EXPLAIN e análise de desempenho
Depois de identificar uma consulta problemática, o administrador pode utilizar EXPLAIN e outras ferramentas do PostgreSQL para analisar o plano de execução. A documentação oficial recomenda esse tipo de investigação quando uma consulta de baixo desempenho é identificada.
Monitoramento de conexões PostgreSQL
O número de conexões é uma métrica importante em ambientes corporativos.
O excesso de conexões pode aumentar o consumo de memória e outros recursos do servidor.
O monitoramento deve acompanhar:
- Número total de conexões;
- Conexões ativas;
- Conexões ociosas;
- Conexões em transação;
- Conexões bloqueadas;
- Conexões por aplicação;
- Conexões por usuário;
- Conexões por banco.
Também é importante comparar o comportamento observado com o limite configurado para o ambiente e com o padrão de utilização da aplicação.
Monitoramento de Locks e bloqueios
Locks são fundamentais para garantir a consistência das transações, mas bloqueios prolongados podem afetar significativamente uma aplicação.
Um cenário de bloqueio pode produzir uma cadeia em que uma sessão impede outra de continuar, provocando aumento progressivo da latência.
O que investigar?
- Quem está bloqueando;
- Quem está aguardando;
- Qual objeto está envolvido;
- Qual transação mantém o lock;
- Há quanto tempo o bloqueio existe;
- Qual aplicação originou a operação.
A documentação oficial do PostgreSQL inclui uma seção específica para visualização de locks dentro dos recursos de monitoramento.
Monitoramento PostgreSQL e replicação
Em ambientes com alta disponibilidade, monitorar somente o servidor primário não é suficiente.
Também é necessário acompanhar os servidores standby e os processos responsáveis pela replicação.
Entre os indicadores importantes estão:
- Status da replicação;
- Servidor standby conectado;
- Lag de replicação;
- WAL enviado;
- WAL recebido;
- WAL aplicado;
- Estado do WAL receiver;
- Estado do WAL sender;
- Conflitos no standby.
O PostgreSQL disponibiliza pg_stat_replication e outras visões relacionadas à replicação para acompanhamento desses processos.
Por que monitorar replication lag?
O replication lag representa uma diferença operacional importante entre o servidor primário e o standby.
Se o atraso crescer continuamente, o servidor secundário poderá não estar preparado para assumir imediatamente a operação no caso de uma falha.
Monitoramento de WAL
O WAL é fundamental para recuperação e replicação PostgreSQL.
Por isso, seu comportamento também precisa ser acompanhado.
O PostgreSQL disponibiliza estatísticas específicas de WAL, incluindo a visão pg_stat_wal, além de informações relacionadas ao arquivamento.
Indicadores relevantes
- Volume de WAL produzido;
- Atividade de WAL;
- Arquivamento;
- Falhas de arquivamento;
- Atrasos;
- Acúmulo de arquivos;
- Impacto sobre armazenamento.

Monitoramento de I/O PostgreSQL
I/O é um dos componentes mais importantes para análise de desempenho de bancos de dados.
O PostgreSQL possui estatísticas específicas para acompanhar operações de entrada e saída. A documentação atual inclui pg_stat_io, que fornece estatísticas de I/O em diferentes contextos e tipos de backend.
Por que monitorar I/O?
Um ambiente pode apresentar alto tempo de resposta mesmo quando CPU e memória parecem adequadas, simplesmente porque o armazenamento não consegue atender à demanda.
O monitoramento deve considerar:
- Leituras;
- Escritas;
- Latência;
- Cache hits;
- Operações de checkpoint;
- Operações relacionadas ao WAL;
- Capacidade do dispositivo;
- Fila de I/O.
Monitoramento de bancos de dados
A visão pg_stat_database fornece estatísticas em nível de banco.
Entre os dados disponíveis estão informações relacionadas a transações, blocos lidos, blocos encontrados no cache e outras estatísticas acumuladas.
Essas informações permitem comparar o comportamento dos diferentes bancos hospedados em um mesmo cluster.
Indicadores importantes
- Transações confirmadas;
- Transações revertidas;
- Blocos lidos;
- Blocos encontrados no cache;
- Número de conexões;
- Conflitos;
- Atividade geral do banco.
Monitoramento de tabelas e índices
O PostgreSQL também oferece estatísticas relacionadas a tabelas e índices.
Esses dados são importantes para identificar padrões de acesso e avaliar a utilização dos objetos do banco.
As visões pg_stat_all_tables e pg_stat_all_indexes fazem parte do sistema de estatísticas cumulativas documentado pelo PostgreSQL.
Por que monitorar índices?
Um índice que não é utilizado pode representar custo de armazenamento e manutenção sem proporcionar benefício correspondente.
Por outro lado, a ausência de um índice necessário pode provocar planos de execução muito mais custosos.
O monitoramento deve ser combinado com análise de consultas e planos de execução.
Monitoramento de VACUUM e Autovacuum
O PostgreSQL utiliza VACUUM para tarefas essenciais relacionadas à manutenção das tabelas.
Em ambientes corporativos, é importante acompanhar se a manutenção automática está ocorrendo de acordo com o perfil da carga.
Indicadores relacionados a tabelas e processos de manutenção podem ajudar a identificar situações que merecem investigação.
Problemas que podem exigir atenção
- Acúmulo elevado de tuplas mortas;
- Autovacuum atrasado;
- Tabelas com crescimento anormal;
- Transações antigas;
- Necessidade recorrente de intervenção manual.
Monitoramento de espaço em disco
A falta de espaço em disco é uma das situações mais críticas que podem afetar um servidor PostgreSQL.
A documentação oficial possui uma seção específica sobre monitoramento de utilização de disco e destaca o risco de falha quando o sistema fica sem espaço disponível.
O monitoramento deve acompanhar:
- Espaço livre;
- Crescimento dos bancos;
- Crescimento de tabelas;
- Crescimento de índices;
- Diretórios de WAL;
- Área de backups;
- Arquivos temporários;
- Volume disponível para recuperação.
Previsão de capacidade
Não basta alertar quando o disco estiver quase cheio.
Em ambientes corporativos, é recomendável analisar a tendência de crescimento e antecipar quando a capacidade atual poderá deixar de ser suficiente.
Monitoramento do sistema operacional
O monitoramento PostgreSQL não deve ser isolado do sistema operacional.
A documentação oficial recomenda também ferramentas tradicionais de observação do sistema, como ps, top, iostat e vmstat.
Isso permite correlacionar:
- CPU do servidor;
- Memória;
- Swap;
- I/O;
- Rede;
- Processos;
- Carga do sistema;
- Atividade do PostgreSQL.
Observabilidade PostgreSQL
Monitoramento e observabilidade são conceitos relacionados, mas não idênticos.
Monitoramento acompanha métricas e condições previamente definidas.
Observabilidade procura fornecer informações suficientes para compreender comportamentos complexos do ambiente e investigar causas desconhecidas.
Em PostgreSQL, uma estratégia de observabilidade pode combinar:
- Métricas;
- Logs;
- Consultas;
- Estatísticas internas;
- Informações do sistema operacional;
- Eventos de replicação;
- Informações de armazenamento;
- Alertas;
- Histórico de desempenho.
Monitoramento PostgreSQL e logs
Os logs complementam as estatísticas do banco.
Enquanto as views de monitoramento permitem observar determinadas condições do ambiente, os logs podem registrar eventos e informações úteis para investigação posterior.
Uma política corporativa de observabilidade deve definir:
- Quais eventos serão registrados;
- Por quanto tempo os logs serão armazenados;
- Como serão centralizados;
- Como serão pesquisados;
- Quem terá acesso;
- Como serão protegidos;
- Como serão correlacionados com métricas.
Alertas para PostgreSQL
Monitoramento sem alertas adequados pode gerar excesso de informação sem capacidade de reação.
Os alertas devem ser baseados em condições que realmente indiquem risco ou degradação.
Exemplos de alertas
- PostgreSQL indisponível;
- Espaço em disco abaixo do limite;
- Replication lag acima do aceitável;
- Consulta com duração anormal;
- Excesso de conexões;
- Bloqueio prolongado;
- Falha de arquivamento WAL;
- Crescimento anormal de WAL;
- Falha de backup;
- Falha de servidor standby;
- Degradação significativa de I/O.
Alertas precisam de contexto
Um bom sistema de alertas deve diferenciar uma condição temporária de uma situação que exige intervenção.
Limites muito agressivos podem gerar excesso de notificações e fazer com que incidentes importantes sejam ignorados.

Monitoramento PostgreSQL em alta disponibilidade
Em uma arquitetura de alta disponibilidade, o monitoramento deve acompanhar todos os componentes necessários para determinar se o ambiente está realmente preparado para um failover.
Isso inclui:
- Servidor primário;
- Servidores standby;
- Replicação;
- WAL;
- Rede;
- Armazenamento;
- Processos de failover;
- Aplicações.
Uma arquitetura pode aparentar estar saudável no nível do PostgreSQL e ainda apresentar uma falha em outro componente que impeça uma recuperação adequada.
Monitoramento PostgreSQL em Disaster Recovery
O monitoramento também deve fazer parte da estratégia de Disaster Recovery.
Além do ambiente primário, o ambiente de recuperação precisa ser monitorado.
É necessário saber:
- Se o standby está conectado;
- Se a replicação está funcionando;
- Qual é o atraso;
- Se os WAL estão sendo recebidos;
- Se os backups estão disponíveis;
- Se o armazenamento possui capacidade;
- Se os procedimentos de recuperação continuam válidos.
Isso conecta diretamente monitoramento, replicação, failover e Disaster Recovery.
Boas práticas de Monitoramento PostgreSQL
- Definir métricas essenciais antes de implementar dashboards;
- Monitorar PostgreSQL e sistema operacional em conjunto;
- Acompanhar conexões e consultas;
- Monitorar locks;
- Monitorar replicação;
- Monitorar WAL;
- Monitorar espaço em disco;
- Acompanhar crescimento;
- Monitorar backups;
- Utilizar alertas acionáveis;
- Manter histórico das métricas;
- Correlacionar métricas e logs;
- Testar os mecanismos de alerta;
- Revisar os limites periodicamente.
Como estruturar um projeto de Monitoramento PostgreSQL
Definir o que deve ser monitorado
O primeiro passo é identificar os componentes críticos do ambiente.
Definir indicadores
Os indicadores devem representar disponibilidade, desempenho, capacidade e saúde operacional.
Definir limites
Cada indicador deve possuir critérios que permitam distinguir comportamento normal de situação de risco.
Implementar coleta
As estatísticas nativas do PostgreSQL devem ser combinadas com informações do sistema operacional e demais componentes da infraestrutura.
Construir dashboards
Os dashboards devem apresentar as informações relevantes de forma objetiva, permitindo identificar rapidamente anomalias.
Implementar alertas
Os alertas devem direcionar a equipe para condições que exigem investigação ou intervenção.
Testar
Os mecanismos de monitoramento devem ser testados simulando situações reais de falha e degradação.
FAQ — Perguntas Frequentes
O que é Monitoramento PostgreSQL?
É o acompanhamento contínuo da disponibilidade, desempenho, atividade, recursos, replicação, armazenamento e demais componentes que influenciam a operação do PostgreSQL.
O PostgreSQL possui monitoramento nativo?
Sim. O PostgreSQL possui diversas views e mecanismos nativos de estatísticas e atividade, incluindo pg_stat_activity, pg_stat_replication, pg_stat_database, pg_stat_io e outras.
O que é pg_stat_activity?
pg_stat_activity é uma view que apresenta informações sobre a atividade atual dos processos e conexões do PostgreSQL.
O PostgreSQL permite monitorar replicação?
Sim. O PostgreSQL possui views específicas para acompanhar processos e estatísticas relacionados à replicação, incluindo pg_stat_replication.
É possível monitorar locks no PostgreSQL?
Sim. O PostgreSQL disponibiliza mecanismos para visualizar locks e investigar sessões que estejam aguardando ou mantendo bloqueios.
O PostgreSQL permite monitorar I/O?
Sim. As versões atuais disponibilizam estatísticas de I/O por meio de pg_stat_io, além de outras estatísticas relacionadas ao funcionamento do servidor.
O monitoramento deve incluir o sistema operacional?
Sim. A documentação oficial recomenda combinar o monitoramento do PostgreSQL com ferramentas do sistema operacional, como ps, top, iostat e vmstat.
Qual é a diferença entre monitoramento e observabilidade?
Monitoramento normalmente acompanha indicadores conhecidos e condições previamente definidas. Observabilidade busca fornecer informações suficientes para compreender e investigar o comportamento do ambiente, inclusive situações que não foram previamente previstas.
Quais métricas PostgreSQL são mais importantes?
Entre as mais importantes estão disponibilidade, conexões, consultas, locks, transações, I/O, armazenamento, WAL, replicação, replication lag, tabelas, índices e processos de manutenção.
Monitoramento PostgreSQL é importante para Disaster Recovery?
Sim. O monitoramento permite verificar continuamente se replicação, backups, WAL, servidores standby e armazenamento continuam preparados para uma eventual recuperação.
Links Relacionados
- Cluster PostgreSQL
- Replicação PostgreSQL
- Failover PostgreSQL
- Disaster Recovery PostgreSQL
- EDB Failover Manager
- EDB Backup and Recovery
- EDB Control Center
- EDB Distributed
- PostgreSQL para Missão Crítica
- PostgreSQL Corporativo
Recursos Oficiais
- PostgreSQL — documentação oficial sobre monitoramento da atividade do banco de dados. Documentação PostgreSQL — Monitoring Database Activity
- PostgreSQL — documentação oficial sobre o sistema de estatísticas cumulativas. Documentação PostgreSQL — The Cumulative Statistics System
- PostgreSQL — documentação oficial sobre
pg_stat_activity. Documentação PostgreSQL — Statistics Views - PostgreSQL — documentação oficial sobre monitoramento de replicação. Documentação PostgreSQL — Replication Statistics
- PostgreSQL — documentação oficial sobre monitoramento de I/O. Documentação PostgreSQL — I/O Statistics
- PostgreSQL — documentação oficial sobre locks. Documentação PostgreSQL — Viewing Locks
- PostgreSQL — documentação oficial sobre relatórios de progresso. Documentação PostgreSQL — Progress Reporting
- PostgreSQL — documentação oficial sobre monitoramento de uso de disco. Documentação PostgreSQL — Monitoring Disk Usage
- PostgreSQL — documentação oficial sobre EXPLAIN e análise de consultas. Documentação PostgreSQL — Using EXPLAIN
Conclusão
Monitoramento PostgreSQL é um componente essencial da operação de ambientes corporativos porque permite transformar informações internas do banco em indicadores de saúde, desempenho, capacidade e disponibilidade.
O PostgreSQL oferece uma base nativa bastante ampla para essa finalidade, incluindo estatísticas cumulativas, atividade das sessões, replicação, WAL, I/O, bancos de dados, tabelas, índices, locks, progresso e utilização de disco.
Entretanto, um ambiente corporativo deve ir além da simples consulta de métricas. O monitoramento precisa estar integrado a alertas, histórico, análise de tendências, logs, infraestrutura, replicação, backup, alta disponibilidade e Disaster Recovery.
Quando essas informações são tratadas de forma integrada, o monitoramento deixa de ser apenas uma ferramenta de diagnóstico e passa a fazer parte da estratégia de continuidade, desempenho e confiabilidade do PostgreSQL.
Modernize seu Banco de Dados com a Dominus Tech

👉Planejando uma Migração Oracle para PostgreSQL?
A Dominus Tech é Parceira Gold da EnterpriseDB e apoia empresas em todas as etapas da modernização de bancos de dados Oracle para PostgreSQL. Nossa equipe possui experiência em ambientes corporativos de missão crítica, oferecendo serviços de assessment, planejamento, migração, otimização de desempenho, alta disponibilidade, observabilidade e suporte especializado para plataformas PostgreSQL Enterprise.
✔ Parceira Gold da EnterpriseDB no Brasil
A migração de Oracle para PostgreSQL representa uma oportunidade estratégica para reduzir custos de licenciamento, modernizar a infraestrutura e construir uma plataforma preparada para o futuro. Com uma metodologia estruturada e ferramentas especializadas da EnterpriseDB, ajudamos organizações a realizar essa transição com segurança, preservando aplicações críticas e minimizando riscos operacionais.
👉Entre em contato com nossos especialistas e solicite uma avaliação técnica do seu ambiente Oracle. Descubra a melhor estratégia para migrar para PostgreSQL com segurança, desempenho e redução de custos.
