Estou rodando Postgresql 9.1
no Ubuntu. A versão exata do Postgresql é 9.1+129ubuntu1
como mostra meu gerenciador de pacotes.
Eu tenho 2 bancos de dados que estão ativamente em uso e são usados de um servidor remoto.
Desejo registrar consultas que tenham um longo tempo de execução. Então eu defino os seguintes parâmetros no /etc/postgresql/9.1/main/postgresql.conf
arquivo
log_min_duration_statement = 10000
log_statement = 'mod'
portanto, o Postgresql registrará consultas que demoram mais de 10 segundos.
Mas quando faço reload
a configuração do postgres, o Postgresql começa a registrar todas as consultas que se ajustam ao log_statement
valor. Que defino a duração para 100 segundos para ter certeza
log_min_duration_statement = 100000
Mas o Postgresql continua registrando todas as consultas que correspondem ao log_statement
valor, independentemente do log_min_duration_statement
valor.
Definir log_statement
como none
parecia interromper o registro.
Há algo que eu perdi sobre a configuração?
Você estava perto. Sua última ideia é, na verdade, o caminho a percorrer:
Então, nenhuma instrução será registrada, exceto aquelas executadas por mais de 10 segundos - incluindo a própria string de consulta. O registro pode ter parado porque 10 segundos é um limite alto. Estou usando 2 segundos normalmente, mas YMMV.
Esta resposta relacionada no SO tem mais: