J'examine un problème avec les connexions DB laissées ouvertes indéfiniment, provoquant des problèmes sur le serveur DB. Comment puis-je voir les connexions actuellement ouvertes à un serveur PostgreSQL, en particulier celles utilisant une base de données spécifique? Idéalement, j'aimerais également voir quelle commande s'exécute là-bas. Fondamentalement, je recherche quelque chose d'équivalent à la vue "Activité actuelle" dans MSSQL.
OK, je l'ai obtenu de quelqu'un d'autre. Cette requête devrait faire l'affaire:
select *
from pg_stat_activity
where datname = 'mydatabasename';
Voir aussi pg-top , qui agit comme top sauf qu'il montre l'activité postgres.
Sudo su postgres
)pg_top
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();
Deux façons de surveiller Ubuntu 18.04 , juste pour référence
Un utilisant pg_top
:
$ Sudo apt-get install ptop
$ pg_top # similar to top as others mentioned
Deux utilisant pgAdmin4
:
$ Sudo apt-get install pgadmin4 pgadmin4-Apache2
# type in password and use default url
$ pgadmin4
Dans le tableau de bord, vérifiez le total/actif comme
PostgreSQL ASH Viewer (PASH Viewer) fournit une vue graphique des données d'historique de session actives. https://github.com/dbacvetkov/PASH-Viewer C'est gratuit et open source.