Удаление блокировок в Oracle 10
У меня проблема при попытке обновить значение столбца в sqlplus.
В основном это не полный и просто зависает. Мне интересно, есть ли в любом случае возможность удалять блокировки в оракуле силой?
Я заметил таблицу с именем v $locked_object, которая содержит идентификатор onject, относящийся к проблеме, которую я имею.
Надеюсь, я объяснил это достаточно хорошо.
Заранее благодарим за помощь!
Ответы
Ответ 1
Это будет точно служить вашей цели:
SELECT SESSION_ID FROM DBA_DML_LOCKS WHERE NAME = <TABLE_NAME>;
Используйте SESSION_ID
, чтобы найти соответствующий SERIAL#
с этим утверждением:
SELECT SID, SERIAL# FROM V$SESSION WHERE SID IN (
SELECT SESSION_ID FROM DBA_DML_LOCKS WHERE NAME = <TABLE_NAME>
);
Найдите повреждающие кортежи SID, SERIAL#
и отпустите его следующим образом:
ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
Ответ 2
Удалось решить эту проблему.
Я заглянул в таблицу DBA_BLOCKERS и получил идентификатор сеанса. Затем был убит сеанс, и блокировка была удалена.
Ответ 3
Возможно, кто-то еще обновил ту же таблицу и еще не совершил. Это может быть и вы (в другом инструменте или другом сеансе).
Самый простой способ избавиться от блокировки - это фиксация работы в другом сеансе.