Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Планировщик заданий

Содержание

ВведениеСУБД Oracle — большой и сложный механизм, требующий выполнения определенных плановых работ, таких как сбор статистики о хранимых объектах или сбор/чистка внутренней информации. Необходимость осуществлять плановый запуск работ могут испытывать и пользователи БД. Первый механизм планового
Планировщик заданийГрафеева Н.Г.2017 ВведениеСУБД Oracle — большой и сложный механизм, требующий выполнения определенных плановых работ, Основные понятия планировщикаSchedule (расписание) Program (программа) Job (плановое задание = расписание + программа)Chain (последовательность заданий) Объекты словаря данныхтаблицы словаря LIKE '%SCHEDULER_%‘:DBA_SCHEDULER_JOBS DBA_SCHEDULER_JOB_LOGUSER_SCHEDULER_PROGRAMS USER_SCHEDULER_JOBSи прочие Типы заданий (и программ)PL/SQL – процедура (STORED_PROCEDURE)PL/SQL - блок (PLSQL_BLOCK)external OS-program (EXECUTABLE) Пример (простое задание с PLSQL блоком)BEGINDBMS_SCHEDULER.CREATE_JOB( job_name  => 'simple_job', job_type Пример (простое задание с вызовом хранимой процедуры)CREATE PROCEDURE updatesal AS BEGIN UPDATE Пример (задание с внешним вызовом)BEGINDBMS_SCHEDULER.CREATE_JOB( job_name  => 'simple_job', job_type  => Возможности для указания запуска заданийСледующие параметры процедуры CREATE_JOB:start_date => SYSTIMESTAMP + INTERVAL Примеры (использование языка для запуска заданий)FREQ=HOURLY;INTERVAL=4 каждые 4 часа; FREQ=MINUTELY;INTERVAL=5 каждые 5 Как проверить правильность составленного выражения? DECLARE  next_run_date TIMESTAMP;BEGIN DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING  ( Информация о заданияхЕсли указать план запуска, задание появится в словаре уже надолго. Скомпонованное заданиеБолее развитая возможность DBMS_SCHEDULER позволяет скомпоновать задание из независимых элементов: программы Пример (создание программы)BEGINDBMS_SCHEDULER.CREATE_PROGRAM( program_name => 'simple_program', program_type => 'STORED_PROCEDURE' ,  program_action ПримечанияИнформация об имеющихся программах для планировщика присутствует в представлениях: DBA/ALL/USER_SCHEDULER_PROGRAMS. Другими значениями Пример (процедуры с параметрами) CREATE PROCEDURE salary ( deer NUMBER ) AS Пример(уточнение фактических параметров вызова программы)BEGINDBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT( program_name   => 'simple_program1', argument_position => Пример(уточнение фактических параметров вызова программы)BEGINDBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT( program_name   => 'simple_program1', argument_position => Пример (создание расписания)BEGIN DBMS_SCHEDULER.CREATE_SCHEDULE   ( schedule_name  => 'simple_schedule', Информация о расписанияхИнформация об имеющихся расписаниях для планировщика находится в представлениях словаря: DBA/ALL/USER_SCHEDULER_SCHEDULES Пример (скомпонованное задание для программы без параметров)BEGIN  DBMS_SCHEDULER.CREATE_JOB   ( Пример (скомпонованное задание для программы с параметрами)BEGIN DBMS_SCHEDULER.CREATE_JOB  ( job_name Домашнее задание 11(5 баллов)Создайте приложение, которое позволяет:1.Выполнять запуск задания.2.Исполнять задание 10 -20
Слайды презентации

Слайд 2 Введение
СУБД Oracle — большой и сложный механизм, требующий

ВведениеСУБД Oracle — большой и сложный механизм, требующий выполнения определенных плановых

выполнения определенных плановых работ, таких как сбор статистики о

хранимых объектах или сбор/чистка внутренней информации. Необходимость осуществлять плановый запуск работ могут испытывать и пользователи БД.
Первый механизм планового запуска появился в версии 7 для поддержки автоматических обновлений снимков (snapshots), как поначалу именовались нынешние материализованные виртуальные таблицы (materialized views). В версии 8 этот механизм был открыт для обычных пользователей через посредство некоторых параметров СУБД, таблиц словаря, а также пакета DBMS_JOB. Пакет DBMS_JOB позволял (и позволяет) запускать хранимую процедуру, или же неименованный блок PL/SQL в моменты времени, вычисляемые по указанной пользователем формуле.
К версии 10 такое устройство имевшегося планировщика заданий было сочтено слишком примитивным, и в ней появился новый планировщик DBMS_SCHEDULER, значительно более проработанный.

Слайд 3 Основные понятия планировщика
Schedule (расписание)
Program (программа)
Job (плановое

Основные понятия планировщикаSchedule (расписание) Program (программа) Job (плановое задание = расписание + программа)Chain (последовательность заданий)

задание = расписание + программа)
Chain (последовательность заданий)


