Як перелічити активні підключення на PostgreSQL?


150

Чи є команда в PostgreSQL для вибору активних підключень до даної бази даних?

psqlстверджує, що я не можу скинути одну зі своїх баз даних, оскільки до неї є активні з'єднання , тому я хотів би побачити, що таке з'єднання (і з яких машин)



Чудово! Я шукаю (погано) і нічого не знайшов. Чи можу я щось зробити, щоб закрити інші простої зв'язку?
Доповідач

Відповіді:


264

О, я щойно знайшов цю команду на форумі PostgreSQL:

SELECT * FROM pg_stat_activity;

14
Якщо ви хочете обмежити його лише однією базою даних, ви можете використовувати SELECT * FROM pg_stat_activity WHERE datname = 'dbname';
користувач2182349

1
Як я можу отримати активне підключення до бази даних від конкретної резервної служби?
GunasekaranR

А як же після запуску, pg_terminate_backendі моя програма все ще може виконувати запити проти db, але я не міг побачити нові з'єднання в pg_Stat_activity?
Такасот

38

Далі дадуть вам активні з'єднання / запити в постгресах DB-

SELECT 
    pid
    ,datname
    ,usename
    ,application_name
    ,client_hostname
    ,client_port
    ,backend_start
    ,query_start
    ,query
    ,state
FROM pg_stat_activity
WHERE state = 'active';

Ви можете використовувати "в режимі очікування" замість активної для отримання вже виконаних з'єднань / запитів.


1
Чи означає, що режим очікування означає, що з'єднання активне? Якщо я відпускаю з'єднання, все-таки він буде вказаний як неактивний?
Шивам Кубде

1
Так @ShivamKubde, але як "непрацюючий", а в запиті вище відображаються лише "активні" з'єднання, тому видаліть WHERE ...пункт і, щоб мати можливість бачити, які з'єднання активні чи простою, додайте стовпчик stateдо SELECTпункту
Mariano Ruiz

6
SELECT * FROM pg_stat_activity WHERE datname = 'dbname' and state = 'active';

Оскільки pg_stat_activityмістить статистику з'єднання всіх баз даних, що мають будь-який стан, idleабо activeім'я бази даних та стан з'єднання повинні бути включені в запит, щоб отримати бажаний вихід.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.