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


100

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


Начиная с PostgreSQL 9.0 вы даже увидите название приложения, вызывающего проблему. может быть, это полезно для будущих проверок.
postgresql007

Ответы:


138

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

select *
from pg_stat_activity
where datname = 'mydatabasename';

23

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

  • Установите pg-top (в Debian пакет называется «ptop»).
  • Стать пользователем postgres (например sudo su postgres)
  • Бегать pg_top

Так трудно найти исполняемый файл Windows. У вас (почти) никогда нет полного пакета GCC или Mingw на сервере Windows (не мой выбор, не вините меня).
олигофрен

@oligofren Запуск Postgresql в Windows - это приключение, если только по той причине, что так много утилит и инструментов написано для Linux.
Уэйн Конрад



1

Два способа мониторинга в 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

На панели инструментов, проверьте общее / активное как

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.