Удаление блокировок в 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

Возможно, кто-то еще обновил ту же таблицу и еще не совершил. Это может быть и вы (в другом инструменте или другом сеансе).

Самый простой способ избавиться от блокировки - это фиксация работы в другом сеансе.