1. Análise de logs

A análise dos logs do PostgreSQL é uma habilidade fundamental para a equipe de TI, permitindo diagnosticar problemas de performance, segurança e estabilidade.

1.1 Localização e Confirmação da Configuração de Logs
A localização dos logs depende de um parâmetro crucial: logging_collector.

Por padrão o log fica na pasta padrão de instalação, no Windows onde foi configurado o diretório para a instalação, no Linux o diretório padrão é: /var/lib/pgsql/<versão>/data, onde dentro da pasta data possui uma com nome log ou pg_log, onde ficam armazenados os logs.

ConfiguraçãoDescriçãoLocalização de Logs
logging_collector = onO PostgreSQL gerencia seus próprios arquivos de log. (Configuração Comum em Pacotes de SO)Diretório log ou pg_log dentro do diretório de dados principal (PGDATA).
logging_collector = offO PostgreSQL envia logs para o daemon de log do Sistema Operacional (e.g., syslog ou journald).Logs do Sistema Operacional (Ex: /var/log/syslog ou journalctl -u postgresql).

Os logs são arquivos de texto simples, onde o seu nome segue o padrão: postgresql-AAAA-MM-DD_HHMMSS.log

1.2. Anatomia de uma Linha de Log
Uma linha de log é estruturada com informações cruciais para o diagnóstico.

ComponenteExemploFunção para o Analista
Timestamp2025-10-23 11:15:30.123 BRTIdentifica quando o evento ocorreu.
PID[23456]O ID do processo do backend do PostgreSQL que gerou a mensagem. Útil para correlacionar com pg_stat_activity.
NívelLOG: ou FATAL:A Severidade da mensagem (veja seção 2.3).
Mensagemconexão recebida: host=[::1] porta=5432Detalhe do evento ocorrido.


1.3. Níveis de Log (Severity)
O nível da mensagem é o primeiro indicador da sua urgência e impacto.

NívelImpactoAção de DBA/Analista
LOGInformações gerais.Monitorar para tendências ou spikes incomuns.
WARNINGAlgo inesperado, mas não fatal.Investigar a causa-raiz se for recorrente.
ERRORUm comando falhou, mas a sessão continua.Foco primário na resolução de erros de aplicação/SQL.
FATALA sessão (conexão) foi terminada.Alerta Imediato. Geralmente falha de autenticação ou banco de dados inexistente.
PANICO banco de dados inteiro foi encerrado.Intervenção Urgente. Indica corrupção ou falha catastrófica.


2. Principais Erros

Seguem alguns dos pricipais erros que podem ocorrer e quais tratativas:

Erro no LogCausa ProvávelAção de DBA/Analista
FATAL: password authentication failed for user "X"Credenciais incorretas (usuário ou senha).Ação: Verificar o pg_hba.conf e a senha do usuário X.
FATAL: database "Y" does not existNome do banco de dados incorreto na string de conexão.Ação: Corrigir a string de conexão ou criar o banco de dados Y.
ERROR: deadlock detectedDuas ou mais transações se bloquearam mutuamente.Ação: Identificar as consultas problemáticas (usando pg_locks e pg_stat_activity) e otimizar a ordem das operações (ou ROLLBACK de uma das transações).
could not write block X: No space left on deviceO disco rígido está cheio.Ação: Prioridade! Liberar espaço em disco (logs antigos, dumps, etc.) e investigar a causa do crescimento.
canceling statement due to statement timeoutUma consulta demorou mais do que o limite definido (statement_timeout).Ação: Otimizar a consulta lenta ou, se justificado, aumentar o valor de statement_timeout (com cautela).