DBAtlas · Atlas de operaciones de bases de datos

ORA-00054: Resource busy and acquire with NOWAIT specified or timeout expired (recurso ocupado; NOWAIT especificado o tiempo de espera agotado)

Oracle

¿Qué significa?

El recurso (fila o tabla) que se quiere bloquear está bloqueado por otra sesión y no se pudo obtener de inmediato porque se especificó NOWAIT o expiró DDL_LOCK_TIMEOUT.

¿Por qué ocurre?

Normalmente, un DDL (ALTER TABLE, DROP, CREATE INDEX) intentado mientras otra transacción bloquea la tabla; o una fila bloqueada encontrada con SELECT ... FOR UPDATE NOWAIT.

Cómo solucionarlo

Encuentre la sesión que mantiene el bloqueo: SELECT * FROM v$locked_object. Combine v$session y v$lock para identificar la sesión bloqueante. Espere a que termine la transacción o, si es necesario, termínela con ALTER SYSTEM KILL SESSION. Para DDL puede definir un tiempo de espera: ALTER SESSION SET DDL_LOCK_TIMEOUT = 60; Ejecute los DDL en ventanas de mantenimiento con poca actividad.

Abrir en DBAtlas →

Más entradas de este motor