1. Análise de logsA 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ção | Descrição | Localização de Logs | logging_collector = on | O 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 = off | O 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. | Componente | Exemplo | Função para o Analista | | Timestamp | 2025-10-23 11:15:30.123 BRT | Identifica 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ível | LOG: ou FATAL: | A Severidade da mensagem (veja seção 2.3). | | Mensagem | conexão recebida: host=[::1] porta=5432 | Detalhe 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ível | Impacto | Ação de DBA/Analista | LOG | Informações gerais. | Monitorar para tendências ou spikes incomuns. | WARNING | Algo inesperado, mas não fatal. | Investigar a causa-raiz se for recorrente. | ERROR | Um comando falhou, mas a sessão continua. | Foco primário na resolução de erros de aplicação/SQL. | FATAL | A sessão (conexão) foi terminada. | Alerta Imediato. Geralmente falha de autenticação ou banco de dados inexistente. | PANIC | O banco de dados inteiro foi encerrado. | Intervenção Urgente. Indica corrupção ou falha catastrófica. |
2. Principais ErrosSeguem alguns dos pricipais erros que podem ocorrer e quais tratativas: | Erro no Log | Causa Provável | Açã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 exist | Nome 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 detected | Duas 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 device | O 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 timeout | Uma 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). |
|