DBAtlas · Atlas für Datenbankbetrieb

55P03: lock_not_available

PostgreSQL

Was bedeutet das?

Die angeforderte Sperre konnte nicht sofort erhalten werden. Meist passiert das, wenn eine Sperre mit NOWAIT angefordert wird, während jemand anderes sie hält, oder wenn lock_timeout abläuft.

Ursache

Die Zeile/Tabelle ist gesperrt, während SELECT ... FOR UPDATE NOWAIT oder LOCK TABLE ... NOWAIT verwendet wird, oder lock_timeout läuft ab. Meistens hält eine lange Transaktion die Sperre.

Lösung

Finde die blockierende Session: Verknüpfe pg_locks und pg_stat_activity (Warte-/Blockierbeziehung). Beende die lange Transaktion oder terminiere sie bei Bedarf mit pg_terminate_backend(pid). Warte statt NOWAIT mit einem sinnvollen lock_timeout und ergänze eine Wiederholungslogik. Verkürze Transaktionen, um die Haltedauer von Sperren zu reduzieren.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank