Question PostgreSQL ™ comment voir quelles requêtes ont été exécutées


J'ai une base de données PostgreSQL sur mon ordinateur et j'ai une application qui exécute des requêtes dessus.

Comment puis-je voir quelles requêtes ont été exécutées sur ma base de données?

J'utilise un ordinateur Linux et pgadmin.


35
2017-11-21 07:01


origine


Réponses:


Allumez le journal du serveur:

log_statement = all

Cela enregistrera chaque appel au serveur de base de données.

Je n'utiliserais pas log_statement = all sur un serveur productif. Produit des fichiers journaux volumineux.
Le manuel sur les paramètres de journalisation:

log_statement (enum)

Contrôle les instructions SQL consignées. Les valeurs valides sont none (de), ddl, mod, et all (toutes les déclarations). [...]

Réinitialiser le log_statement paramètre nécessite un rechargement du serveur (SIGHUP). Un redémarrage est ne pas nécessaire. Lis le manuel sur la façon de définir les paramètres.

Ne confondez pas le journal du serveur avec le journal de pgAdmin. Deux choses différentes!

Vous pouvez également consulter les fichiers journaux du serveur dans pgAdmin, si vous avez accès aux fichiers (ce qui peut ne pas être le cas avec un serveur distant) et les configurer correctement. Jettes un coup d'oeil à: Tools -> Server status. En savoir plus sur la fenêtre d'état du serveur dans le manuel pour pgAdmin III.

Je préfère lire les fichiers journaux du serveur avec vim (ou un éditeur / lecteur de votre choix).


40
2017-11-21 07:10



PostgreSql est très avancé lorsqu'il est lié aux techniques de journalisation

Les journaux sont stockés dans le dossier Installationfolder / data / pg_log. Pendant que les paramètres du journal sont placés dans le fichier postgresql.conf.

Le format du journal est généralement défini comme stderr. Mais le format de journal CSV est recommandé. Pour activer le changement de format CSV dans

  • log_destination = 'stderr, csvlog'
  • logging_collector = activé

Pour consigner toutes les requêtes, très utile pour les nouvelles installations, définissez min. temps d'exécution pour une requête

  • log_min_duration_statement = 0

Pour afficher les requêtes actives sur votre base de données, utilisez

  • SELECT * FROM pg_stat_activity

Pour enregistrer des requêtes spécifiques, définissez le type de requête

  • log_statement = 'all' # none, ddl, mod, all

Ceci est un bon lien Pour plus d'informations sur les requêtes de journalisation


31
2017-11-21 08:14



J'ai trouvé le fichier journal dans /usr/local/var/log/postgres.log sur une installation mac de brew.


3
2018-04-30 22:38