DBAtlas · 数据库运维图谱

ORA-00054: Resource busy and acquire with NOWAIT specified or timeout expired(资源正忙,且指定了 NOWAIT 或等待超时)

Oracle

含义

要加锁的资源(行或表)已被另一个会话锁定,由于指定了 NOWAIT 或 DDL_LOCK_TIMEOUT 已到期,无法立即获取。

原因

通常是在表被其他事务锁定时尝试执行 DDL(ALTER TABLE、DROP、CREATE INDEX);或使用 SELECT ... FOR UPDATE NOWAIT 时遇到了已被锁定的行。

解决方法

查找持有锁的会话:SELECT * FROM v$locked_object。关联 v$session 和 v$lock 识别阻塞会话。等待事务结束,必要时用 ALTER SYSTEM KILL SESSION 终止它。对于 DDL 可以设置等待时间:ALTER SESSION SET DDL_LOCK_TIMEOUT = 60; 在业务低峰的维护窗口执行 DDL。

在 DBAtlas 中打开 →

同一数据库的其他条目