3.2 Schedules调度Programs执行的Jobs

  通过schedule调度program的执行的job,看到这样的形容是不是让你彻底晕头了,就说明你还是没搞明白10g中SCHEDULERS特性管理的jobs的含意,让三思更直白地给你描述描述。10g版本中SCHEDULER将JOB分成了多个部分,program负责做什么,schedule负责啥时候做,job就简单了,一个字:做。

  前面几个小节,三思已经分别演示了创建管理Jobs,创建管理Programs以及创建和管理Schedules,下面我们通过实例来演示,如何创建通过schedule调度program的执行的job吧。

  首先,创建一个program,操作如下:

SQL> BEGIN

2  DBMS_SCHEDULER.CREATE_PROGRAM (

3     program_name           => 'my_program1',

4     program_action         => '/bin/date',

5     program_type           => 'EXECUTABLE',

6     enabled                => TRUE);

7  END;

8  /

    PL/SQL procedure successfully completed.

  通过上述语句,我们定义了一个program,执行操作系统命令date,并输入到dt.log文件中。

  接下来定义一个schedule,操作如下:

SQL> begin

2  DBMS_SCHEDULER.CREATE_SCHEDULE (

3    schedule_name     => 'my_first_schedule',

4    start_date        => SYSDATE,

5    repeat_interval   => 'FREQ= DAILY ; INTERVAL=1',

6    comments          => 'Every 1 weeks');

7  END;

8  /

    PL/SQL procedure successfully completed.

  定义调试为每周执行一次。此处repeat_interval可根据实现情况进行修改。

  最后,创建job,按照指定的schedule,执行program,操作如下:

SQL> BEGIN

2  DBMS_SCHEDULER.CREATE_JOB (

3     job_name           =>  'execOScmd',

4     program_name       =>  'my_program1',

5     schedule_name      =>  'my_first_schedule',

6     enabled            =>  true);

7  END;

8  /

    PL/SQL procedure successfully completed.

  创建job时,start_date,repeat_interval,job_action等均无须指定,因为这些参数将由program和schedule来控制。

  这样,操作完成后,ORACLE就会自动定时(当前设置为每周执行一次)program中定义的操作。

  要查看当前的执行情况,通过*_scheduler_job_run_details即可查询(*_scheduler_job_log也可以,不过该视图中信息不如detail中全面)。例如,查看刚刚创建的"EXECOSCMD"任务的执行情况,执行命令如下:

SQL> select log_id, log_date, status, additional_info

2    from user_scheduler_job_run_details

3   where job_name = 'EXECOSCMD'

4  ;

LOG_ID LOG_DATE             STATUS     ADDITIONAL_INFO

---------- -------------------- ---------- ------------------------------

13760 17-AUG-09 02.47.53.7 SUCCEEDED

    34050 PM +08:00

  看完这个示例之后,你是否对10g中的SCHEDULER特性多了些了解呢?千万表自满,SCHEDULER特性的功能还多着哪,接着往下看吧。

