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

При возникновении ошибки ORA-04020 нужно откомпилировать триггер 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.

Вас заинтересует / Intresting for you:

Oracle и непроцедурный доступ ...
Oracle и непроцедурный доступ ... 8521 просмотров Antoni Tue, 21 Nov 2017, 13:32:50
Отмена сессий в Oracle (ALTER ...
Отмена сессий в Oracle (ALTER ... 23198 просмотров Stepan Ushakov Thu, 01 Nov 2018, 18:04:59
Ошибка ORA-01034 и ORA-2710: s...
Ошибка ORA-01034 и ORA-2710: s... 8903 просмотров pol Tue, 21 Nov 2017, 13:28:01
Видеокурс по администрированию...
Видеокурс по администрированию... 10719 просмотров Илья Дергунов Mon, 14 May 2018, 05:08:47
Войдите чтобы комментировать