PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come registrare le query in PostgreSQL

  • Individuazione del file di configurazione
    • Individuare il percorso della directory dei dati
  • Configurazione di PostgreSQL per generare output di log
    • Riavvia il servizio PostgreSQL
  • Verifica della generazione dei log

L'abilitazione della registrazione all'interno di PostgreSQL è abbastanza semplice modificando alcune impostazioni di configurazione e quindi riavviando il server. Sebbene queste impostazioni possano essere modificate "in memoria", abilitando così la registrazione temporanea solo per quella particolare sessione client, in questo tutorial illustreremo come configurare postgres per creare permanentemente file di registro iterativi per tutte le sessioni e connessioni.

Individuazione del file di configurazione

Se non sei sicuro di dove si trova postgresql.conf config si trova, il metodo più semplice per trovare la posizione è connettersi al client postgres (psql ) ed emettere il SHOW config_file; comando:

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

In questo caso, possiamo vedere il percorso del postgresql.conf il file per questo server è /etc/postgresql/9.3/main/postgresql.conf . Ora apri quel file con il tuo editor di testo preferito e possiamo iniziare a modificare le impostazioni:

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

Individua il percorso della directory dei dati

È anche una buona idea confermare il percorso dei data directory per l'installazione di Postgres. Questo sarà utile in seguito e recuperare il percorso è una questione di un altro semplice SHOW dichiarazione:

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

Su alcune installazioni, il file di configurazione ei data directory sarà lungo lo stesso percorso, mentre in altri (come questo esempio), sono diversi. Ad ogni modo, copia questi data percorso della directory per un uso successivo.

Configurazione di PostgreSQL per generare output di log

Con postgresql.conf aprire il file, scorrere fino a ERROR REPORTING AND LOGGING sezione e probabilmente vedrai una serie di opzioni di configurazione commentate. Le più critiche di queste impostazioni sono log_destination e logging_collector . Di seguito sono riportate le impostazioni consigliate, anche se sentiti libero di modificarle in base alle tue esigenze:

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

Qui stiamo dicendo a postgres di generare log nel CSV formattare e inviarli al pg_log directory (all'interno dei data directory). Abbiamo anche decommentato il log_filename impostazione per produrre un nome corretto, inclusi i timestamp per i file di registro.

Puoi trovare informazioni dettagliate su tutte queste impostazioni nella official documentation .

Riavvia il servizio PostgreSQL

Il passaggio finale consiste nel riavviare il servizio PostgreSQL in modo che queste impostazioni, in particolare logging_collector , avrà effetto. L'esecuzione di un riavvio di Postgres sarà diversa da sistema a sistema, ma in genere per un sistema Unix il comando sarà simile al seguente:

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

Verifica generazione log

Una volta riavviato il sistema, la registrazione dovrebbe iniziare immediatamente. Per assicurarti che sia così, vai a data/pg_log directory della tua installazione di Postgres. Ricorda che abbiamo preso i data percorso della directory in precedenza, quindi vai semplicemente a quella directory aggiungendo /pg_log fino alla fine per entrare nella directory dei log:

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

Ora elenca i file e dovresti vedere che è stato creato un file di registro dopo il precedente riavvio del servizio:

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

Eccolo qua; i file di registro generati automaticamente vengono abilitati con PostgreSQL modificando solo alcune impostazioni di configurazione.