WEB开发网
开发学院数据库Oracle Oracle调度程序作业dbms_scheduler 阅读

Oracle调度程序作业dbms_scheduler

 2008-10-13 12:56:24 来源:WEB开发网   
核心提示:整理scheduler这一部分,源于最近发现系统上自动采集统计信息的执行时间有些异常,执行时间被定义到了上午(这并不是一个很合理可靠的时间).在重新修改配置的同时,也顺便整理了这一块内容. 首先简单讲一下oracle 10g scheduler,10g引入dbms_scheduler来替代先前的dbms_job,在功能

整理scheduler这一部分,源于最近发现系统上自动采集统计信息的执行时间有些异常,执行时间被定义到了上午(这并不是一个很合理可靠的时间).在重新修改配置的同时,也顺便整理了这一块内容.

首先简单讲一下oracle 10g scheduler,10g引入dbms_scheduler来替代先前的dbms_job,在功能方面,它比dbms_job提供了更强大的功能和更灵活的机制/管理.它主要由以下几大块构成:

1.作业(job):

一个调度程序作业的实体.可以由dbms_scheduler.create_job创建生成.它可以自行指定作业属性,也可以调用我们预先创建的一系列scheduler/ program/ chain/ job_class/ window/ window_group来匹配其作业属性.

2.调度(scheduler):

一个任务计划执行的时间策略.比如我们想要创建一个晚上3点执行的任务计划,就可以创建一个调度,凡是符合这个调度要求的,都可以调用这个我们预先创建好的调度.可以用dbms_scheduler.create_schedule来创建一个调度.

比如我创建一个名字叫MYTEST_SCHEDULE的调度,每天4:00执行.

  Begin
  dbms_scheduler.create_schedule(
  repeat_interval=>'FREQ=DAILY;BYHOUR=4;BYMINUTE=0;BYSECOND=0',
  start_date=>systimestampattimezone'PRC',
  comments=>'---thisismytestschedule---',
  schedule_name=>'MYTEST_SCHEDULE');
  end;

3.程序(program):

10g下的program支持分为3种形式,PL/SQL BLOCK/STORED PROCEDURE/EXECUTABLE.可以使用DBMS_SCHEDULER.CREATE_PROGRAM来创建一个program.

  BEGIN
  DBMS_SCHEDULER.CREATE_PROGRAM(
  program_name=>'mytest_program_1',
  program_action=>'updatemytestsetid=id+1;',
  program_type=>'PLSQL_BLOCK',
  number_of_arguments=>0,
  comments=>'',
  enabled=>TRUE);
  END;

1 2 3 4 5  下一页

Tags:Oracle 调度 程序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接