Presentation is loading. Please wait.

Presentation is loading. Please wait.

14 Copyright © 2006, Oracle. All rights reserved. Automating Tasks with the Scheduler.

Similar presentations


Presentation on theme: "14 Copyright © 2006, Oracle. All rights reserved. Automating Tasks with the Scheduler."— Presentation transcript:

1 14 Copyright © 2006, Oracle. All rights reserved. Automating Tasks with the Scheduler

2 14-2 Copyright © 2006, Oracle. All rights reserved. Objectives After completing this lesson, you should be able to: Simplify management tasks by using the Scheduler Create a job, program, and schedule Monitor job execution Use a time-based or event-based schedule for executing Scheduler jobs Use job chains to perform a series of related tasks Use advanced Scheduler concepts to prioritize jobs Key Comp. & Steps Schedules Job Chains Adv.Concepts

3 14-3 Copyright © 2006, Oracle. All rights reserved. Simplifying Management Tasks Performing a series of month-end tasks on the last day of each month Replicating table data via materialized view refreshes Computing table and index statistics twice a day Generating an hourly report on invalid server access attempts Running a daily job to back up database Starting the batch load as soon as the file arrives on the file system Running a dequeue procedure as soon as a message is enqueued Rebuilding an index when finished rebuilding the current index

4 14-4 Copyright © 2006, Oracle. All rights reserved. A Simple Job WHAT WHEN

5 14-5 Copyright © 2006, Oracle. All rights reserved. Key Components and Steps To simplify management tasks with the Scheduler, perform the following steps: 1.Create a program. 2.Create and use a schedule. 3.Create and submit a job. 4.Monitor a job. Arguments Job Program Job attributes Schedule

6 14-6 Copyright © 2006, Oracle. All rights reserved. 1.Creating a Program BEGIN DBMS_SCHEDULER.CREATE_PROGRAM( program_name => 'CALC_STATS2', program_action => 'HR.UPDATE_HR_SCHEMA_STATS', program_type => 'STORED_PROCEDURE', enabled => TRUE); END; /

7 14-7 Copyright © 2006, Oracle. All rights reserved. 2.Creating and Using Schedules BEGIN DBMS_SCHEDULER.CREATE_SCHEDULE( schedule_name => 'stats_schedule', start_date => SYSTIMESTAMP, end_date => SYSTIMESTAMP + 30, repeat_interval => 'FREQ=HOURLY;INTERVAL=1', comments => 'Every hour'); END; /

8 14-8 Copyright © 2006, Oracle. All rights reserved. 3. Creating and Running a Job

9 14-9 Copyright © 2006, Oracle. All rights reserved. 4.Monitoring a Job SELECT job_name, status, error#, run_duration FROM USER_SCHEDULER_JOB_RUN_DETAILS; JOB_NAME STATUS ERROR# RUN_DURATION ---------------- ------ ------ ------------ GATHER_STATS_JOB SUCCESS 0 +000 00:08:20 PART_EXCHANGE_JOB FAILURE 6576 +000 00:00:00

10 14-10 Copyright © 2006, Oracle. All rights reserved. Using a Time-Based or Event-Based Schedule Schedule EventTime Key Comp. & Steps >Schedules Job Chains Adv.Concepts

11 14-11 Copyright © 2006, Oracle. All rights reserved. Creating a Time-Based Job Example: Create a job that calls a backup script every night at 11:00, starting tonight. BEGIN DBMS_SCHEDULER.CREATE_JOB( job_name=>'HR.DO_BACKUP', job_type => 'EXECUTABLE', job_action => '/home/usr/dba/rman/nightly_incr.sh', start_date=> SYSDATE, repeat_interval=>'FREQ=DAILY;BYHOUR=23', /* next night at 11:00 PM */ comments => 'Nightly incremental backups'); END; /

12 14-12 Copyright © 2006, Oracle. All rights reserved. Creating a Time-Based Job Full Notes Page

