全面學習ORACLE Scheduler特性(5)Schedules排程Programs執行的Jobs

junsansi發表於2009-08-17

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特性(4)建立和管理Schedule

全面學習ORACLE Scheduler特性(3)使用Programs

全面學習ORACLE Scheduler特性(2)管理jobs

全面學習ORACLE Scheduler特性(1)建立jobs

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-612496/,如需轉載,請註明出處,否則將追究法律責任。

相關文章