oracle11管理画面,Oracle11g亮瞎眼睛的任务管理

在使用Oracle9i时,觉得oracle的任务调度好弱啊。最近浏览下oracle11g,由衷感到oracle在易用性上有了极大的提升,不但在内存管理、存储管理、SQL调优等方面变得十分简单,对任务管理也提供了统一、完整的解决方案。下面对任务管理做个概览:

Oracle11g的任务管理使用dbms_scheduler包。

1.基本的Scheduler概念

192477_0.jpg

喎�"/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PHN0cm9uZz4gQSBqb2I8L3N0cm9uZz4gc3BlY2lmaWVzIHdoYXQgbmVlZHMgdG8gZXhlY3V0ZWQgYW5kIHdoZW4uIEZvciBleGFtcGxlLCB0aGUgobB3aGF0obEgY291bGQgYmUgYSBQTC9TUUwgcHJvY2VkdXJlLCBhbiBhdGl2ZSBiaW5hcnkgZXhlY3V0YWJsZSwgYSBKYXZhIGFwcGxpY2F0aW9uLCBvciBhIHNoZWxsIHNjcmlwdC4gWW91IGNhbiBzcGVjaWZ5IHRoZSBwcm9ncmFtICh3aGF0KSBhbmQgdGhlIHNjaGVkdWxlICh3aGVuKSBhcyBhIHN0YW5kLWFsb25lCiBqb2IuPC9wPgo8cD7L+c69tcRzdGFuZGFsb25lIGpvYsrH1ri9q3Byb2dyYW26zXNjaGVkdWxl1rG907fF1Npqb2LW0KOs0rK+zbrNb3JhY2xlOWnW0LXEam9i0rvR+cHLo6zA/cjno7o8L3A+CjxwPjwvcD4KPHA+QkVHSU48L3A+CjxwPkRCTVNfU0NIRURVTEVSLkNSRUFURV9KT0IoPC9wPgo8cD5qb2JfbmFtZT0mZ3Q7"HR.DO_BACKUP',

job_type =>'EXECUTABLE',

job_action=>'/home/usr/dba/rman/nightly_incr.sh',

start_date =>TRUNC(SYSDATE)+23/24,

enabled =>TRUE,

repeat_interval=> 'TRUNC(SYSDATE+1)+23/24',

/*next night at 11:00 PM */

comments=> 'Nightly incremental backups');

END;

create_job重载函数,可以直接使用program(突然看到了这种面向对象的重载,感觉又回到了写程序的美好年代):

BEGIN

DBMS_SCHEDULER.CREATE_PROGRAM(

program_name=> 'CALC_STATS2',

program_action=> 'HR.UPDATE_SCHEMA_STATS',

program_type=> 'STORED_PROCEDURE',

enabled=> TRUE);

DBMS_SCHEDULER.CREATE_JOB(

job_name=>'HR.GET_STATS2',

program_name=>'HR.CALC_STATS2',

start_date=>'20-DEC-0707.00.00 AM Greenwich',

repeat_interval=>'FREQ=HOURLY;INTERVAL=2',

end_date=> '20-DEC-04 07.00.00 AM Greenwich',

comments=> 'Explicitly scheduled job');

END;

/

create_job重载函数,也可以直接使用schedule:

BEGIN

DBMS_SCHEDULER.CREATE_SCHEDULE(

schedule_name=> 'stats_schedule',

start_date =>SYSTIMESTAMP,

end_date=>SYSTIMESTAMP + INTERVAL ’30’ DAY,

repeat_interval=> 'FREQ=HOURLY;INTERVAL=4',

comments =>'Every 4 hours');

DBMS_SCHEDULER.CREATE_JOB(

job_name=> 'ADMIN.GET_STATS',

program_name=> 'ADMIN.CALC_STATS2',

schedule_name=> 'STATS_SCHEDULE');

END;

2.高级的Scheduler概念

基本的scheduler概念大部分情况下已经够用,也就是说,即使我们不知道这些高级特性,oracle会赋予一些默认值供使用。高级的schedule加入了时间窗口与任务调度的概念:

192477_1.jpg

Job classes被用来分类jobs。每个job属于一个job class.这个job class会map到一个resource consumer group.活动的active resource plan 确定可以分配给每个resource consumer group的资源,继而分配到每个job class和job上。resource consumer group和resource plan是为了协调各种资源(如cpu资源),不过他是在资源用到100%时才会启用(Note:

The Management resource directives are noteffective until the machine is at 100% utilization. The Database ResourceManager controls processes only in a single instance.),可是如果真的用到100%,就不是资源调度的问题了,所以俺暂时还不确定这个资源分配是否有实际用途。

Window还是很有意思的,即时间窗口,比如可以定义一个时间段为维护时间段,可以将一批job关联到这个window上。还可以将多个windows定义为windows group,比如将NIGHT window 和WEEKEND window 组合成MAINTENANCE window group. 一个job可以被指定给MAINTENANCE window, 那么他就会在NIGHT 或者WEEKEND windows被打开时执行。

一个job可以用schedule, window 或者a window group 作为schedule, 不过他们是互斥的,只能用其中一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值