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

StackOverflow https://stackoverflow.com/questions/51019

  •  09-06-2019
  •  | 
  •  

Frage

Was bedeutet es, wenn a PostgreSQL Prozess ist „in der Transaktion inaktiv“?

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

postgres: user db 127.0.0.1(55658) idle in transaction

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

War es hilfreich?

Lösung

Der PostgreSQL-Handbuch zeigt an, dass dies bedeutet, dass die Transaktion offen (innerhalb von BEGIN) und inaktiv ist.Es handelt sich höchstwahrscheinlich um einen Benutzer, der über den Monitor verbunden ist und denkt oder tippt.Ich habe auch viele davon auf meinem System.

Wenn Sie jedoch Slony für die Replikation verwenden, ist die Slony-I-FAQ schlägt vor idle in transaction kann bedeuten, dass die Netzwerkverbindung abrupt getrennt wurde.Weitere Einzelheiten finden Sie in der Diskussion in dieser FAQ.

Andere Tipps

Wie hier erwähnt: Re:FEHLER #4243:Inaktiv in der Transaktion Es ist wahrscheinlich am besten, die pg_locks-Tabelle zu überprüfen, um zu sehen, was gesperrt ist. So erhalten Sie möglicherweise einen besseren Hinweis darauf, wo das Problem liegt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top