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 /etc/postgresql/9.1/main/postgresql.conf
fichier
log_min_duration_statement = 10000
log_statement = 'mod'
postgresql enregistre donc les requêtes qui prennent plus de 10 secondes.
Mais quand je reload
la configuration de postgres, Postgresql commence à enregistrer chaque requête qui correspond à log_statement
valeur. Que je fixe la durée à 100 secondes pour être sûr
log_min_duration_statement = 100000
Mais Postgresql continue d'enregistrer toutes les requêtes qui correspondent à log_statement
valeur, indépendamment de log_min_duration_statement
valeur.
Réglage log_statement
à none
a semblé arrêter la journalisation.
Y a-t-il quelque chose que j'ai manqué dans la configuration?
Tu étais proche. Votre dernière idée est en fait la voie à suivre:
log_statement = none
log_min_duration_statement = 10000
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