Автоматизированные задачи обслуживания — это автоматически запускаемые в базе данных задания, выполняющие операции по обслуживанию. Ниже перечислены автоматизированные задачи обслуживания в Oracle Database 11g и 12c:
- Automatic Optimizer Statistics Collection (Автоматический сбор статистики оптимизатора);
- Automatic Segment Advisor (Автоматический советник по сегментам);
- Automatic SQL Tuning Advisor (Автоматический советник по настройке SQL).
Все три задачи автоматического обслуживания запускаются во время системного окна обслуживания по умолчанию, приходящегося на ночное время. Ниже мы поговорим о предопределенных окнах обслуживания.
Предопределенные окна обслуживания
В Oracle Database 11g и 12c есть семь предопределенных окон обслуживания, которые перечислены ниже:
- MONDAY_WINDOW — начинается в 10 вечера в понедельник и заканчивается в 2 ночи;
- TUESDAY_WINDOW — начинается в 10 вечера во вторник и заканчивается в 2 ночи;
- WEDNESDAY_WINDOW — начинается в 10 вечера в среду и заканчивается в 2 ночи;
- THURSDAY_WINDOW — начинается в 10 вечера в четверг и заканчивается в 2 ночи;
- FRIDAY_WINDOW — начинается в 10 вечера в пятницу и заканчивается в 2 ночи;
- SATURDAY_WINDOW — начинается в 6 утра в субботу и заканчивается в 2 ночи;
- SUNDAY_WINDOW — начинается в 6 утра в воскресенье и заканчивается в 2 ночи.
Окна рабочих дней недели открыты в течение 4 часов, а окна выходных — в течение 20 часов. Эти семь окон обслуживания входят в группу, именуемую MAINTENANCE_WINDOW_GROUP. Окнами обслуживания можно управлять, изменяя их время начала и конца. Можно также создавать свои окна обслуживания и удалять или отключать окна по умолчанию. В следующих разделах будет показано, как это делать.
Управление автоматизированными задачами обслуживания
Поскольку база данных не назначает постоянных заданий Scheduler трем автоматизированным задачам обслуживания, ими нельзя управлять с помощью пакета DBMS_SCHEDULER. Если необходимо выполнять тонко настроенные задачи обслуживания, которые модифицируют автоматизированные задачи обслуживания, следует использовать пакет DBMS_AUTO_TASK_ADMIN.
Мониторинг автоматизированных задач обслуживания
Для получения подробной информации относительно выполнения автоматизированных заданий обслуживания в базе данных потребуется запросить представления DBA_AUTOTASK_CLIENT и DBA_AUTOTASK_OPERATION. Эти два представления совместно используют множество столбцов. Ниже показан запрос к представлению DBA_AUTOTASK_CLIENT:
Столбец ATTRIBUTES показывает, что все три автоматизированные задачи обслуживания по умолчанию включены, о чем свидетельствует атрибут ON BY DEFAULT. Когда открывается окно обслуживания, база данных автоматически создает три автоматизированных задачи обслуживания и выполняет эти задания. Однако только задача SQL Tuning Advisor показывает атрибут OPEN PER WINDOW. Это потому, что база данных выполняет обе задачи — Automatic Optimizer Statistics Collection и Auto Space Advisor — более одного раза, если позволяют размеры окна обслуживания, в то время, как SQL Tuning Advisor выполняется на протяжении окна обслуживания только один раз.
База данных присваивает клиентское имя каждой из автоматизированных задач обслуживания, чтобы они выглядели как клиенты. Задание Scheduler, ассоциированное с тремя клиентами, получает имя операции, поскольку задания считаются операциями. Вот имена операций, ассоциированные с каждой из трех автоматизированных задач обслуживания:
Включение задачи обслуживания
Выполните процедуру ENABLE, чтобы включить ранее отключенного клиента или операцию, как показано ниже:
Извлечь атрибуты CLIENT_NAME и OPERATION_NAME можно, опросив представления DBA_AUTOTASK_CLIENT и DBA_AUTOTASK_OPERATION.
Отключение задачи обслуживания
С помощью процедуры DISABLE можно отключить любое из трех заданий обслуживания во время определенного окна обслуживания:
В приведенном примере задача SQL Tuning Advisory отключается только во время MODAY_WINDOW и остается включенной во всех остальных окнах.
Реализация автоматизированных задач обслуживания
Процесс ABR (Autotask Background Process — фоновый процесс автоматизированных задач) отвечает за реализацию трех автоматизированных задач обслуживания, преобразуя их в задания Scheduler. Для каждой из этих задач ABR создает список заданий и назначает им приоритеты. Есть три уровня приоритета: высокий, средний и срочный. Scheduler также создает классы заданий и отображает группу потребителей на соответствующий класс заданий. ABR назначает задания в каждый класс заданий, а классы заданий отображают задания на группы потребителей на основе уровня приоритета задания. Фоновый процесс MMON осуществляет перезапуск и отслеживает процесс ABR. Представление DBA_AUTOTASK показывает задания, хранящиеся в репозитории ABR, которым служит табличное пространство Sysaux.
Просматривать репозиторий ABR можно путем опроса представления DBA_AUTOTASK_TASK.
Выделение ресурсов автоматическим задачам
План ресурсов по умолчанию, назначаемый всем окнам обслуживания — это DEFAULT_MAINTENANCE_PLAN. Когда окно обслуживания открывается, база данных активизирует DEFAULT_MAINTENANCE_PLAN для контроля ресурсов центрального процессора, используемых автоматическими задачами обслуживания. Три автоматических задачи обслуживания запускаются под ORA$AUTOTASK_SUB_PLAN — подпланом DEFAULT_MAINTENANCE_PLAN. Выделение ресурсов для автоматизированных задач можно изменить, изменяя выделение ресурсов этому подплану для конкретного окна обслуживания.