Was bedeutet es, wenn ein PostgreSQL-Prozess in der Transaktion inaktiv ist?


83

Was bedeutet es, wenn ein PostgreSQL- Prozess "in Transaktion inaktiv" ist?

Auf einem Server, den ich betrachte, werden in der Ausgabe von "ps ax | grep postgres" 9 PostgreSQL-Prozesse angezeigt, die wie folgt aussehen:

postgres: user db 127.0.0.1(55658) idle in transaction

Bedeutet dies, dass einige der Prozesse hängen bleiben und darauf warten, dass eine Transaktion festgeschrieben wird? Hinweise auf relevante Dokumentationen sind willkommen.

Antworten:


53

Das PostgreSQL-Handbuch gibt an, dass die Transaktion offen (innerhalb von BEGIN) und inaktiv ist. Es ist höchstwahrscheinlich ein Benutzer, der über den Monitor verbunden ist und denkt oder tippt. Ich habe auch viele davon auf meinem System.

Wenn Sie Slony für die Replikation verwenden, aber die Slony-I FAQ schlägt vor , idle in transactionkann bedeuten, dass die Netzwerkverbindung wurde abrupt beendet. Weitere Informationen finden Sie in der Diskussion in diesen FAQ.


9
Was bedeutet nur "Leerlauf"? Sind die Transaktionen im Ruhezustand ebenfalls geöffnet?
Yousuf Sultan

2
Was bedeutet Monitor ?
Abdull

2
@Abdull Der psql-Client. "Monitor" ist ein (anscheinend) archaischer Begriff für die Software zur Steuerung einer Datenbank.
Anonymoose


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.