继续上文关于dbms_scheduler package的学习
上文
http://space.itpub.net/9240380/viewspace-753712简要测试了create_job,drop_job,enable procedure的用法;
以及user_sheduler_jobs,user_scheduler_job_args和user_scheduler_scheduler字典一点信息;
以及user_sheduler_jobs,user_scheduler_job_args和user_scheduler_scheduler字典一点信息;
俗话说:无理不清,故处理一事前,明确理解其概念是相当重要的.
正入进题:
dbms_scheduler package的概念目录:
1,它的用途是什么
2,它包括一些什么组件或者部件,基本可分为如下几块:
a,programs
b,schedules
c,jobs
这个jobs又产生一个job instances
d,events
e,chains
3,上述各个组件之间的内在联系是什么,它是整合在一起才可以工作哟
4,其他更为高级的一些概念
a,job classes
b,windows
c,window groups
隶属于windows
5,scheduler 体系架构,即dbms_scheduler package如何可以运行起来
a,job table
b,job coordinator
c,job如何运行
d,job slaves
e,在rac下使用scheduler一些相关内容
dbms_scheduler package的概念目录:
1,它的用途是什么
2,它包括一些什么组件或者部件,基本可分为如下几块:
a,programs
b,schedules
c,jobs
这个jobs又产生一个job instances
d,events
e,chains
3,上述各个组件之间的内在联系是什么,它是整合在一起才可以工作哟
4,其他更为高级的一些概念
a,job classes
b,windows
c,window groups
隶属于windows
5,scheduler 体系架构,即dbms_scheduler package如何可以运行起来
a,job table
b,job coordinator
c,job如何运行
d,job slaves
e,在rac下使用scheduler一些相关内容
1,它的用途是什么
a,基于事件或时间执行job
即发生某些事件时执行一些job,比如要在晚间打patch或进行etl或者备份数据库
b,用模拟业务需求的方式来调度job
即更接近于业务环境资源来调度执行job,用如下几方式实现
1,对共同特征的job分为job class,看,这个job class即是上述的job class,在dbms_scheduler也有对应的包
2,创建了job class,进而为其分配不同的优先级和资源,从而控制在可控制的范围,保证高优先级的任务先执行
和windows,也是上述的概念之一
3,也可以基于某些event创建job,调度其执行,比如:自银行某账户超额取款,一旦发生此事件,启用某个job,达到
应有的目标,这里的event也是上述的概念之一
c,dbms_scheduler同时也提供管理及监控job的一些视图,从而更新服务于业务和管理人员
d,在rac环境,基于services也可创建job,注:services是rac概念
2,它包括一些什么组件或者部件,基本可分为如下几块:
a,programs,包含如下几块的内容:
1,调度器运行所需的一些元信息的集合体,主要涉及:program名称,program 动作,这个动作即
oracle存储过程或者某个外部执行文件;program类型,如pl/sql或java存储过程还是plsql匿名块
以及这些program运行必需的参数(注:此参数在dbms_scheduler也有对应过程)
2,这个programs与job是两个独立的对象;这个独立有几层意思:
a,不同的用户可以同时执行一个programs,前提你要有执行的权限
b,多个job可以执行同一个programs,即一个programs可以多job间共享
c,多个执行同一个programs的job,可以用其同一个要执行的programs设置参数的不同值,
即虽然大家执行同一个代码,但传入参数值是不同的,最终结果也不同
b,schedules,具有如下几方面的内容:
1,指定一个job何时或执行多少次
2,指定发生什么event时,执行一个job
3,也可在多个用户之间共享使用
c,jobs,可以调度运行一或多次的用户自定义任务;它是执行什么动作及何时执行的混合体.具有权限的用户可以:
1,为执行什么动作指定job attributes(atrributes也是上述概念之一)
为何时执行指定job atrributes
2,为已存在的programs和schedule指定job atrributes
d,job arguments(上述目录无此,它与jobs关联)
1,通过它定制指定的program
2,它会覆盖program的参数默认值
3,它会为program无默认值的参数提供值
4,切记,job必须要为其指定job arguments才可以运行或enable(注:是有job argument的job or program)
5,小例:比如在晚上要出一个不同部门的报表,出报表的脚本是program,而job由不同部门创建;
运行时为不同的program传入不同的job argument,进而得到不同部门的报表,仅仅是部门号不同而已
e,job instance
1,代表某个job的运行,即每次运行job才会产生它
2,如果一个job多次运行,会对应产生多个job instance
3,创建一个job,会添加一条job记录到job表中,而运行一次job,会插入一条记录到job log表中,运行多次,
则插入多次;
f,events,它是由一个应用或系统进程或程序相互通讯或交互发生的消息,表明发生了一些事情或事件;
event由一个应用或进程产生,而由一或多个应用或进程接收;
有2类events:
1,由调度器产生的
即调度器本身产生的,表明其状态变更的事件,即一个job开始,结束,一个job在规定的时间内未启动或停止;
由此引生一个事件,由相应的应用接收,进而针对性处理;
2,由应用产生的
由调度器接受,调度器开启一个job响应此事件;也可以创建一个包括事件的调度器,而非包括日期,时间及反复多次信息;
如果一个job指配给这样的调度器时,当事件引发时,则会运行一个job;
例如:仓库系统发现某个指标低于某个值,这是一个事件,则运行对应的job(事件由应用产生,但由调度器接受并触发相应的job)
这种调度器使用oracle streams advanced queuing来产生和接受事件;(oracle streams advanced quening可参考文档:
Oracle Streams Advanced Queuing User's Guide and Reference
)
g,chains,它是一组programs构成混合体,对外呈现为一个逻辑对象;
1,它类似于决策树一样的功能,分开多个step.比如:如果step1和step2运行成功,则运行step3,否则运行step4;
2,它应用于完整性的事务中,因为事务是由多个处理单元组成,而且这些处理单元之间有逻辑关系
3,step可以指向:
a,program
b,另一个chain,即nested chain
c,event
d,指向一个event的step(且要这个指向的step运行完毕)
即要这个event运行成功,step才算成功运行
3,上述各个组件之间的内在联系是什么,它是整合在一起才可以工作哟
p1 p2 p3
^ ^
| /
| /
| /
| /
| /
| /
| /
j1 j2 j3
\ /
\ /
\ /
\ /
\ /
s1
小结:
1,上述的p,j,s各代表program,job,scheduler
2,一个job可以执行多个program
多个job也可以执行一个program
一个scheduler可以执行多个不同的job
多个scheduler也可以执行相同的job
3,p和s也可以单独定义,不与j关联;
a,基于事件或时间执行job
即发生某些事件时执行一些job,比如要在晚间打patch或进行etl或者备份数据库
b,用模拟业务需求的方式来调度job
即更接近于业务环境资源来调度执行job,用如下几方式实现
1,对共同特征的job分为job class,看,这个job class即是上述的job class,在dbms_scheduler也有对应的包
2,创建了job class,进而为其分配不同的优先级和资源,从而控制在可控制的范围,保证高优先级的任务先执行
和windows,也是上述的概念之一
3,也可以基于某些event创建job,调度其执行,比如:自银行某账户超额取款,一旦发生此事件,启用某个job,达到
应有的目标,这里的event也是上述的概念之一
c,dbms_scheduler同时也提供管理及监控job的一些视图,从而更新服务于业务和管理人员
d,在rac环境,基于services也可创建job,注:services是rac概念
2,它包括一些什么组件或者部件,基本可分为如下几块:
a,programs,包含如下几块的内容:
1,调度器运行所需的一些元信息的集合体,主要涉及:program名称,program 动作,这个动作即
oracle存储过程或者某个外部执行文件;program类型,如pl/sql或java存储过程还是plsql匿名块
以及这些program运行必需的参数(注:此参数在dbms_scheduler也有对应过程)
2,这个programs与job是两个独立的对象;这个独立有几层意思:
a,不同的用户可以同时执行一个programs,前提你要有执行的权限
b,多个job可以执行同一个programs,即一个programs可以多job间共享
c,多个执行同一个programs的job,可以用其同一个要执行的programs设置参数的不同值,
即虽然大家执行同一个代码,但传入参数值是不同的,最终结果也不同
b,schedules,具有如下几方面的内容:
1,指定一个job何时或执行多少次
2,指定发生什么event时,执行一个job
3,也可在多个用户之间共享使用
c,jobs,可以调度运行一或多次的用户自定义任务;它是执行什么动作及何时执行的混合体.具有权限的用户可以:
1,为执行什么动作指定job attributes(atrributes也是上述概念之一)
为何时执行指定job atrributes
2,为已存在的programs和schedule指定job atrributes
d,job arguments(上述目录无此,它与jobs关联)
1,通过它定制指定的program
2,它会覆盖program的参数默认值
3,它会为program无默认值的参数提供值
4,切记,job必须要为其指定job arguments才可以运行或enable(注:是有job argument的job or program)
5,小例:比如在晚上要出一个不同部门的报表,出报表的脚本是program,而job由不同部门创建;
运行时为不同的program传入不同的job argument,进而得到不同部门的报表,仅仅是部门号不同而已
e,job instance
1,代表某个job的运行,即每次运行job才会产生它
2,如果一个job多次运行,会对应产生多个job instance
3,创建一个job,会添加一条job记录到job表中,而运行一次job,会插入一条记录到job log表中,运行多次,
则插入多次;
f,events,它是由一个应用或系统进程或程序相互通讯或交互发生的消息,表明发生了一些事情或事件;
event由一个应用或进程产生,而由一或多个应用或进程接收;
有2类events:
1,由调度器产生的
即调度器本身产生的,表明其状态变更的事件,即一个job开始,结束,一个job在规定的时间内未启动或停止;
由此引生一个事件,由相应的应用接收,进而针对性处理;
2,由应用产生的
由调度器接受,调度器开启一个job响应此事件;也可以创建一个包括事件的调度器,而非包括日期,时间及反复多次信息;
如果一个job指配给这样的调度器时,当事件引发时,则会运行一个job;
例如:仓库系统发现某个指标低于某个值,这是一个事件,则运行对应的job(事件由应用产生,但由调度器接受并触发相应的job)
这种调度器使用oracle streams advanced queuing来产生和接受事件;(oracle streams advanced quening可参考文档:
Oracle Streams Advanced Queuing User's Guide and Reference
)
g,chains,它是一组programs构成混合体,对外呈现为一个逻辑对象;
1,它类似于决策树一样的功能,分开多个step.比如:如果step1和step2运行成功,则运行step3,否则运行step4;
2,它应用于完整性的事务中,因为事务是由多个处理单元组成,而且这些处理单元之间有逻辑关系
3,step可以指向:
a,program
b,另一个chain,即nested chain
c,event
d,指向一个event的step(且要这个指向的step运行完毕)
即要这个event运行成功,step才算成功运行
3,上述各个组件之间的内在联系是什么,它是整合在一起才可以工作哟
p1 p2 p3
^ ^
| /
| /
| /
| /
| /
| /
| /
j1 j2 j3
\ /
\ /
\ /
\ /
\ /
s1
小结:
1,上述的p,j,s各代表program,job,scheduler
2,一个job可以执行多个program
多个job也可以执行一个program
一个scheduler可以执行多个不同的job
多个scheduler也可以执行相同的job
3,p和s也可以单独定义,不与j关联;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-753771/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9240380/viewspace-753771/