2011-11-21 22 views
32

Ho un DB PostgreSQL sul mio computer e ho un'applicazione che esegue interrogazioni su di esso.PostgreSQL come vedere quali query sono state eseguite

Come posso vedere quali query sono state eseguite sul mio DB?

Io uso un computer Linux e pgadmin.

+0

eventuali dettagli su come si presenta l'applicazione e come accede al database? –

risposta

39

Accendere il log del server:

log_statement = all 

Questo registrerà ogni chiamata al server di database.

Non utilizzare log_statement = all su un server produttivo. Produce enormi file di registro.
The manual about logging-parameters:

log_statement (enum)

Controlla quali istruzioni SQL vengono registrati. I valori validi sono none (disattivato), ddl, mod e all (tutte le istruzioni). [...]

Ripristino del parametro log_statement richiede una ricarica di server (SIGHUP). Un riavvio è non necessario. Leggi the manual on how to set parameters.

Non confondere il registro del server con il registro di pgAdmin. Due cose diverse!

È anche possibile guardare i file di registro del server in pgAdmin, se si ha accesso ai file (potrebbe non essere il caso con un server remoto) e configurarlo correttamente. Date un'occhiata a: Tools -> Server status. Maggiori informazioni sulla finestra di stato del server nello manual for pgAdmin III.

Preferisco leggere i file di registro del server con vim (o un editor/lettore di vostra scelta).

+0

Brandstetter Vedrò solo i log e lo spegnerò. È sufficiente fare log_statement = all? Ho aperto lo stato del server mi ha chiesto qualcosa sull'installazione di un pacchetto, ma ha aperto una finestra e scrive: I registri non sono disponibili per questo server. Devo riavviare il mio postgresql? – kamaci

+2

@kamaci: ho modificato la mia risposta con ulteriori informazioni. Segui i link che ho fornito di più. –

30

PostgreSQL è molto avanzato quando connessi alle tecniche di registrazione

registri sono memorizzati nella cartella InstallationFolder/dati/pg_log. Mentre le impostazioni del registro sono inserite nel file postgresql.conf.

Il formato di registro viene in genere impostato come stderr. Ma il formato di log CSV è raccomandato. Al fine di consentire il cambio formato CSV in

  • log_destination = 'stderr, csvlog'
  • logging_collector = on

Per accedere a tutte le domande, molto utile per le nuove installazioni, set min.tempo di esecuzione per una query

  • log_min_duration_statement = 0

Per visualizzare le query attive sul database, utilizzare

  • SELECT * FROM pg_stat_activity

Per collegarvi specifica query set tipo di query

  • log_statement = 'all' # nessuno, ddl, mod, tutti

Si tratta di un buon collegamento Per ulteriori informazioni sulla registrazione interroga

2

ho trovato il registro file su /usr/local/var/log/postgres.log su un'installazione mac di brew.

Problemi correlati