DBAtlas · Атлас эксплуатации баз данных

ORA-00054: Ресурс занят, а захват запрошен с 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 →

Ещё по этой СУБД