Oracle DBA Forum  

Вернуться   Oracle DBA Forum > Oracle University Official Study Notes (RUS) > База данных Oracle 10g Администрирование > База данных Oracle 10g Администрирование II

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 13.10.2009, 07:17
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию 14 Автоматизация выполнения задач с помощью планировщика

__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #2  
Старый 13.10.2009, 07:17
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Рассматриваемые вопросы



Рассматриваемые вопросы

Дополнительные сведения о различных компонентах планировщика (Scheduler) и взаимосвязях между ними см. в документе Oracle Database Administrator's Guide.

Подробную информацию о пакете DBMS SCHEDULER см. в документе Oracle Database PL/SQL Packages and Types Reference.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #3  
Старый 13.10.2009, 07:20
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Упрощение управления задачами



Упрощение управления задачами

Возможности планирования заданий необходимы при использовании многих функций базы данных. Планировать и периодически выполнять задания требуется в ходе повседневного сопровождения базы данных, а также для поддержания логической схемы приложений. В бизнес-приложениях (business-to-business - В2В) требуется планировать соответствующие бизнес-события. Администраторы баз данных вынуждены планировать задачи сопровождения, регулярно выполняемые в определенных "временных окнах" (time windows).

База данных Oracle 10g предоставляет расширенные возможности решения таких задач с помощью планировщика (Scheduler), доступ к которому производится с помощью функций и процедур пакета DBMS_SCHEDULER. Планировщик может быть вызван в любой среде SQL или с помощью Enterprise Manager.

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

Задания планировщика могут быть запущены на основе времени или в случае возникновения определенного события. Планировщик также может вызвать появление событий при изменении статуса задания (например, с RUNNING на COMPLETE). Кроме того, для получения объединенного объекта можно использовать именованную последовательность программ, связанных друг с другом.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #4  
Старый 13.10.2009, 07:21
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Простое задание



Простое задание

Задание (job) имеет два основных компонента: действие ("что" необходимо выполнить) и расписание ("когда" выполнить). В Enterprise Manager "ЧТО" описывается в области Command, представленной на слайде. Действие отображается в параметрах job_type и job_action пакета dbms_scheduler.



В задании также определяется, "КОГДА" требуемое действие следует выполнить. "КОГДА" выражается с помощью "расписания" ("schedule"), которое может основываться на времени (см. параметр start_date) или событиях, а также может зависеть от выходных результатов других заданий. Эти параметры рассматриваются далее в этом уроке.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #5  
Старый 13.10.2009, 07:23
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Шаги использования основных компонентов



Шаги использования основных компонентов

Планировщик предоставляет модульный подход решения задач в базе данных Oracle. Разбиение задач на такие компоненты, как время, месторасположение и объект базы данных, обеспечиваемое планировщиком, позволяет упростить управление средой базы данных.

Планировщик использует три основных компонента:

Задание (job) определяет, что необходимо выполнить и когда. Например, "что" может быть процедурой PL/SQL, выполняемым в ОС двоичным модулем (native binary executable), Java-приложением и скриптом командного интерпретатора. Программа ("что") и расписание ("когда") могут быть частью определения задания. Кроме того, можно использовать программу и расписание, которые существуют отдельно. Использование аргументов задания позволяет настроить его выполнение.

Расписание (schedule) определяет, когда и как часто выполняется работа. Расписание для задания можно задать в виде последовательности дат, в виде события или комбинации этих двух методов с указанием дополнительных спецификаций, обозначающих повторяющиеся интервалы. Расписание может храниться отдельно и использоваться для многих заданий.

Программа (program) - совокупность метаданных о конкретном выполняемом модуле, скрипте или процедуре. Автоматизированное задание содержит некоторую задачу. Использование программы позволяет изменить задачу или "что необходимо сделать" без изменения самого задания. Для программы могут быть определены аргументы, с помощью которых пользователи влияют на режим ее работы.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #6  
Старый 13.10.2009, 07:25
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию 1. Создание программы



1. Создание программы

Программа создается с помощью процедуры CREATE_PROGRAM. Создание программы -необязательное действие при использовании планировщика. Выполняемые заданием операции можно описать в анонимном блоке PL/SQL, указанном в процедуре CREATE_JOB. Создавая программу отдельно, вы определяете действие один раз, а затем его повторно используете во многих заданиях. Это позволяет вам изменять расписание задания без необходимости пересоздания блока PL/SQL. Вы также можете настраивать задание, указывая значения аргументов.

Чтобы создать программу в своей собственной схеме, необходимо иметь привилегию CREATE JOB. Пользователь с привилегией CREATE ANY JOB может создавать программу в любой схеме.

Программа создается по умолчанию в отключенном состоянии (если только для параметра enabled не установлено значение TRUE). Задание не может выполнять программу до тех пор, пока эта программа не будет включена. Можно задать создание программы во включенном состоянии, указав для этого в параметре enabled значение TRUE.

Действие программы задается в строке, в которой указывается в зависимости от параметра program_type процедура, имя исполняемого модуля или анонимный блок PL/SQL.

