<Insert Picture Here>
Введение
в
Oracle SchedulerИгорь
Мельников
Старший
консультант
<Insert Picture Here>
План
•
Введение•
Основные
понятия
Oracle Scheduler
•
Новые
возможности
в
10g Rel.2 •
Миграция
с
DBMS_JOB
•
Новые
возможности
в
11g Rel.1
Введение
в
Oracle Scheduler
Oracle Scheduler Новая
подсистема
заданий
в
Oracle 10g
Enterprise Manager(web Interface)
Oracle
Database
Oracle Scheduler
DBMS_SCHEDULER(API)
Oracle Scheduler Управление
через
консоль
EM
Oracle Scheduler API Встроенный
пакет
DBMS_SCHEDULER
SQL> desc DBMS_SCHEDULER
PROCEDURE ADD_EVENT_QUEUE_SUBSCRIBERArgument Name Type In/Out Default?------------------------------ --------- ------ --------SUBSCRIBER_NAME VARCHAR2 IN DEFAULTPROCEDURE ADD_WINDOW_GROUP_MEMBERArgument Name Type In/Out Default?------------------------------ --------- ------ --------GROUP_NAME VARCHAR2 INWINDOW_LIST VARCHAR2 INPROCEDURE ALTER_CHAINArgument Name Type In/Out Default?------------------------------ --------- ------ --------CHAIN_NAME VARCHAR2 INSTEP_NAME VARCHAR2 INATTRIBUTE VARCHAR2 INVALUE BOOLEAN IN
Основные
понятия
Oracle Scheduler Основные
понятия
ЧтоКогда
Как
КогдаКак
часто
Как
долгоЧтоКогда
Oracle Scheduler Программа
Oracle Scheduler Программа
Код который будет выполняться в задании:PL/SQL- процедураАнонимный PL/SQL-блокВнешняя программа ОС
Скриптвыполняемый файлкоманда ОС
Определяется имя программыПараметры
Oracle Scheduler Создание
программы
в
EM
BEGINDBMS_SCHEDULER.CREATE_PROGRAM(
program_name => 'my_arc_prg',program_action => '/usr/local/bin/my_batch.sh',program_type => 'EXECUTABLE',comments => 'Скрипт
для
архивирования');
END;
Oracle Scheduler Создание
программы
через
DBMS_SCHEDULER
Oracle Scheduler Расписание
Oracle Scheduler Календарь
для
расписания
Удобный календарь для расписания выполненияИнтервал: минуты, часы, дни, месяцы, годыДаты начала и окончания расписания выполнения
Oracle Scheduler Создание
распиcания
в
EM
BEGINDBMS_SCHEDULER.CREATE_SCHEDULE(schedule_name => 'my_stats_schedule',start_date => SYSTIMESTAMP,end_date => SYSTIMESTAMP + INTERVAL '30' day,repeat_interval => 'FREQ=HOURLY; INTERVAL=4',comments => 'Every 4 hours');
END;
Oracle Scheduler Создание
распиcания
программно
Oracle Scheduler Job
Oracle Scheduler Создание
задания
Параметры
задания
Oracle Scheduler Определение
программы
для
задания
•
Определяется
какой
код
должен
выполняться•
Возможен
как
и
непосредственный
ввод
кода
и
расписания•
Так
и
определение
задания
как
комбинации
программы
и
расписания
(типизация
задания)
Oracle Scheduler Расписание
задания
Установка
расписания
вручную
Oracle Scheduler Дополнительные
параметры
для
задания
Oracle Scheduler Журнал
выполнения
заданий
Просмотр как через view, так и через DB Control
Oracle Scheduler Job Class
Oracle Scheduler Job Class
Группировка заданий с одинаковыми требованиямик ресурсамДля Job Class определяются
Resource Consumer GroupДетализация журнала выполнения (logging level)Имя сервиса (для RAC)
Oracle Scheduler Создание
Job Class
в
EM
Новые
возможности
в
Oracle Database 10g Release 2
Oracle Database
SchedulerСобытиеНовые
данные"
“Bulk Load” Job
Do_bulk_load
Recalc_stats
Rebuild_indx
Run Reports
space?
Oracle Scheduler Новые
возможности
в
Oracle Database 10g Rel.2
YES
NO
•
Составные
задания•
Задания
по
событиям
•
Приоритеты
заданий•
Более
гибкий
календарь
Зависимости
между
заданиями
Цепочки
выполнения
заданий
•
Цепочка
выполнения
заданий•
Условия
перехода
по
цепочке: состояние
задания
на
входе, код
ошибки, время
и
т.д. – могут комбинироваться
(AND, OR, NOT)
•
На
выходе
цепочки
могут
быть
несколько
потоков выполнения
•
Примеры
выхода: запустить, запустить
с задержкой, остановить
•
Расписание
на
цепочку•
Возможно:
запустить
цепочку, приостановить,
пропустить
цепочку
Задания
по
событиям
•
Выполнение
задания
по
событиям•
Генерируются
на
стороне
сервера
программно
•
Могут
поступать
события
и
снаружи
–
например
появился файл
на
сервере
•
Событие
может
быть
частью
цепочки
!
Приоритеты
заданий
•
Более
высокий
приоритет
для
важных
заданий•
Более
ровная
загрузка
системы
за
счет
расстановки
приоритетов•
Распределение
ограниченных
ресурсов
для
заданий
•
Интеграция
с
Resource Manager•
Изменение
распределения
ресурсов
по
расписанию
Приоритеты
заданий Пример
APPLICATION
Job1 Job2
ADMIN
Job4 Job5
OTHER
Job3
Group Resource Allocation
Application 60%
Admin 30%
Other 10%
Resource plan
Изменение
приоритета
по
расписанию
1 2 3 4 5 6 7 8 9 10 11 12
Resource plan1 Resource plan 2
Application 30%
Admin 60%
Other 10%
Application 60%
Admin 30%
Other 10%
Миграция
с
DBMS_JOB
•
Вся
функциональность
DBMS_JOB в
целях
обратной
совместимости поддерживается!
•
Cоздание
задания
в
стиле
DBMS_JOB (за
один
вызов)
DECLAREv_xStartDate constant date := to_date('01.08.2007 01:00:00',
'dd.mm.yyyy hh24:mi:ss');BEGINDBMS_SCHEDULER.CREATE_JOB(
job_name => 'close_day_backup',job_type => 'plsql_block',job_action => 'begin opn_service.makeBackup; end;',start_date => v_xStartDate,repeat_interval => 'freq=daily',enabled => true,comments => 'Create backup');
END;
Миграция
с
пакета
DBMS_JOB Создание
задания
в
стиле
DBMS_JOB
Миграция
с
пакета
DBMS_JOB Удаление
задания
BEGINDBMS_SCHEDULER.REMOVE('close_day_backup');
END;
Новые
возможности
в
Oracle Database 11g
•
Запуск
заданий
с
командами
ОС
под
разными пользователями
операционной
системы
•
Запуск
удаленных
заданий
с
командами
ОС
Oracle Scheduler Новые
возможности
в
Oracle Database 11g
Локальные
задания
под
разными пользователями
ОС
User SCOTT submit jobs
Run job2 as OS user Y
Run job1 as OS user X
Run job3 as OS user Z
Machine 1
Oracle Database
Job1Job2Job3
Запуск
удаленных
заданий
Oracle Database
User SCOTT submit jobs
Machine CMachine A Machine B
Run job1 as OS user X
Agent Agent Agent
Machine 1
Run job2 as OS user Y
Run job3 as OS user Z
Job1Job2Job3
Oracle Scheduler Заключение
•
Гибкая
система
управления
заданиями
в
СУБД Oracle Database
•
Интеграция
с
менеджером
ресурсов
и поддержка
RAC
•
Теперь
не
требуется
делать
собственную подсистему
“поверх”
DBMS_JOB как
было
раньше
•
Поддержка
“workflow”
заданий
и
приоритеты
Oracle Scheduler Documentation Документация
•
Oracle Database Administrator's Guide 10g Release 2 (10.2)
•
Ссылки:•
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231.p
df•
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/to
c.htm
•
Глава
26 “Overview of Scheduler Concepts”
•
Глава
27 “Using the Scheduler”
•
Глава
28 “Administering the Scheduler”
<Insert Picture Here>
Игорь
МельниковСтарший
консультант
Oracle СНГ
Email : [email protected] : +7 (495) 641 14 00Direct: +7 (495) 641 14 42Mobile: +7 (916) 290 45 15
Top Related