Как стать автором
Обновить

Быстрая компиляция большого количества инвалидных объектов в БД

Время на прочтение1 мин
Количество просмотров6.1K
БД находится в restricted (выполнен startup restrict или alter sytem enable restricted session+убиты все пользовательские сессии).
listener остановлен.

Последовательность действий.
  • exec dbms_scheduler.set_scheduler_attribute('scheduler_disabled','true');alter system disable restricted session;
  • @?/rdbms/admin/utlrp
  • в другой сессии: alter system enable restricted session;exec dbms_scheduler.set_scheduler_attribute('scheduler_disabled','false');



Перекомпиляция большого количества объектов может потребоваться после апгрейдов софта oracle или прикладной части софта в БД.
Обычные инструкции в таком случае содержат рекоменадции запустить utlrp в обычном режиме БД, но в реальности возникают проблемы, когда в БД начинают выполняться джобы и пользователские сессии, а объекты еще не откомпилированы.
Если запускать utlrp в restricted, то он не будет работатьв parallel. Если же убрать listener, запретить джобы и выйти из restricted перед запуском utlrp, то parallel опять же не получится, из-за отключеных джобов.
Вышеописанная последовательность, однако, работает, так как utlrp запускается не в restricted и создает свои джобы с атрибутов allow_rusn_in_restricted_mode — они запустятся после ввода соотвествующих команд в другой сессии.

Актуально для БД с большим количеством объектов и заданий в dba_jobs, dba_scheduler_jobs.
Теги:
Хабы:
Всего голосов 4: ↑2 и ↓20
Комментарии0

Публикации

Истории

Работа

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область