je cours Postgresql 9.1
sur Ubuntu. La version exacte de Postgresql est 9.1+129ubuntu1
comme le montre mon gestionnaire de paquets.
J'ai 2 bases de données activement utilisées et utilisées à partir d'un serveur distant.
Je souhaite enregistrer les requêtes qui ont un long temps d'exécution. J'ai donc défini les paramètres suivants dans le /etc/postgresql/9.1/main/postgresql.conf
fichier
log_min_duration_statement = 10000
log_statement = 'mod'
Postgresql enregistrera donc les requêtes qui durent plus de 10 secondes.
Mais quand je reload
la configuration postgres, Postgresql commence à enregistrer chaque requête qui correspond à la log_statement
valeur. Que je fixe la durée à 100 secondes pour être sûr
log_min_duration_statement = 100000
Mais Postgresql continue de consigner chaque requête qui correspond à la log_statement
valeur, quelle que soit la log_min_duration_statement
valeur.
Réglage log_statement
de none
semble arrêter la journalisation.
Y a-t-il quelque chose que j'ai manqué dans la configuration?
la source
log_statement
etlog_min_duration_statement
devrait donc fonctionner?SELECT
,UPDATE
ou un LDD), alors oui.Réponses:
Tu étais proche. Votre dernière idée est en fait la voie à suivre:
Ensuite, aucune instruction ne sera enregistrée, sauf celles qui durent plus de 10 secondes - y compris la chaîne de requête elle-même. L'enregistrement peut avoir semblé s'arrêter car 10 secondes est un seuil élevé. J'utilise 2 secondes normalement, mais YMMV.
Cette réponse connexe sur SO a plus:
Impossible de faire fonctionner log_min_duration_statement
la source
log_statement
estnone
, donc ne pas la définir ou la définir surnone
a le même effet.