DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Управление атрибутами

На протяжении всей главы я показывал, как можно назначать свойства различным компонентам планировщика в момент их создания (например, посредством процедуры CREATE_JOB или CREATE_WINDOW). Однако в некоторых случаях требуется изменение таких свойств после создания компонента планировщика. Например, может возникнуть необходимость изменения интервала между выполнениями задания после того, как задание создано в базе данных. Можно изменить свойства, удалив и пересоздав объект, но это не единственное решение.
Такие свойства, как периодичность выполнения, имя расписания, уровень журналирования и другие, называют атрибутами задания, программы или объекта. Пакет DBMS_SCHEDULER содержит процедуру SET_AT- TRIBUTE, которая позволяет изменять атрибуты существующего задания, класса заданий, программы, расписания, окна или группы окон.
Предположим, например, что необходимо изменить комментарий для задания PURGE_LOG на значение «This job purges the log entries of jobs and windows». Делаем следующее:

Процедура принимает три параметра: имя_элемента
Имя элемента, свойства которого будут изменяться. Задания, окна, классы заданий, группы окон и расписания имеют уникальные имена, поэтому нет необходимости в указании типа элемента.
атрибут
Изменяемое свойство в виде значения типа VARCHAR2. Набор допустимых значений определяется типом элемента. Например, max_fail- ures - допустимый атрибут для задания, но не для программы.
значение
Значение атрибута. Тип данных определяется выбором атрибута. Например, для окон атрибут window_priority принимает значение VARCHAR2 (LOW или HIGH), в то время как атрибут duration требует использования типа данных INTERVAL.
Теперь перейдем к рассмотрению допустимых значений для разных типов атрибутов. В связи с тем, что для каждого элемента они будут разными, каждый элемент будет рассмотрен в отдельном разделе. Атрибуты задаются явно и по одному, поэтому значений по умолчанию для них не предусмотрено. (Значения параметров по умолчанию были приведены при описании создания объектов.)
Задания
Атрибут
Тип данных
Описание
auto_drop
BOOLEAN
Указывает, следует ли удалять задание после его завершения. Допустимы следующие значения:
TRUE и FALSE.
comments
VARCHAR2
Комментарии.
end_date
TIMESTAMP
Дата, после которой задание больше не будет за­пускаться. Задание будет удалено (если задан ат­рибут auto_drop) или отключено. Его статус изме­нится на COMPLETED (если оно завершено). Если этот атрибут задан, то атрибут schedule_name должен со­держать NULL.
instance_sti- ckiness
BOOLEAN
При работе в базе данных RAC задание запускает­ся на любом одном экземпляре. Следующий за­пуск может быть осуществлен уже на другом эк­земпляре, который будет меньше загружен. Если данный атрибут установлен в значение TRUE, будет использоваться один и тот же экземпляр, вне за­висимости от его загруженности. Допустимы сле­дующие значения: TRUE и FALSE.
job_action
VARCHAR2
Природа программы. Для PL/SQL-блока указыва­ется исполняемый анонимный блок. Для хранимой процедуры указывается ее имя (можно также указать имя схемы и пакета). Для исполняемого файла приводится полный путь к файлу операционной системы или сценарию обо­лочки.
job_class
VARCHAR2
Класс заданий, с которым связано данное задание.

Атрибут
Тип данных
Описание
job_p riority
PLS_
JNTEGER
Приоритет здания по отношению к другим задани­ям того же класса. Если выполнение нескольких заданий одного класса запланировано на одно и то же время, то порядок отбора заданий из класса для выполнения будет определяться по их приори­тетам. Допустимы значения от 1 (наивысший при­оритет) до 5 (самый низкий приоритет). Значение по умолчанию - 3.
job_type
VARCHAR2
Тип задания. Допустимы следующие значения:



PLSQL_BLOCK
STORED_PROCEDURE
EXECUTABLE



