sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo registrar consultas en PostgreSQL

  • Ubicar el archivo de configuración
    • Ubique la ruta del directorio de datos
  • Configuración de PostgreSQL para generar resultados de registro
    • Reiniciar el servicio de PostgreSQL
  • Verificación de la generación de registros

Habilitar el registro dentro de PostgreSQL es bastante fácil al modificar algunos ajustes de configuración y luego reiniciar el servidor. Si bien esta configuración se puede modificar "en la memoria", lo que permite el registro temporal solo para esa sesión de cliente en particular, en este tutorial cubriremos cómo configurar Postgres para crear archivos de registro iterativos permanentes para todas las sesiones y conexiones.

Ubicando el archivo de configuración

Si no está seguro de dónde está postgresql.conf se encuentra el archivo de configuración, el método más simple para encontrar la ubicación es conectarse al cliente de postgres (psql ) y emita el SHOW config_file; comando:

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

En este caso, podemos ver la ruta al postgresql.conf archivo para este servidor es /etc/postgresql/9.3/main/postgresql.conf . Ahora simplemente abra ese archivo con su editor de texto favorito y podemos comenzar a cambiar la configuración:

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

Ubicar la ruta del directorio de datos

También es una buena idea confirmar la ruta de los data directorio para su instalación de postgres. Esto será útil más adelante, y recuperar la ruta es cuestión de otro simple SHOW declaración:

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

En algunas instalaciones, el archivo de configuración y los data directorio estará en la misma ruta, mientras que en otros (como este ejemplo), son diferentes. De cualquier manera, copia estos data ruta del directorio para uso posterior.

Configuración de PostgreSQL para generar resultados de registro

Con el postgresql.conf archivo abierto, desplácese hacia abajo hasta ERROR REPORTING AND LOGGING y probablemente verá una serie de opciones de configuración comentadas. La más crítica de estas configuraciones es log_destination y logging_collector . A continuación se encuentran las configuraciones recomendadas, aunque siéntase libre de cambiarlas para adaptarlas a sus propias necesidades:

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

Aquí le decimos a postgres que genere registros en el CSV y enviarlos al pg_log directorio (dentro del directorio data directorio). También hemos descomentado el log_filename configuración para producir algún nombre propio, incluidas las marcas de tiempo para los archivos de registro.

Puede encontrar información detallada sobre todas estas configuraciones en la official documentation .

Reiniciar el servicio PostgreSQL

El paso final es reiniciar el servicio PostgreSQL para que esta configuración, en particular logging_collector , entrará en vigor. Realizar un reinicio de Postgres diferirá de un sistema a otro, pero normalmente para un sistema Unix, el comando se verá así:

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

Verificando la generación de registros

Una vez que el sistema se haya reiniciado, el registro debe comenzar de inmediato. Para asegurarse de que este sea el caso, vaya a data/pg_log directorio de su instalación de postgres. Recuerda que tomamos los data ruta del directorio anterior, así que simplemente navegue a ese directorio agregando /pg_log hasta el final para entrar en el directorio de registro:

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

Ahora enumere los archivos y debería ver que se ha creado un archivo de registro después del reinicio del servicio anterior:

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

Ahí lo tenemos; Los archivos de registro generados automáticamente se habilitan con PostgreSQL cambiando solo algunos ajustes de configuración.