РТЫ 00060: мертвая блокировка обнаружила при ожидании ресурса

У меня есть ряд сценариев, работающих параллельно как nohup на сервере AIX, размещающем оракула 10 г. Эти сценарии записаны кем-то еще и предназначены, чтобы быть выполненными одновременно. Все сценарии выполняют обновления на таблице. Я получаю ошибку,

РТЫ 00060: мертвая блокировка обнаружила при ожидании ресурса

В то время как я погуглил для этого, я нашел, http://www.dba-oracle.com/t_deadly_perpetual_embrace_locks.htm

Даже при том, что сценарии выполняют updation на той же таблице одновременно, они выполняют обновления на различных записях таблицы, определенной WHERE пункт без перекрытий записей между ними.

Таким образом, это вызвало бы ошибку?.

Эта ошибка произойдет независимо от того, где обновления выполняются на таблице?.

Я должен избежать параллельных обновлений на таблице в любом случае?.

Странно я также нашел на журнале nohup.out, PL/SQL successfully completed после вышеупомянутой заключенной в кавычки ошибки.

Это означает, что оракул восстановился с мертвой блокировки и завершил обновления успешно, или я должен повторно выполнить те сценарии последовательно? Любая справка приветствовалась бы.

Заранее спасибо.

21
задан Lajos Veres 15 December 2014 в 21:20
поделиться

1 ответ

Тупиковые ситуации могут возникать не только при блокировках строк, например см. , это . Скрипты могут конкурировать за другие ресурсы, такие как индексные блоки.

Я обходил это в прошлом, создавая параллелизм таким образом, чтобы разные экземпляры работали над частями рабочей нагрузки, которые с меньшей вероятностью повлияют на блоки, расположенные близко друг к другу; например, для обновления большой таблицы вместо настройки параллельных ведомых устройств с использованием чего-то вроде MOD (n, 10) , я бы использовал TRUNC (n / 10) что означает, что каждое ведомое устройство работало с непрерывным набором данных.

Есть, конечно, гораздо лучшие способы разделить работу для параллелизма, например DBMS_PARALLEL_EXECUTE .

Не знаете, почему вы получаете сообщение «PL / SQL успешно завершен», возможно, ваши сценарии обрабатывают исключение?

11
ответ дан 29 November 2019 в 20:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: