ORA-00054: Resource busy and acquire with NOWAIT specified or timeout expired (Ressource belegt; NOWAIT angegeben oder Timeout abgelaufen)
OracleWas bedeutet das?
Die zu sperrende Ressource (Zeile oder Tabelle) ist von einer anderen Session gesperrt und konnte nicht sofort angefordert werden, weil NOWAIT angegeben war oder DDL_LOCK_TIMEOUT abgelaufen ist.
Ursache
Meist eine DDL (ALTER TABLE, DROP, CREATE INDEX), während die Tabelle von einer anderen Transaktion gesperrt ist; oder eine gesperrte Zeile bei SELECT ... FOR UPDATE NOWAIT.
Lösung
Finde die Session, die die Sperre hält: SELECT * FROM v$locked_object. Verknüpfe v$session und v$lock, um die blockierende Session zu ermitteln. Warte, bis die Transaktion endet, oder beende sie bei Bedarf mit ALTER SYSTEM KILL SESSION. Für DDL kannst du eine Wartezeit festlegen: ALTER SESSION SET DDL_LOCK_TIMEOUT = 60; Führe DDL in ruhigen Wartungsfenstern aus.
Weitere Einträge zu dieser Datenbank
- ORA-00001Unique constraint violated (Unique Constraint verletzt)
- ORA-00060Deadlock detected while waiting for resource (Deadlock beim Warten auf Ressource erkannt)
- ORA-01017Invalid username/password; logon denied (ungültiger Benutzername/Passwort; Anmeldung verweigert)
- ORA-01555Snapshot too old: rollback segment number too small (Snapshot zu alt: Rollback-Segment-Nummer zu klein)
- ORA-01652Unable to extend temp segment by N in tablespace (Temp-Segment kann im Tablespace nicht um N erweitert werden)