Если данный атрибут задан, то атрибут program_na- me должен содержать NULL.
job_weight
PLS_
JNTEGER
Степень параллелизма для задания. Допустимы значения от 1 до 100. Значение по умолчанию - 1.
logging_level
PLS_
JNTEGER
Подробность регистрируемой информации. Под­меняет свойства класса заданий. Допустимы сле­дующие значения:
DBMS_SCHEDULER.LOGGING_OFF DBMS_SCHEDULER.LOGGING_RUNS (по умолчанию) DBMS_SCHEDULER.LOGGING_FULL
max_failures
PLS_
JNTEGER
Количество неудачных выполнений, по достиже­нии которого статус задания изменится на BROKEN. Допустимы значения от 1 до 1000000. Значение по умолчанию - NULL, что означает, что новые экземп­ляры задания будут запускаться вне зависимости от того, сколько экземпляров уже не удалось вы­полнить. Отличие от старого пакета DBMS_JOB, в ко­тором было разрешено максимум 16 неудачных выполнений задания, после чего оно помечалось как BROKEN (и эту цифру нельзя было изменить).
max_runs
NUMBER
Максимальное количество последовательных за­планированных выполнений задания. При дости­жении этого максимума задание отключается, его статус меняется на COMPLETED. Допустимы значения от 1 до 1000000. Значение по умолчанию - NULL, что означает, что задание будет выполняться веч­но или до достижения значений, указанных в па­раметре end_date или max_failures.
number_of_ar- guments
PLS_
JNTEGER
Количество аргументов для подставляемой (inline) программы. Если данный атрибут задан, то атри­бут prog ram_name должен содержать NULL.
program_name
VARCHAR2
Имя объекта-программы, который должен ис­пользоваться с этим заданием. Если данный атри-

Атрибут
Тип данных
Описание


бут задан, то атрибуты job_action, job_type и num- ber_of_arguments должны содержать NULL.
repeat_in- terval
INTERVAL
Символьное выражение, использующее синтак­сис календарной строки (описанный ранее). На­пример: FREQ=YEARLY; BYMONTH = 12.
restartable
BOOLEAN
Указывает, следует ли пытаться повторно выпол­нить задание после неудачного завершения. До­пустимы следующие значения: TRUE и FALSE. Значе­ние по умолчанию - TRUE.
schedule_li- mit
PLS_INTEGER
В сильнозагруженных системах задания не всегда запускаются в запланированное время. Этот атри­бут указывает планировщику на то, что уже не следует запускать задание, если задержка оказа­лась больше указанного в атрибуте промежутка времени. Допустимы значения от 1 минуты до 99 дней. Например, если планировалось запустить задание в полдень и предельная задержка задана равной 60 минутам, то если задание не будет запу­щено до часа дня, оно не будет запущено уже ни­когда.
Если schedule_limit не задан, то задание будет вы­полнено когда-нибудь впоследствии, когда освобо­дятся ресурсы для его выполнения. По умолчанию атрибут установлен в NULL, что означает, что зада­ние может быть запущено в любое время после за­планированного. Задание, запуск которого пропу­щен согласно данному атрибуту, не учитывается в количестве успешных и неуспешных выполне­ний задания. В журнал вносится запись о пропус­ке выполнения задания.
schedule_name
VARCHAR2
Имя расписания, окна или группы окон, исполь­зуемых в качестве расписания для данного зада­ния. Если данный атрибут задан, то атрибуты
end_date, start_date и repeat_interval должны (од­новременно) содержать NULL.
start_date
VARCHAR2
Исходная временная метка начала выполнения за­дания или запланированного выполнения зада­ния. Если данный атрибут задан, то атрибут sched- ule_name должен содержать NULL.
stop_on_win- dow_close
BOOLEAN
Действие при закрытии окна. Что должно произой­ти с заданием, если оно связано с окном, а окно за­крывается в процессе выполнения задания? Если данный атрибут установлен в значение TRUE, то за­дание также будет остановлено. Если атрибут ус­тановлен в значение FALSE, то выполнение задания будет продолжено даже при закрытии окна.

Классы заданий
Атрибут
Тип данных
Описание
comments
VARCHAR 2
Комментарии.
log_history
PLS_INTEGER
Срок хранения информации (в днях) в журнале для данного класса заданий. Допустимы значе­ния от 1 до 999.
logging_level
PLS_INTEGER
Указывает уровень протоколирования. Допусти­мы следующие значения:
DBMS_SCHEDULER.LOGGING_OFF DBMS_SCHEDULER.LOGGING_RUNS (по умолчанию) DBMS_SCHEDULER.LOGGING_FULL
resou rce_con- sumer_group
VARCHAR2
Группа потребителей ресурсов, с которой связы­вается данный класс заданий. Если этот атрибут задан, то атрибут service должен содержать NULL.
service
VARCHAR2
Имя сервиса (определенное в базе данных), кото­рому принадлежит данный класс заданий. Значе­ние по умолчанию NULL соответствует сервису по умолчанию. Если этот атрибут задан, то атрибут
resource_consumer_group должен содержать NULL.

