DBAtlas · Atlas de operações de banco de dados

ORA-00054: Resource busy and acquire with NOWAIT specified or timeout expired

Oracle

O que significa?

O recurso (linha ou tabela) a ser bloqueado está bloqueado por outra sessão e não pôde ser adquirido imediatamente porque NOWAIT foi especificado ou o DDL_LOCK_TIMEOUT expirou.

Por que acontece?

Geralmente um DDL (ALTER TABLE, DROP, CREATE INDEX) tentado enquanto a tabela está bloqueada por outra transação; ou uma linha bloqueada encontrada com SELECT ... FOR UPDATE NOWAIT.

Como resolver

Encontre a sessão que mantém o lock: SELECT * FROM v$locked_object. Faça join de v$session e v$lock para identificar a sessão bloqueadora. Aguarde a transação terminar ou, se necessário, encerre-a com ALTER SYSTEM KILL SESSION. Para DDL, você pode definir um tempo de espera: ALTER SESSION SET DDL_LOCK_TIMEOUT = 60; Execute DDL em janelas de manutenção tranquilas.

Abrir no DBAtlas →

Mais entradas deste banco