【Oracle】基于SCHEDULER的job的详解
来源:互联网 发布:淘宝女装长袖短装 编辑:程序博客网 时间:2024/05/19 21:41
昨天讲了关于scheduler的参数的设置详解,今天来看一下对于急于scheduler的job的设置的详解,首先还是来看一下基本的创建脚本:
sys.dbms_scheduler.create_job(
job_name => '"SYS"."REBUILD_JOB1"',
program_name => '"SYS"."EMP_IND_REBUILD"',
schedule_name => '"SYS"."DAILYREBUILD"',
job_class => '"DEFAULT_JOB_CLASS"',
comments => 'rebuild',
Auto_drop => TRUE,
enabled => TURE);
job_name:job的所属用户及job的名字
program_name:这个job调用的program的名字
schedule_name:这个job使用的scheduler的名字
job_class:这个job所在的job class的名字
注:Job Class 相当于创建了一个job 组,DBA 可以将那些具有相同特性的job,统统放到相同的Job Classes中,然后通过对Job Class 应用ORACLE 中的"资源使用计划"特性,就可以对这些job 执行过程中所需要的资源分配情况进行管理。
comments:对于这个job的描述
auto_drop:是否在job为completed之后自动drop掉
enabled:是否生效
还有一些参数在job创建的时候并不能进行设置,下面进行说明:
raise_events:job会触发的一些event,默认是不会触发event的,不过可以在job创建后进行修改。
l job_started :JOB启动;
l job_succeeded :JOB成功结束;
l job_failed :JOB执行失败;
l job_broken :JOB被置为BROKEN状态;
l job_completed :JOB达到最大运行次数,或者运行的结束日期;
l job_stopped :JOB被STOP_JOB过程置为停止执行的状态;
l job_sch_lim_reached :Job的schedule达到限定值;
l job_disabled :JOB被置于DISABLE状态;
l job_chain_stalled :运行于chain的JOB被置于CHAIN_STALLED状态;
l job_all_events :含上述提到的所有类型;
l job_run_completed :由于Job运行出错、成功结束或被手动停止。
其修改的方式如下所示:
sys.dbms_scheduler.set_attribute( name => '"SYS"."REBUILD_JOB1"', attribute => 'raise_events', value => dbms_scheduler.job_started + dbms_scheduler.job_succeeded + dbms_scheduler.job_failed + dbms_scheduler.job_broken + dbms_scheduler.job_completed + dbms_scheduler.job_stopped + dbms_scheduler.job_sch_lim_reached + dbms_scheduler.job_disabled + dbms_scheduler.job_chain_stalled);
restartable:在job执行失败的时候是否进行自动重新执行。
sys.dbms_scheduler.set_attribute( name => '"SYS"."REBUILD_JOB1"', attribute => 'restartable', value => TRUE);
schedule_limit:允许job的最大延迟时间,如果系统的负载很重,在到了schedule设置的运行时间时无法取得相应的资源去执行job,这时候如果schedule的设置为null的时候,job会在取得资源之后再执行,无论等多长时间都会等待执行。而如果设置了schedule_limit设置之后如果超过设置值则job这次执行会跳过。此次执行不会定义为执行失败,在job log中会有反应。其取值范围由1分钟到99天
sys.dbms_scheduler.set_attribute( name => '"SYS"."REBUILD_JOB1"', attribute => 'schedule_limit', value => numtodsinterval(20, 'minute'));
max_run_duration:设置job运行的有效时间,如果设置了某个值,则在到达该值时调度会报JOB_OVER_MAX_DUR事件,然后由事件处理器决定是否要继续。
sys.dbms_scheduler.set_attribute( name => '"SYS"."REBUILD_JOB1"', attribute => 'max_run_duration', value => numtodsinterval(10, 'minute'));
max_runs:job执行的最大次数,范围1到1000000,默认为空(即意味着job会重复执行,或者到达job执行的end_date,或者达到指定失败的次数)。一旦达到设置的最大值,job将会disable并且状态变更为COMPLETED。
sys.dbms_scheduler.set_attribute( name => '"SYS"."REBUILD_JOB1"', attribute => 'max_runs', value => 10);
instance_stickiness:只用于rac数据库。默认为true,设置为true,则job会运行在负载最轻的节点上;如果某节点关闭或负载太重,则不会启动新job,而是有另一个节点来执行该job。
job_priority:在同一个class,job执行的优先级,默认为3。范围从1到5。
sys.dbms_scheduler.set_attribute( name => '"SYS"."REBUILD_JOB1"', attribute => 'job_priority', value => 2);
max_failures:允许job失败的次数,范围1到1000000,默认为空。
sys.dbms_scheduler.set_attribute( name => '"SYS"."REBUILD_JOB1"', attribute => 'max_failures', value => 5);
job_weight:如果使用了并行执行技术,这个参数可以设置job中执行sql的并行度。
sys.dbms_scheduler.set_attribute( name => '"SYS"."REBUILD_JOB1"', attribute => 'job_weight', value => 5);
- 【Oracle】基于SCHEDULER的job的详解
- Oracle/Scheduler和Job的基本概念
- Oracle job & scheduler job
- oracle的Job详解
- 关于oracle Scheduler的介绍——job
- scheduler与job的异同
- Scheduler和Job的基本概念
- oracle Scheduler调用job
- [Oracle] Scheduler和Job
- oracle 创建scheduler,job
- Oracle中JOB的使用详解及多线程JOB调用
- Oracle中job的使用详解
- Oracle job的使用与管理详解
- Oracle中job的使用详解.txt
- Oracle中job的使用详解!
- Oracle中job的使用详解
- Oracle中job的使用详解
- ORACLE中job的使用详解
- 收藏:yurow birdshover 写得不错的《Lucene.Net 2.3.1开发》系列博客文章目录
- freelist 管理空闲段
- BSTR 转换
- NSUserDefaults数据存储在什么地方?
- u盘安装win7 【选择要安装的驱动程序】 导致安装不能继续
- 【Oracle】基于SCHEDULER的job的详解
- HDU 1002 A + B Problem II 【大数相加】(3.16)
- 时间结构体(二)
- Jetty8不能編譯JSP,報"There is an error in invoking javac. A full JDK (not just JRE) is required"錯誤
- MATLAB小问题集
- The X11 forwarding request was rejected!
- 材料院项目之Python读取配置信息
- Java线程学习笔记
- 第一章34题作业