13 14-13 Copyright © 2006, Oracle. All rights reserved. Creating an Event-Based Schedule To create an event-based job, you must set: A queue specification (where your application enqueues messages to start a job) An event condition (same syntax as an Oracle Streams AQ rule condition) that if TRUE starts the job Oracle Database 10g Scheduler Event ADT (Abstract Data Type) Queue Application

14 14-14 Copyright © 2006, Oracle. All rights reserved. Creating Event-Based Schedules with Enterprise Manager

15 14-15 Copyright © 2006, Oracle. All rights reserved. Creating an Event-Based Job Example: Create a job that runs if a batch load data file arrives on the file system before 9:00 a.m. BEGIN DBMS_SCHEDULER.CREATE_JOB( job_name=>'ADMIN.PERFORM_DATA_LOAD', job_type => 'EXECUTABLE', job_action => '/home/usr/dba/rman/report_failure.sh', start_date => SYSTIMESTAMP, event_condition => 'tab.user_data.object_owner = ''HR'' and tab.user_data.object_name = ''DATA.TXT'' and tab.user_data.event_type = ''FILE_ARRIVAL'' and tab.user_data.event_timestamp < 9 ', queue_spec => 'HR.LOAD_JOB_EVENT_Q'); END; event_condition => 'tab.user_data.object_owner = ''HR'' and tab.user_data.object_name = ''DATA.TXT'' and tab.user_data.event_type = ''FILE_ARRIVAL'' and tab.user_data.event_timestamp < 9 ', queue_spec => 'HR.LOAD_JOB_EVENT_Q');

16 14-16 Copyright © 2006, Oracle. All rights reserved. Event-Based Scheduling Event types: User- or application-generated events Scheduler-generated events Events raised by Scheduler jobs: JOB_START JOB_SCH_LIM_REACHED JOB_SUCCEEDED JOB_DISABLED JOB_FAILED JOB_CHAIN_STALLED JOB_BROKEN JOB_ALL_EVENTS JOB_COMPLETED JOB_RUN_COMPLETED JOB_STOPPED Example of raising an event: DBMS_SCHEDULER.SET_ATTRIBUTE('hr.do_backup', 'raise_events', DBMS_SCHEDULER.JOB_FAILED);

17 14-17 Copyright © 2006, Oracle. All rights reserved. Events Raised by the Scheduler Full Notes Page

18 14-18 Copyright © 2006, Oracle. All rights reserved. Creating Complex Schedules INCLUDEEXCLUDEINTERSECT

19 14-19 Copyright © 2006, Oracle. All rights reserved. Creating Job Chains 1.Create a chain object. 2.Define chain steps. 3.Define chain rules. 4.Starting the chain: –Enable the chain. –Create a job that points to the chain. Job Job chain Key Comp. & Steps Schedules >Job Chains Adv.Concepts

20 14-20 Copyright © 2006, Oracle. All rights reserved. Creating Chains Full Notes Page

21 14-21 Copyright © 2006, Oracle. All rights reserved. Example of a Chain BULK_LOAD_CHAIN Do_bulk_load Job Load_data_evt END Rebuild_indx Schedule Stop_when_ disk_full_evt Run_reports ( HR.GEN_REPORTS ) START 12 53 4 Dependency Scheduling

22 14-22 Copyright © 2006, Oracle. All rights reserved. 1.Creating a Chain Object Create_job_chain_1.jpg 1234512345

