Я изучаю проблему с подключениями к БД, которые остаются открытыми на неопределенное время, что вызывает проблемы на сервере БД. Как я могу увидеть открытые в данный момент подключения к серверу PostgreSQL, особенно те, которые используют определенную базу данных? В идеале я бы тоже хотел посмотреть, какая команда там выполняется. По сути, я ищу что-то эквивалентное представлению «Текущая активность» в MSSQL.
Хорошо, получил это от кого-то другого. Этот запрос должен помочь:
select *
from pg_stat_activity
where datname = 'mydatabasename';
Смотрите также pg-top, который действует как top, но показывает активность postgres.
sudo su postgres
)pg_top
SELECT
pid
,datname
,usename
,application_name
,client_hostname
,client_port
,backend_start
,query_start
,query
FROM pg_stat_activity
WHERE state <> 'idle'
AND pid<>pg_backend_pid();
Два способа мониторинга в Ubuntu 18.04, просто для справки
Один с использованием pg_top
:
$ sudo apt-get install ptop
$ pg_top # similar to top as others mentioned
Два использования pgAdmin4
:
$ sudo apt-get install pgadmin4 pgadmin4-apache2
# type in password and use default url
$ pgadmin4
На панели управления отметьте общее / активное как
PostgreSQL ASH Viewer (PASH Viewer) обеспечивает графическое представление данных истории активных сессий. https://github.com/dbacvetkov/PASH-Viewer Это бесплатно и с открытым исходным кодом.