全面学习ORACLE Scheduler特性(5)Schedules调度Programs执行的Jobs的更多相关文章

  1. 全面学习ORACLE Scheduler特性(12)使用Windows和Window Groups

    七.使用Windows 此Windows非彼Windows,通常说的Windows是指盖首富的操作系统,而此处所说的Windows,是指SCHEDULER特性中的一个子项.在SCHEDULER中,WI ...

  2. 全面学习ORACLE Scheduler特性(4)创建和管理Schedule

    三.使用Schedules 10g 中新推出的SCHEDULER可能确实会让很多初接触的朋友感觉晕头晕脑,相比之前的jobs,SCHEDULER中新增的概念太多.比如说jobs,仍然可以理解成之前版本 ...

  3. 全面学习ORACLE Scheduler特性(7)Scheduler抛出的Events

    四.使用Events Event直译对应的中文解释是指事件,不过单纯讲事件毕竟太抽象了,举个示例来形容吧.A(对应某个应用程序,或者是ORACLE中的进程)在干活时突然眉头一皱说道,不好,前方有情况, ...

  4. 全面学习ORACLE Scheduler特性(1)创建jobs

    所谓出于job而胜于job,说的就是Oracle 10g后的新特性Scheduler啦.在10g环境中,ORACLE建议使用Scheduler替换普通的job,来管理任务的执行.其实,将Schedul ...

  5. 全面学习ORACLE Scheduler特性(11)使用Job Classes

    六.使用Job Classes Job Classes 相当于创建了一个job组,DBA可以将那些具有相同特性的job,统统放到相同的Job Classes中,然后通过对Job Class应用ORAC ...

  6. 全面学习ORACLE Scheduler特性(8)Application抛出的Events

    4.2 Application抛出的Events 首先要说明,这里所说的Application是个代词,即可以表示ORACLE数据库之外的应用程序,也可以是ORACLE数据库中的PROCEDURE等对 ...

  7. 全面学习ORACLE Scheduler特性(6)设置Repeat Interval参数

    3.3 设置Repeat Interval Job 和Schedule中REPEAT_INTERVAL参数都是用来控制执行的频率或周期,虽然说周期是一个时间性概念,不过REPEAT_INTERVAL指 ...

  8. 全面学习ORACLE Scheduler特性(3)使用Programs

    二.使用Programs 在论坛中偶尔见过有人讨论如何在ORACLE中执行操作系统命令,或是ORACLE数据库外的应用.应该说在9i及之前的版本中,虽然说并非完全无法实现(其实还是有多种方式能够变相实 ...

  9. 全面学习ORACLE Scheduler特性(2)管理jobs

    1.2  管理Jobs 1.2.1  启用Jobs 前面创建JOB时,由于未显式的指定ENABLED参数,因此即使指定了START_DATE,不过默认情况下JOB不会自动执行.对于这种情况,DBMS_ ...

随机推荐

  1. msp430入门编程0

    msp430单片机最小系统 msp430入门学习 msp430入门编程

  2. 快速幂取模模板 && 51nod 1013 3的幂的和

    #include <iostream> #include <cstdio> #include <cmath> #include <vector> #in ...

  3. POJ 2785_4 Values whose Sum is 0

    题意: A,B,C,D四组数中各取一个数,使这四个数相加为0,问有多少组取法? 分析: 四个数列有n4种取法,规模较大,但是可以将他们分成AB,CD两组,分别枚举,最后再合并. 代码: #includ ...

  4. NOIP 2010 关押罪犯

    P1525 关押罪犯 题目描述 SS 城现有两座监狱,一共关押着 NN 名罪犯,编号分别为 1-N1−N .他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突. ...

  5. laravel event

    事件监听 方法一: web.php Event::listen('eloquent.created: App\post',function(){ dump('A post was created'); ...

  6. redux 简明学习

    核心概念 redux专注于状态管理,把所有的状态都存在一个对象中.核心概念包括:store.state.action.reducer [store] store是保存数据的地方,redux提供crea ...

  7. .Net 与 Javascript 混合编程系列

    之前的文章有提到 edge 和 nodejs 交互,通过node的模块为C# 提供一些扩展,这个还是比較方便. 这里说下为什么要使用js. 1.SharpKit是一个用于在编译时将C#语言转换为Jav ...

  8. php生成二维码2

    <?php include "phpqrcode.php"; $value = "http://huizhongda.taobao.com/"; $err ...

  9. 简单区分iphone和ipad的宏定义

    在公共头文件里作例如以下定义: #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 使用时: if( IS_I ...

  10. 【图像处理】基于OpenCV底层实现的图片旋转

    image processing 系列 [图像处理]直方图匹配 [图像处理]高斯滤波.中值滤波.均值滤波 图片旋转,本质上是对旋转后的图片中每一个像素点计算在原图的位置.然后照搬过来就好. (多说一句 ...