ORA-04020: deadlock detected while trying to lock object SYS.CDC_ALTER_CTABLE_BEFORE

dbstalker, 16 января

При возникновении этой ошибки нужно откомпилировать триггер SYS.CDC_ALTER_CTABLE_BEFORE. Сделать это можно по крайней мене двумя путями в зависимости от сложившейся ситуации.

1 вариант

alter trigger SYS.CDC_ALTER_CTABLE_BEFORE disable;
alter trigger SYS.CDC_ALTER_CTABLE_BEFORE compile;
alter trigger SYS.CDC_ALTER_CTABLE_BEFORE enable;

2 вариант

Если из-за этой ошибки не можете открыть базу, тогда вносите следующие изменения в pfile :

job_queue_processes=0
_system_trig_enabled=false
aq_tm_processes=0

И открывайте с помощью этого pfile.

Проверяем валидность объектов:

select owner, object_type, count(*) from dba_objects where status = 'INVALID' group by owner, object_type;

При обнаружении невалидных объектов, компилируем скриптом:

SQL> @?/rdbms/admin/utlrp.sql

Если обнаружились невалидные объекты, то, по всей видимости , словарь данных в базе подпорчен. Поэтому желательно его пересоздать. Для этого традиционно используем скрипты:


/rdbms/admin/catalog.sql
/rdbms/admin/catproc.sql
/rdbms/admin/utlrp.sql

Ну а дальше все ясно: останавливаем базу и поднимаем ее без ранее внесенных изменений в pfile.

Тэги: ошибки

ОднаКнопка

 

Новый комментарий

Я не спамер: введите суму 0+8



 

От авторов блога

О Блоге - прочитай перед началом.

Задать вопрос и получить ответ - уже решено 94 вопросов

Глоссарий - список терминов и сокращений


 
 

Бизнес форум

Последние темы:

Революция аромата: Sensa
16 июля, 1 ответа