Назад | Перейти на главную страницу

Как увидеть активные соединения и «текущую активность» в PostgreSQL 8.4

Я изучаю проблему с подключениями к БД, которые остаются открытыми на неопределенное время, что вызывает проблемы на сервере БД. Как я могу увидеть открытые в данный момент подключения к серверу PostgreSQL, особенно те, которые используют определенную базу данных? В идеале я бы тоже хотел посмотреть, какая команда там выполняется. По сути, я ищу что-то эквивалентное представлению «Текущая активность» в MSSQL.

Хорошо, получил это от кого-то другого. Этот запрос должен помочь:

select *
from pg_stat_activity
where datname = 'mydatabasename';

Смотрите также pg-top, который действует как top, но показывает активность postgres.

  • Установите pg-top (в Debian пакет называется «ptop»).
  • Станьте пользователем 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 Это бесплатно и с открытым исходным кодом.

Скриншот