Documentação do PostgreSQL 7.4.1 | ||||
---|---|---|---|---|
Anterior | Início | Capítulo 21. Rotinas de manutenção do banco de dados | Fim | Próxima |
É uma boa idéia salvar a saída do registro (log) do servidor de banco de dados em algum lugar, em vez de simplesmente direcionar para /dev/null. A saída do registro é valiosa para fazer diagnóstico de problemas. Entretanto, a saída do registro tende a se tornar volumosa (especialmente nos níveis de depuração altos), e não será desejado salvá-la indefinidamente. É necessário fazer a "rotação" dos arquivos de registro, para que sejam iniciados novos arquivos e os arquivos antigos sejam removidos periodicamente.
Se for simplesmente direcionada a saída stderr do postmaster para um arquivo, haverá uma saída de registro, mas a única maneira de truncar o arquivo de registro será parando e reiniciando o postmaster, o que pode ser adequado em um ambiente de desenvolvimento, mas poucos ambientes de produção vão considerar este comportamento aceitável.
Outra abordagem para gerenciar a saída do registro, apropriada para ambientes de produção, é enviar a saída para syslog e deixar que algum programa cuide da rotação do registro. Para que isto seja feito, deve ser definido no arquivo postgresql.conf o parâmetro de configuração syslog com o valor 2 (para registrar apenas no syslog). Então, pode ser enviado o sinal SIGHUP para o processo (daemon) syslogd para que este realize a reinicialização (fechar todos os arquivos abertos, ler novamente o arquivo de configuração, e iniciar a facilidade syslog novamente). [1] [2] Se for desejado automatizar a rotação do registro, pode ser configurado o programa logrotate para trabalhar com os arquivos de registro do syslog..
Entretanto, em muitos sistemas o syslog não é muito confiável, particularmente com mensagens de log grandes; pode truncar ou remover as mensagens justamente quando forem mais necessárias. Pode ser considerado mais útil enviar a saída stderr do postmaster para algum tipo de programa de rotação do log. Se o servidor for inicializado pelo pg_ctl, então a saída stderr do postmaster já estará redirecionada para stdout e, portanto, somente será necessário utilizar o operador pipe (|), como, por exemplo:
pg_ctl start | logrotate
A distribuição do PostgreSQL não inclui um programa adequado para rotação do log, mas existem vários programas disponíveis na Internet; um deles, por exemplo, está incluído na distribuição do Apache.
[1] |
Fedora Core 3 — kill -s SIGHUP `cat /var/run/syslogd.pid` (N. do T.) |
[2] |
Syslogd é um mecanismo que permite que qualquer comando registre mensagens na console do sistema e/ou em um arquivo. O daemon syslogd recebe as mensagens dos comandos e envia para o destino descrito no arquivo de configuração ( /etc/syslog.conf ). O syslogd daemon lê a configuração quando é inicializado e quando recebe um signal de hangup ( kill -HUP processo ). Dicas-L (N. do T.) |