种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

dbms_scheduler

(2019-10-24 17:21:10) 百科综合

dbms_scheduler

Oracle 10g引入dbms_scheduler来替代先前的dbms_job,在功能方面,它比dbms_job提供了更强大的功能和更灵活的机制/管理。
首先简单讲一下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 => systimestamp at time zone 'PRC',
comments => '---this is my test schedule---',
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=>'update mytest set id=id+1;',
program_type=>'PLSQL_BLOCK',
number_of_arguments=>0,
comments=>'',
enabled=>TRUE);
END;
4.链(chain):
链可以看作是一个/几个program/event scheduler的集合,为了维护需要,我们可能需要将很多不同的program放到一起依次执行,按照以前的模式,要幺将这几个program能整合成一个大的整体,要幺分开几个job来单独执行,这无疑加重了维护负担,而chain的出现,可以最佳化这个问题,我们将实现定义好的program集合到一起,然后统一制定一个job来执行,可以使用dbms_scheduler.create_chain来创建一个chain.

标 签

搜索
随机推荐

Powered By 种豆资源网||