Я сделал ALTER TABLE DISABLE TABLE LOCK
на одной из наших таблиц, и теперь я не могу включить блокировку таблицы. Когда я выполнение этой таблицы:Oracle - ALTER TABLE ENABLE TABLE LOCK
ALTER TABLE x ENABLE TABLE LOCK;
Я получаю:
SQL Error: ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
Я проверил, что есть блокировка сеанс от другого пользователя, но он убил свою сессию и теперь я до сих пор могу» t включить блокировку таблицы. Существует новый сеанс блокировки, похожий на какой-то системный сеанс (OSUSER = SYSTEM, PROGRAM = ORACLE.EXE (DIA0), TYPE = BACKGROUND).
Не могли бы вы помочь мне с этой блокировкой блокировки стола?
Редактировать: После перезапуска базы данных мы смогли включить блокировку таблицы.
Это диагностический процесс: https://docs.oracle.com/cloud/latest/db112/REFRN/bgprocesses.htm#REFRN104 –
Другие убили сеанса пользователя, но если сеанс обновления или вставки откат выполняется. – Kacper
Попробуйте 'ALTER SESSION SET DDL_LOCK_TIMEOUT = 600;' перед тем, как попытаться заблокировать таблицу. Oracle будет ждать до 10 минут, пока вы не получите эту ошибку, когда другие сессии могут закончить работу. –