Jak wyświetlić listę aktywnych połączeń w PostgreSQL?

150

Czy w PostgreSQL jest polecenie wyboru aktywnych połączeń z daną bazą danych?

psqlstwierdza, że ​​nie mogę porzucić jednej z moich baz danych, ponieważ są z nią aktywne połączenia , więc chciałbym zobaczyć, jakie są połączenia (iz jakich maszyn)

Tregoreg
źródło
Wspaniały! szukam (źle) i nic nie znalazłem. Czy mogę coś zrobić, aby zamknąć inne bezczynne połączenie?
Mówca

Odpowiedzi:

264

Och, właśnie znalazłem to polecenie na forum PostgreSQL:

SELECT * FROM pg_stat_activity;
Tregoreg
źródło
14
Jeśli chcesz ograniczyć to tylko do jednej bazy danych, możesz użyć SELECT * FROM pg_stat_activity WHERE datname = 'dbname';
user2182349
1
Jak mogę uzyskać aktywne połączenie z bazą danych z określonej usługi wspieranej?
GunasekaranR
A co powiesz na to, że po uruchomieniu pg_terminate_backendmoja aplikacja nadal może uruchamiać zapytania dotyczące bazy danych, ale nie widzę nowych połączeń w pg_Stat_activity?
takacsot
38

Poniżej znajdziesz aktywne połączenia / zapytania w 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';

Możesz użyć 'idle' zamiast active, aby uzyskać już wykonane połączenia / zapytania.

Neeraj Bansal
źródło
1
Czy bezczynność oznacza, że ​​połączenie jest aktywne? Jeśli zwalniam połączenie, czy nadal będzie ono wyświetlane jako nieaktywne?
Shivam Kubde
1
Tak, @ShivamKubde, ale jako `` bezczynne '', a powyższe zapytanie pokazuje tylko `` aktywne '' połączenia, więc usuń WHERE ...klauzulę i aby zobaczyć, które połączenia są aktywne lub bezczynne, dodaj kolumnę statedo SELECTklauzuli
Mariano Ruiz
6
SELECT * FROM pg_stat_activity WHERE datname = 'dbname' and state = 'active';

Ponieważ pg_stat_activityzawiera statystyki podłączenie wszystkich baz danych mających jakikolwiek stan, albo idlealbo active, nazwa bazy danych i stan połączenia powinny być zawarte w zapytaniu, aby uzyskać pożądany wynik.

Abdollah
źródło