147 votes

Comment voir les connexions actives et l'"activité actuelle" dans PostgreSQL 8.4

Je suis en train d'enquêter sur un problème de connexions de base de données laissées ouvertes indéfiniment, causant des problèmes sur le serveur de base de données. Comment puis-je voir les connexions actuellement ouvertes vers un serveur PostgreSQL, notamment celles utilisant une base de données spécifique ? Idéalement, j'aimerais également voir quelle commande s'exécute là-bas. Fondamentalement, je cherche quelque chose d'équivalent à la vue "Activité actuelle" dans MSSQL.

0 votes

À partir de PostgreSQL 9.0, vous verrez même le nom de l'application qui cause le problème. peut-être que cela sera utile pour les vérifications futures.

197voto

solarce Points 483

D'accord, j'ai obtenu cela de quelqu'un d'autre. Cette requête devrait faire l'affaire :

select *
from pg_stat_activity
where datname = 'monnomdebasededonnées';

34voto

neydroydrec Points 235

Voir aussi pg-top, qui agit comme top sauf qu'il affiche l'activité de postgres.

  • Installer pg-top (dans Debian, le paquet s'appelle "ptop").
  • Devenir l'utilisateur postgres (par exemple, sudo su postgres)
  • Exécuter pg_top

0 votes

Tellement difficile de trouver un exécutable Windows. Vous n'avez (presque) jamais la suite GCC complète ou Mingw sur un serveur Windows (pas de mon choix, ne me blâmez pas).

0 votes

@oligofren Exécuter Postgresql sous Windows est un peu une aventure, ne serait-ce que parce que bon nombre des utilitaires et outils sont conçus pour Linux.

3 votes

Sur buster, le paquet debian s'appelle pgtop

19voto

Anvesh Points 664

Référence tirée de cet article.

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();

0 votes

query et pid ont été nommés current_query et procpid, et state n'est pas disponible dans pg_stat_activity avant PostgreSQL 9.2.

4voto

Hearen Points 141

Deux façons de surveiller dans Ubuntu 18.04, juste pour référence

Un en utilisant pg_top:

$ sudo apt-get install ptop
$ pg_top # similaire à top comme mentionné par d'autres

Deux en utilisant pgAdmin4:

$ sudo apt-get install pgadmin4 pgadmin4-apache2
# saisissez le mot de passe et utilisez l'URL par défaut
$ pgadmin4

Dans le tableau de bord, vérifiez le total/actif comme

entrer la description de l'image ici

2voto

dcvetkov Points 21

Le visualiseur PostgreSQL ASH (PASH Viewer) fournit une vue graphique des données de l'historique des sessions actives. https://github.com/dbacvetkov/PASH-Viewer C'est gratuit et open source.

Capture d'écran

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X