Frage Wie man in PostgreSQL aktive Verbindungen und "aktuelle Aktivität" sieht 8.4


Ich untersuche ein Problem mit DB-Verbindungen, die auf unbestimmte Zeit offen bleiben, was Probleme auf dem DB-Server verursacht. Wie sehe ich derzeit offene Verbindungen zu einem PostgreSQL-Server, insbesondere mit einer bestimmten Datenbank? Idealerweise würde ich gerne sehen, welcher Befehl dort ausgeführt wird. Im Grunde suche ich nach etwas, das der Ansicht "Aktuelle Aktivität" in MSSQL entspricht.


66
2018-03-31 23:06


Ursprung


Ab PostgreSQL 9.0 sehen Sie sogar den Namen der Anwendung, die das Problem verursacht. Vielleicht ist dies hilfreich für zukünftige Kontrollen. - postgresql007


Antworten:


OK, habe es von jemand anderem bekommen. Diese Abfrage führt den Trick aus:

select *
from pg_stat_activity
where datname = 'mydatabasename'

91
2018-03-31 23:33





Siehe auch pg-top, das wie oben funktioniert, außer dass es postgres Aktivität zeigt.

  • Installiere pg-top (in Debian heißt das Paket "ptop").
  • Werde der Postgres-Benutzer (z.B. sudo su postgres)
  • Lauf pg_top

15
2017-11-29 18:29



Kann es ohne Root-Zugriff auf der Maschine funktionieren? - EMP
@Evgeny, Soweit ich weiß, müssen Sie als Postgres-Benutzer eingeloggt sein. Das sollte ohne Root-Zugriff möglich sein. - Wayne Conrad


Referenz aus diesem Artikel. 

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

8
2018-02-09 20:11



query und pid wurden benannt current_query und procpid, und state ist nicht verfügbar in pg_stat_activity vor PostgreSQL 9.2. - cpburnz


PostgreSQL ASH Viewer (PASH Viewer) bietet eine grafische Ansicht der aktiven Sitzungsverlaufsdaten. https://github.com/dbacvetkov/PASH-Viewer Es ist kostenlos und Open Source.

Bildschirmfoto


0
2018-06-25 15:46