zoukankan      html  css  js  c++  java
  • 全面学习ORACLE Scheduler特性(5)Schedules调度Programs执行的Jobs

    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特性的功能还多着哪,接着往下看吧。

  • 相关阅读:
    iOS开发allocWithZone介绍
    如何快速的查看一段代码的执行时间
    iOS关于setContentOffset的一些细节问题
    iOS开发libz.dylib介绍
    C#窗体无法接受Keydown事件
    visual studio 2010 C#编程时 没有.NET framework 2.0目标框架的解决办法
    StringBuilder类与String类的区别
    Refresh和Invalidate的比较
    正则表达式
    Queue 先进先出队列的操作
  • 原文地址:https://www.cnblogs.com/forestwolf/p/5132251.html
Copyright © 2011-2022 走看看