Come elencare le connessioni attive su PostgreSQL?


151

Esiste un comando in PostgreSQL per selezionare connessioni attive a un determinato database?

psqlafferma che non posso eliminare uno dei miei database perché ci sono connessioni attive ad esso , quindi vorrei vedere quali sono le connessioni (e da quali macchine)



Grande! cerco (male) e non ho trovato nulla. Posso fare qualcosa per chiudere la connessione inattiva degli altri?
Relatore

Risposte:


264

Oh, ho appena trovato quel comando sul forum PostgreSQL:

SELECT * FROM pg_stat_activity;

14
Se si desidera limitarlo a un solo database, è possibile utilizzare SELECT * FROM pg_stat_activity WHERE datname = 'dbname';
user2182349

1
Come posso ottenere la connessione al database attiva dal servizio di backup specifico?
GunasekaranR,

E dopo l'esecuzione pg_terminate_backende la mia app è ancora in grado di eseguire query sul database ma non sono riuscito a vedere le nuove connessioni in pg_Stat_activity?
Takacsot,

38

Di seguito verranno fornite connessioni / query attive in DB postgres-

SELECT 
    pid
    ,datname
    ,usename
    ,application_name
    ,client_hostname
    ,client_port
    ,backend_start
    ,query_start
    ,query
    ,state
FROM pg_stat_activity
WHERE state = 'active';

È possibile utilizzare "inattivo" anziché attivo per ottenere connessioni / query già eseguite.


1
Inattivo significa che la connessione è attiva? Se sto rilasciando la connessione, verrà comunque elencata come inattiva?
Shivam Kubde,

1
Sì @ShivamKubde ma come 'inattivo', e la query sopra mostra solo connessioni 'attive', quindi rimuovi la WHERE ...clausola e per essere in grado di vedere quali connessioni sono attive o inattiva aggiungi la colonna statealla SELECTclausola
Mariano Ruiz

6
SELECT * FROM pg_stat_activity WHERE datname = 'dbname' and state = 'active';

Poiché pg_stat_activitycontiene statistiche di connessione di tutti i database con qualsiasi stato, idleo active, nome della banca dati e stato della connessione devono essere inclusi nella query per ottenere l'output desiderato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.