Есть ли в PostgreSQL команда для выбора активных подключений к данной базе данных?
psql
заявляет, что я не могу удалить одну из своих баз данных, потому что к ней есть активные подключения , поэтому я хотел бы увидеть, какие подключения (и с каких машин)
sql
postgresql
database-connection
listings
Tregoreg
источник
источник
Ответы:
О, я только что нашел эту команду на форуме PostgreSQL:
SELECT * FROM pg_stat_activity;
источник
pg_terminate_backend
мое приложение все еще могло выполнять запрос к базе данных, но я не мог видеть новые соединения в pg_Stat_activity?Следующее даст вам активные соединения / запросы в 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';
Вы можете использовать idle вместо active, чтобы получить уже выполненные соединения / запросы.
источник
WHERE ...
предложение и, чтобы иметь возможность видеть, какие соединения активны или неактивны, добавьте столбецstate
вSELECT
предложениеSELECT * FROM pg_stat_activity WHERE datname = 'dbname' and state = 'active';
Поскольку
pg_stat_activity
содержит статистику подключений всех баз данных, имеющих какое-либо состояние, либо,idle
либоactive
, имя базы данных и состояние подключения должны быть включены в запрос, чтобы получить желаемый результат.источник