23 14-23 Copyright © 2006, Oracle. All rights reserved. 2.Defining Chain Steps DBMS_SCHEDULER.DEFINE_CHAIN_EVENT_STEP ( chain_name => 'bulk_load_chain', step_name => 'load_data_evt', event_condition => 'tab.user_data.object_owner = ''HR'' and tab.user_data.object_name = ''DATA.TXT'' and tab.user_data.event_type = ''FILE_ARRIVAL'' ', queue_spec => 'HR.LOAD_JOB_EVENT_Q'); DBMS_SCHEDULER.DEFINE_CHAIN_STEP ( chain_name => 'bulk_load_chain', step_name => 'do_bulk_load', program_name => 'hr.load_data_prog); DBMS_SCHEDULER.DEFINE_CHAIN_STEP ( chain_name => 'bulk_load_chain', step_name => 'rebuild_indx', program_name => 'hr.rebuild_indexes'); 1 2 3

24 14-24 Copyright © 2006, Oracle. All rights reserved. 3.Defining Chain Rules Create_job_chain_2.jpg

25 14-25 Copyright © 2006, Oracle. All rights reserved. 4.Starting the Chain BEGIN DBMS_SCHEDULER.ENABLE ('bulk_load_chain'); END; / BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'bulk_load_chain_job', job_type => 'CHAIN', job_action => 'bulk_load_chain', repeat_interval => 'freq=daily;byhour=7; byminute=5;bysecond=0', enabled => TRUE); END; /

26 14-26 Copyright © 2006, Oracle. All rights reserved. Monitoring Job Chains [DBA | ALL | USER]_SCHEDULER_CHAINS [DBA | ALL | USER]_SCHEDULER_CHAIN_RULES [DBA | ALL | USER]_SCHEDULER_CHAIN_STEPS [DBA | ALL | USER]_SCHEDULER_RUNNING_CHAINS

27 14-27 Copyright © 2006, Oracle. All rights reserved. Advanced Scheduler Concepts JobProgram Arguments Schedule EventTime Job class Window Job chain Key Comp. & Steps Schedules Job Chains >Adv.Concepts Resource consumer group Window group Resource plan

28 14-28 Copyright © 2006, Oracle. All rights reserved. Creating a Job Class EXECUTE DBMS_SCHEDULER.CREATE_JOB_CLASS( - job_class_name => 'ADMIN_JOBS', - resource_consumer_group => 'DAYTIME_JOBS', - logging_level => DBMS_SCHEDULER.LOGGING_OFF);

29 14-29 Copyright © 2006, Oracle. All rights reserved. Creating a Window Create a window for the month of December that uses the END_OF_YEAR resource plan and is active every night from 6:00 p.m. to 6:00 a.m. Eastern Standard Time (EST). BEGIN DBMS_SCHEDULER.CREATE_WINDOW( window_name => 'DEC_NIGHTS', resource_plan => 'END_OF_YEAR', start_date => '01-DEC-03 06.00.00 PM EST', repeat_interval => 'FREQ=DAILY; BYHOUR=18', duration => '0 12:00:00', end_date => '31-DEC-03 06.00.00 AM EST', comments => 'Every day at 6:00 PM'); END; /

30 14-30 Copyright © 2006, Oracle. All rights reserved. Prioritizing Jobs Within a Window Daytime window APPL_JOBS Job1Job2 ADMIN_JOBS Job4Job5 OTHER Job3 2Job5 5Job4 3Job3 2Job2 1Job1 PriorityJob

31 14-31 Copyright © 2006, Oracle. All rights reserved. Summary In this lesson, you should have learned how to: Simplify management tasks by using the Scheduler Create a job, program, and schedule Monitor job execution Use a time-based or event-based schedule for executing Scheduler jobs Use job chains to perform a series of related tasks Use advanced Scheduler concepts to prioritize jobs

32 14-32 Copyright © 2006, Oracle. All rights reserved. Practice Overview: Automating Tasks with the Scheduler This practice covers the following topics: Creating a job that runs a program outside the database Creating a program and a schedule Creating a job that uses a program and a schedule Altering the program and schedule for the job and observing the behavior change of the job Monitoring job runs


Download ppt "14 Copyright © 2006, Oracle. All rights reserved. Automating Tasks with the Scheduler."

Similar presentations


Ads by Google