PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como registrar consultas no PostgreSQL

  • Localizando o arquivo de configuração
    • Localize o caminho do diretório de dados
  • Configurando o PostgreSQL para gerar saída de log
    • Reinicie o serviço PostgreSQL
  • Verificando a geração do registro

A ativação do registro no PostgreSQL é bastante fácil alterando algumas configurações e reiniciando o servidor. Embora essas configurações possam ser alteradas “na memória”, permitindo assim o log temporário apenas para essa sessão de cliente específica, neste tutorial abordaremos como configurar o postgres para criar permanentemente arquivos de log iterativos para todas as sessões e conexões.

Localizando o arquivo de configuração


Se você não tiver certeza de onde o arquivo postgresql.conf config está localizado, o método mais simples para encontrar a localização é conectar-se ao cliente postgres (psql ) e emita o SHOW config_file; comando:
postgres=# SHOW config_file;
               config_file
------------------------------------------
 /etc/postgresql/9.3/main/postgresql.conf

Neste caso, podemos ver o caminho para o postgresql.conf arquivo para este servidor é /etc/postgresql/9.3/main/postgresql.conf . Agora basta abrir esse arquivo com seu editor de texto favorito e podemos começar a alterar as configurações:
$ nano /etc/postgresql/9.3/main/postgresql.conf

Localize o caminho do diretório de dados


Também é uma boa ideia confirmar o caminho dos data diretório para a instalação do postgres. Isso será útil mais tarde, e recuperar o caminho é uma questão de outro simples SHOW demonstração:
postgres=# SHOW data_directory;
        data_directory
------------------------------
 /var/lib/postgresql/9.3/main

Em algumas instalações, o arquivo de configuração e os data diretório estará no mesmo caminho, enquanto em outros (como este exemplo), eles são diferentes. De qualquer forma, copie estes data caminho do diretório para uso posterior.

Configurando PostgreSQL para gerar saída de log


Com o postgresql.conf arquivo aberto, role para baixo até o ERROR REPORTING AND LOGGING seção e você provavelmente verá várias opções de configuração comentadas. As mais críticas dessas configurações são log_destination e logging_collector . Abaixo estão as configurações recomendadas, mas sinta-se à vontade para alterá-las para atender às suas próprias necessidades:
#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

log_destination = 'csvlog'              # Valid values are combinations of
                                        # stderr, csvlog, syslog, and eventlog,
                                        # depending on platform.  csvlog
                                        # requires logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on          # Enable capturing of stderr and csvlog
                                        # into log files. Required to be on for
                                        # csvlogs.
                                        # (change requires restart)

# These are only used if logging_collector is on:
log_directory = 'pg_log'                # directory where log files are written,
                                        # can be absolute or relative to PGDATA
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
                                        # can include strftime() escapes

Aqui estamos dizendo ao postgres para gerar logs no CSV formato e enviá-los para o pg_log diretório (dentro do data diretório). Também removemos o comentário do log_filename configuração para produzir algum nome próprio, incluindo carimbos de data/hora para os arquivos de log.

Você pode encontrar informações detalhadas sobre todas essas configurações na official documentation .

Reiniciar o serviço PostgreSQL


A etapa final é reiniciar o serviço PostgreSQL para que essas configurações, em particular logging_collector , terá efeito. A execução de uma reinicialização do postgres será diferente de sistema para sistema, mas normalmente para um sistema unix, o comando será algo assim:
$ service postgresql restart
 * Restarting PostgreSQL 9.3 database server                               [ OK ]

Verificando a geração de log


Depois que o sistema for reiniciado, o registro deve começar imediatamente. Para garantir que este seja o caso, navegue até o data/pg_log diretório de sua instalação do postgres. Lembre-se de que pegamos os data caminho do diretório anterior, então simplesmente navegue para esse diretório adicionando /pg_log até o final para entrar no diretório de log:
$ cd /var/lib/postgresql/9.3/main/pg_log

Agora liste os arquivos e você verá que um arquivo de log foi criado após a reinicialização do serviço anterior:
$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv

Aí temos; arquivos de log gerados automaticamente são habilitados com PostgreSQL alterando apenas algumas configurações.