¿Cómo enumerar las conexiones activas en PostgreSQL?

150

¿Hay un comando en PostgreSQL para seleccionar conexiones activas a una base de datos dada?

psqlestablece que no puedo descartar una de mis bases de datos porque hay conexiones activas a ella , por lo que me gustaría ver cuáles son las conexiones (y desde qué máquinas)

Tregoreg
fuente
¡Excelente! Busco (mal) y no encuentro nada. ¿Puedo hacer algo para cerrar la conexión inactiva de otros?
Orador

Respuestas:

262

Oh, acabo de encontrar ese comando en el foro de PostgreSQL:

SELECT * FROM pg_stat_activity;
Tregoreg
fuente
14
Si desea limitarlo a una sola base de datos, puede usar SELECT * FROM pg_stat_activity WHERE datname = 'dbname';
user2182349
1
¿Cómo puedo obtener la conexión de base de datos activa del servicio específico respaldado?
GunasekaranR
¿Y qué tal después de ejecutar pg_terminate_backendy mi aplicación aún puede ejecutar la consulta en la base de datos, pero no pude ver las nuevas conexiones en pg_Stat_activity?
takacsot
37

Lo siguiente le dará conexiones / consultas activas en postgres DB-

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

Puede usar 'inactivo' en lugar de activo para obtener conexiones / consultas ya ejecutadas.

Neeraj Bansal
fuente
1
¿Inactivo significa que la conexión está activa? Si estoy liberando la conexión, ¿seguirá apareciendo como inactivo?
Shivam Kubde
1
Sí @ShivamKubde, pero como 'inactivo', y la consulta anterior solo muestra conexiones 'activas', así que elimine la WHERE ...cláusula y para poder ver qué conexiones están activas o inactivas agregue la columna statea la SELECTcláusula
Mariano Ruiz
6
SELECT * FROM pg_stat_activity WHERE datname = 'dbname' and state = 'active';

Dado que pg_stat_activitycontiene estadísticas de conexión de todas las bases de datos que tienen cualquier estado, idleo bien active, el nombre de la base de datos y el estado de conexión deben incluirse en la consulta para obtener el resultado deseado.

Abdollah
fuente