Слайд 4 Объекты словаря данных
таблицы словаря LIKE '%SCHEDULER_%‘:

DBA_SCHEDULER_JOBS DBA_SCHEDULER_JOB_LOG
USER_SCHEDULER_PROGRAMS
USER_SCHEDULER_JOBS
и

Объекты словаря данныхтаблицы словаря LIKE '%SCHEDULER_%‘:DBA_SCHEDULER_JOBS DBA_SCHEDULER_JOB_LOGUSER_SCHEDULER_PROGRAMS USER_SCHEDULER_JOBSи прочие

прочие


Слайд 5 Типы заданий (и программ)
PL/SQL – процедура (STORED_PROCEDURE)
PL/SQL -

Типы заданий (и программ)PL/SQL – процедура (STORED_PROCEDURE)PL/SQL - блок (PLSQL_BLOCK)external OS-program (EXECUTABLE)

блок (PLSQL_BLOCK)
external OS-program (EXECUTABLE)




Слайд 6 Пример (простое задание с PLSQL блоком)
BEGIN
DBMS_SCHEDULER.CREATE_JOB
( job_name

Пример (простое задание с PLSQL блоком)BEGINDBMS_SCHEDULER.CREATE_JOB( job_name => 'simple_job', job_type =>

=> 'simple_job',
job_type => 'PLSQL_BLOCK',
job_action => 'UPDATE

emp SET sal = sal +1;',
enabled => TRUE
);
END;

Слайд 7 Пример (простое задание с вызовом хранимой процедуры)
CREATE PROCEDURE

Пример (простое задание с вызовом хранимой процедуры)CREATE PROCEDURE updatesal AS BEGIN

updatesal AS BEGIN UPDATE emp SET sal = sal

- 1; END;
/

BEGIN
DBMS_SCHEDULER.CREATE_JOB
( job_name => 'simple_job',
job_type => 'STORED_PROCEDURE',
job_action => 'updatesal',
enabled => TRUE
) ;
END;
/

Слайд 8 Пример (задание с внешним вызовом)
BEGIN
DBMS_SCHEDULER.CREATE_JOB
( job_name =>

Пример (задание с внешним вызовом)BEGINDBMS_SCHEDULER.CREATE_JOB( job_name => 'simple_job', job_type => 'EXECUTABLE',

'simple_job',
job_type => 'EXECUTABLE',
job_action => 'cmd.exe /C

dir > \temp\out.txt',
enabled => TRUE
);
END;

Слайд 9 Возможности для указания запуска заданий
Следующие параметры процедуры CREATE_JOB:

start_date

Возможности для указания запуска заданийСледующие параметры процедуры CREATE_JOB:start_date => SYSTIMESTAMP +

=> SYSTIMESTAMP + INTERVAL '10' SECOND
end_date => SYSTIMESTAMP +

INTERVAL ‘100' SECOND



repeat_interval => 'FREQ=MONTHLY; BYDAY=SUN, -1 SAT‘
(В результате задание будет исполняться ежемесячно по воскресениям и последним субботам месяца)



Слайд 10 Примеры (использование языка для запуска заданий)
FREQ=HOURLY;INTERVAL=4 каждые 4

Примеры (использование языка для запуска заданий)FREQ=HOURLY;INTERVAL=4 каждые 4 часа; FREQ=MINUTELY;INTERVAL=5 каждые

часа;
FREQ=MINUTELY;INTERVAL=5 каждые 5 минут
FREQ=HOURLY;INTERVAL=4;BYMINUTE=10;BYSECOND=30 каждые 4 часа на

10-й минуте, 30-й секунде;
FREQ=YEARLY;BYYEARDAY=-276 каждое 31-е марта;
FREQ=YEARLY;BYMONTH=MAR;BYMONTHDAY=31 каждое 31-е марта;


Слайд 11 Как проверить правильность составленного выражения?
DECLARE

Как проверить правильность составленного выражения? DECLARE  next_run_date TIMESTAMP;BEGIN DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING (

next_run_date TIMESTAMP;
BEGIN
DBMS_SCHEDULER.EVALUATE_CALENDAR_STRING
(
'FREQ=MINUTELY;INTERVAL=4',

SYSTIMESTAMP,
NULL,
next_run_date
) ;
DBMS_OUTPUT.PUT_LINE ( 'next_run_date: ' || next_run_date );
END;

Слайд 12 Информация о заданиях
Если указать план запуска, задание появится

Информация о заданияхЕсли указать план запуска, задание появится в словаре уже

в словаре уже надолго. Удалить его при необходимости можно

будет так:

EXECUTE DBMS_SCHEDULER.DROP_JOB ( 'simple_job', TRUE )

Информацию об имеющихся заданиях пользователь может посмотреть запросом:
SELECT job_name, state, enabled
FROM user_scheduler_jobs;

Более подробную информацию можно обнаружить в таблицах USER_SCHEDULER_%, а более общую – в обычной таблице USER_OBJECTS.


Слайд 13 Скомпонованное задание
Более развитая возможность DBMS_SCHEDULER позволяет скомпоновать задание

Скомпонованное заданиеБолее развитая возможность DBMS_SCHEDULER позволяет скомпоновать задание из независимых элементов:

из независимых элементов: программы и расписания. Характерная особенность в

том, что оба эти элемента самостоятельны; их можно комбинировать в разных заданиях и изменять, не внося изменений в определения заданий.

Слайд 14 Пример (создание программы)
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM
( program_name => 'simple_program',
program_type =>

Пример (создание программы)BEGINDBMS_SCHEDULER.CREATE_PROGRAM( program_name => 'simple_program', program_type => 'STORED_PROCEDURE' , program_action

'STORED_PROCEDURE' ,
program_action => 'updatesal',
enabled

=> TRUE
);
END;

Слайд 15 Примечания
Информация об имеющихся программах для планировщика присутствует в

ПримечанияИнформация об имеющихся программах для планировщика присутствует в представлениях: DBA/ALL/USER_SCHEDULER_PROGRAMS. Другими

представлениях: DBA/ALL/USER_SCHEDULER_PROGRAMS.
Другими значениями параметра PROGRAM_TYPE могут быть 'PLSQL_BLOCK'

и 'EXECUTABLE' (как и типов заданий).


Слайд 16 Пример (процедуры с параметрами)
CREATE PROCEDURE salary (

Пример (процедуры с параметрами) CREATE PROCEDURE salary ( deer NUMBER )

deer NUMBER ) AS
BEGIN
UPDATE emp

SET sal = sal - deer;
END;
/

BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM
( program_name => 'simple_program1',
program_type => 'STORED_PROCEDURE',
program_action => 'salary',
enabled => FALSE,
number_of_arguments => 1
) ;
END;
/


Слайд 17 Пример(уточнение фактических параметров вызова программы)
BEGIN
DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT
( program_name

Пример(уточнение фактических параметров вызова программы)BEGINDBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT( program_name  => 'simple_program1', argument_position =>

=> 'simple_program1',
argument_position => 1,
argument_name =>

'DELTA',
argument_type => 'NUMBER'
) ;
END;
/

BEGIN DBMS_SCHEDULER.ENABLE ( 'simple_program1' ); END



Слайд 18 Пример(уточнение фактических параметров вызова программы)
BEGIN
DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT
( program_name

Пример(уточнение фактических параметров вызова программы)BEGINDBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT( program_name  => 'simple_program1', argument_position =>

=> 'simple_program1',
argument_position => 1,
argument_name =>

'DELTA',
argument_type => 'NUMBER',
default_value => 8
) ;
END;
/

BEGIN DBMS_SCHEDULER.ENABLE ( 'simple_program1' ); END


Слайд 19 Пример (создание расписания)
BEGIN
DBMS_SCHEDULER.CREATE_SCHEDULE
( schedule_name

Пример (создание расписания)BEGIN DBMS_SCHEDULER.CREATE_SCHEDULE  ( schedule_name => 'simple_schedule',  start_date

=> 'simple_schedule',
start_date

=> SYSTIMESTAMP,
repeat_interval => 'FREQ=WEEKLY; BYDAY=MON, TUE, WED, THU, FRI',
end_date => SYSTIMESTAMP + INTERVAL '1' MONTH
) ;
END;

Слайд 20 Информация о расписаниях
Информация об имеющихся расписаниях для планировщика

Информация о расписанияхИнформация об имеющихся расписаниях для планировщика находится в представлениях словаря: DBA/ALL/USER_SCHEDULER_SCHEDULES

находится в представлениях словаря:

DBA/ALL/USER_SCHEDULER_SCHEDULES


Слайд 21 Пример (скомпонованное задание для программы без параметров)
BEGIN

Пример (скомпонованное задание для программы без параметров)BEGIN DBMS_SCHEDULER.CREATE_JOB  ( job_name

DBMS_SCHEDULER.CREATE_JOB
( job_name => 'compound_job',

program_name => 'simple_program',
schedule_name => 'simple_schedule',
enabled => TRUE
);
END;

Слайд 22 Пример (скомпонованное задание для программы с параметрами)
BEGIN
DBMS_SCHEDULER.CREATE_JOB

Пример (скомпонованное задание для программы с параметрами)BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name

( job_name => 'compound_job1',

program_name => 'simple_program1',
schedule_name => 'simple_schedule',
enabled => FALSE
);
END;
/

BEGIN
DBMS_SCHEDULER.SET_JOB_ANYDATA_VALUE
( job_name => 'compound_job1',
argument_name => 'DELTA',
argument_value => ANYDATA.CONVERTNUMBER ( 3 )
)
END;
/



BEGIN DBMS_SCHEDULER.ENABLE ( 'compound_job1' ); END


  • Имя файла: planirovshchik-zadaniy.pptx
  • Количество просмотров: 146
  • Количество скачиваний: 0
- Предыдущая My hometown