Czy w PostgreSQL jest polecenie wyboru aktywnych połączeń z daną bazą danych?
psql
stwierdza, ż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)
Czy w PostgreSQL jest polecenie wyboru aktywnych połączeń z daną bazą danych?
psql
stwierdza, ż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)
Odpowiedzi:
Och, właśnie znalazłem to polecenie na forum PostgreSQL:
SELECT * FROM pg_stat_activity;
pg_terminate_backend
moja aplikacja nadal może uruchamiać zapytania dotyczące bazy danych, ale nie widzę nowych połączeń w pg_Stat_activity?
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.
WHERE ...
klauzulę i aby zobaczyć, które połączenia są aktywne lub bezczynne, dodaj kolumnę state
do SELECT
klauzuli
SELECT * FROM pg_stat_activity WHERE datname = 'dbname' and state = 'active';
Ponieważ pg_stat_activity
zawiera statystyki podłączenie wszystkich baz danych mających jakikolwiek stan, albo idle
albo active
, nazwa bazy danych i stan połączenia powinny być zawarte w zapytaniu, aby uzyskać pożądany wynik.