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)



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;

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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.