Расписания
Атрибут
Тип данных
Описание
comments
VARCHAR2
Комментарии.
end_date
TIMESTAMP
Временная метка отсечки, после которой рас­писание прекращает задание дат.
repeat_interval
VARCHAR2
Символьное выражение, использующее синтак­сис календарной строки (описанный ранее). На­пример, FREQ=YEARLY; BYMONTH=12.
start_date
TIMESTAMP
Начальная временная метка, используемая в календарной строке.

Программы
Атрибут
Тип данных
Описание
comments
VARCHAR2
Комментарии.
number_of_argu- ments
PLS_INTEGER
Количество аргументов программы.
program_action
VARCHAR2
Природа программы:
Для PL/SQL-блока указывается исполняемый анонимный блок.
Для хранимой процедуры указывается ее имя (можно также указать имя схемы и пакета).

Атрибут
Тип данных
Описание


Для исполняемого файла приводится полный


путь к файлу операционной системы или сцена-


рию оболочки.
program_type
VARCHAR2
Тип программы. Допустимы следующие значе-


ния:


PLSQL_BLOCK


STORED_PROCEDURE


EXECUTABLE

Окна
Атрибут
Тип данных
Описание
comments
TIMESTAMP
Комментарии.
duration
INTERVAL
Продолжительность окна.
end_date
TIMESTAMP
Временная метка, после которой окно не будет открываться. Если данный атрибут задан, то атрибут schedule_name должен содержать NULL.
repeat_interval
VARCHAR2
Символьная строка, использующая синтаксис календарной строки (описанный ранее). Если данный атрибут задан, то атрибут schedule_name должен содержать NULL.
resou rce_plan
VARCHAR2
Ресурсный план, который связывается с окном.
schedule_name
TIMESTAMP
Имя расписания, которое будет использовать­ся для данного окна. Если этот атрибут задан, то атрибуты start_date, end_date и repeat_inter- val должны содержать NULL.
start_date
TIMESTAMP
Следующая временная метка, на которую за­планировано открытие окна. Если этот атрибут задан, то атрибут schedule_name должен содер­жать NULL.
window_priority
VARCHAR2
Приоритет окна. Допустимы следующие значе­ния: LOW и HIGH.

Группы окон
Атрибут
Тип данных
Описание
comments
TIMESTAMP
Комментарий для группы окон. Это единственный атрибут, поддерживаемый для группы окон.
Заключение
Планировщик Oracle Scheduler - это новая утилита управления заданиями, появившаяся в версии Oracle 10*. Она является гораздо более мощной, чем ее предшественник - пакет DBMS_JOB. При помощи планировщика можно обеспечивать выполнение хранимых процедур и анонимных блоков PL/SQL, а также исполняемых файлов операционной системы. Для календарных строк, задающих требуемое время выполнения заданий, используется нотация, практически не отличающаяся от обычного английского языка. Все операции планировщика доступны через программный интерфейс приложения во встроенном пакете DBMS_SCHEDULER. Кроме того, Enterprise Manager в Oracle 10* предоставляет графический интерфейс, который может быть использован для управления заданиями, что делает планирование выполнения заданий чрезвычайно простым даже для тех, кто пользуется им впервые. Планировщик позволяет определить именованное расписание, которое может вызываться независимо для выполнения действия, представляющего собой полное имя исполняемого файла или именованную программу, ссылающуюся на исполняемый файл. Задания также могут подчиняться системе управления ресурсами Oracle, которая может применяться для управления ресурсами (ЦПУ, серверы параллельных запросов), доступными отдельным заданиям. Подводя итог, можно сказать, что Scheduler - это единственная система управления заданиями, которая понадобится вам для планирования выполнения любых заданий, за исключением тех, которые точно должны выполняться вне связи с базой данных (например, для запуска самой базы данных).
 









jAntivirus