PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment enregistrer des requêtes dans PostgreSQL

  • Localisation du fichier de configuration
    • Rechercher le chemin du répertoire de données
  • Configuration de PostgreSQL pour générer une sortie de journal
    • Redémarrer le service PostgreSQL
  • Vérification de la génération de journaux

L'activation de la journalisation dans PostgreSQL est rendue assez facile en modifiant une poignée de paramètres de configuration, puis en redémarrant le serveur. Bien que ces paramètres puissent être modifiés "en mémoire", permettant ainsi une journalisation temporaire uniquement pour cette session client particulière, dans ce didacticiel, nous expliquerons comment configurer postgres pour créer en permanence des fichiers journaux itératifs pour toutes les sessions et connexions.

Localisation du fichier de configuration

Si vous ne savez pas où se trouve le fichier postgresql.conf config est localisé, la méthode la plus simple pour trouver l'emplacement est de se connecter au client postgres (psql ) et émettez le SHOW config_file; commande :

postgres=# SHOW config_file;
               config_file
------------------------------------------
 /etc/postgresql/9.3/main/postgresql.conf

Dans ce cas, nous pouvons voir le chemin vers le postgresql.conf le fichier pour ce serveur est /etc/postgresql/9.3/main/postgresql.conf . Maintenant, ouvrez simplement ce fichier avec votre éditeur de texte préféré et nous pourrons commencer à modifier les paramètres :

$ nano /etc/postgresql/9.3/main/postgresql.conf

Rechercher le chemin du répertoire de données

C'est aussi une bonne idée de confirmer le chemin des data répertoire pour votre installation de postgres. Cela sera utile plus tard, et récupérer le chemin est une question d'un autre simple SHOW déclaration :

postgres=# SHOW data_directory;
        data_directory
------------------------------
 /var/lib/postgresql/9.3/main

Sur certaines installations, le fichier de configuration et les data répertoire sera le long du même chemin, tandis que dans d'autres (comme cet exemple), ils sont différents. Dans tous les cas, copiez ces data chemin du répertoire pour une utilisation ultérieure.

Configuration de PostgreSQL pour générer une sortie de journal

Avec le postgresql.conf fichier ouvert, faites défiler jusqu'à ERROR REPORTING AND LOGGING section et vous verrez probablement un certain nombre d'options de configuration commentées. Les plus critiques de ces paramètres sont log_destination et logging_collector . Vous trouverez ci-dessous les paramètres recommandés, mais n'hésitez pas à les modifier en fonction de vos besoins :

#------------------------------------------------------------------------------
# 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

Ici, nous disons à postgres de générer des journaux dans le CSV format et de les sortir dans le pg_log répertoire (dans le répertoire data annuaire). Nous avons également décommenté le log_filename paramètre pour produire un nom propre, y compris des horodatages pour les fichiers journaux.

Vous pouvez trouver des informations détaillées sur tous ces paramètres dans la official documentation .

Redémarrer le service PostgreSQL

La dernière étape consiste à redémarrer le service PostgreSQL afin que ces paramètres, en particulier logging_collector , prendra effet. L'exécution d'un redémarrage postgres diffère d'un système à l'autre, mais généralement pour un système Unix, la commande ressemblera à ceci :

$ service postgresql restart
 * Restarting PostgreSQL 9.3 database server                               [ OK ]

Vérification de la génération du journal

Une fois le système redémarré, la journalisation doit commencer immédiatement. Pour vous en assurer, accédez au data/pg_log répertoire de votre installation postgres. N'oubliez pas que nous avons saisi les data chemin du répertoire plus tôt, alors naviguez simplement vers ce répertoire en ajoutant /pg_log jusqu'à la fin pour accéder au répertoire du journal :

$ cd /var/lib/postgresql/9.3/main/pg_log

Listez maintenant les fichiers et vous devriez voir qu'un fichier journal a été créé après le précédent redémarrage du service :

$ ls -l
-rw------- 1 postgres postgres 935 Apr 13 20:30 postgresql-2016-04-13_203022.csv

Voilà, nous l'avons; les fichiers journaux générés automatiquement sont activés avec PostgreSQL en modifiant seulement quelques paramètres de configuration.