Например, если имеется процедура UPDATE_HR_SCHEMA_STATS, собирающая статистики для схемы hr, тогда можно создать программу, вызывающую эту процедуру.

В ЕМ выберите Administration > Programs и щелкните на кнопке Create.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #7  
Старый 13.10.2009, 07:27
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию 2. Создание и использование расписаний



2. Создание и использование расписаний

Использование расписания вместо времени выполнения, задаваемого при определении задания, позволяет управлять многими заданиями без необходимости изменения их определений. После изменения расписания каждое использующее его задание автоматически начинает применять обновленное расписание.
Для создания расписания используется PL/SQL-процедура CREATE_SCHEDULE пакета DBMS_SCHEDULER.

Параметр start_date отражает дату, начиная с которой расписание становится активным. В расписании нельзя ссылаться на более раннюю, чем указано в этом параметре, дату. Расписание не действует после даты, определяемой в параметре
end_date.

Для планирования повторяющегося выполнения применяется календарное выражение, определяемое в параметре repeat interval ОHO используется для генерации следующей планируемой даты выполнения. В расписание не попадают даты позднее заданной параметром end_date.

В представленном выше примере создается расписание STATS_SCHEDULE, задающее повторяющийся четырехдневный интервал, начинающийся сейчас и продолжающийся 30 дней..

Для создания расписания можно использовать ЕМ, как это показано на слайде.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #8  
Старый 13.10.2009, 07:29
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию 3. Создание и выполнение задания



3. Создание и выполнение задания

Задание - это объединение расписания и того, что следует сделать, вместе с дополнительными аргументами, определенными в задании.

Программа или "Команда" (область "Command" в ЕМ) может быть предварительно созданной программой на PL/SQL или Java, анонимным блоком PL/SQL или исполняемым модулем, запускаемым в командной строке операционной системы.

Расписание задания может быть предопределенным (созданным процедурой DBMS_SCHDULER. CREATE__SCHEDULE) или же ОНО может быть описано непосредственно как часть создаваемого задания. В расписании указываются атрибуты, определяющие, когда выполняется задание, например:

Время начала и окончания задания, задающие момент начала использования задания и момент, после которого задание больше не пригодно для использования и нельзя запланировать его выполнение.
Выражение, определяющее интервал повторения задания .
Сложное расписание, созданное путем объединения существующих расписаний.
Условие или изменение состояния, называемое событием, которое должно возникнуть перед запуском задания.

Существует много атрибутов, которые вы можете задать для задания. Атрибуты управляют тем, как выполняется задание.

Чтобы выполнить задание в Enterprise Manager выберите Administration > Jobs.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #9  
Старый 13.10.2009, 07:31
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию 4. Мониторинг задания



4. Мониторинг задания

Представление DBA_SCHEDULER_JOB_RUN_DETAILS выводит одну строку для каждого экземпляра задания. Каждая строка содержит информацию о выполнении одного экземпляра задания.

В представлении [DBA | ALL] _SCHEDULER_JOB_RUN_DETAILS содержатся следующие столбцы:

LOG_ID; уникальный идентификатор журнального входа (записи);
LOG_DATE; временная метка журнального входа;
OWNER; владелец задания;
JOB_NAME; имя задания;
STATUS; статус выполнения задания;
ERROR#; первоначальное количество ошибок;
REQ_START_DATE; время, на которое был запланирован запуск задания;
ACTUAL_START_DATE; время, когда на самом деле было запущено задание;
RUN_DURATION; продолжительность выполнения задания;
INSTANCE_ID; экземпляр, в котором выполняется задание;
SESSION_ID; сеанс, в котором выполняется задание;
SLAVE_PID; идентификатор (PID) подчиненного процесса, используемого при выполнении задания;
CPU_USED; объем использование ЦП при выполнении задания;
ADDITIONAL_INFO; дополнительная информация о выполнении задания.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
  #10  
Старый 13.10.2009, 07:32
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,385
По умолчанию Использовании расписания, основанного на времени или событиях



Использовании расписания, основанного на времени или событиях

При определении задания, расписание выполнения которого основывается на времени (time-based), можно задать либо календарное выражение, либо выражение с датой и временем

Когда используются календарные выражения, время следующего запуска задания подсчитывается на основе интервала повторения и даты старта (start date) задания.

Когда используются выражения с датами и временем, задаваемое выражение определяет следующий момент времени, в который должно быть запущено задание.

Если интервал повторения не указывается, задание выполняется только один раз во время, указанное в дате старта.

Если в задании используется расписание, основанное на событиях (event-based schedule), задание выполняется при срабатывании события. На высоком уровне событие может быть представлено как изменение состояния. Событие происходит, когда логическое условие меняет свое состояние с FALSE на TRUE или с TRUE на FALSE.

Планировщик (Scheduler) использует Oracle Streams Advanced Queuing (AQ) для возбуждения и удаления событий.

Примечание: планировщик не гарантирует выполнение задания в точное время, так как система может быть перегружена, в результате чего могут быть недоступны ресурсы.
__________________
Чат форума (требуется аккаунт на github или twitter)
Ответить с цитированием
Ответ
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 06:54. Часовой пояс GMT +3.


Powered by vBulletin®