通過schedule調(diào)度program的執(zhí)行的job,看到這樣的形容是不是讓你徹底暈頭了,就說明你還是沒搞明白10g中SCHEDULERS特性管理的jobs的含意,讓三思更直白地給你描述描述。10g版本中SCHEDULER將JOB分成了多個部分,program負責(zé)做什么,schedule負責(zé)啥時候做,job就簡單了,一個字:做。
創(chuàng)新互聯(lián)10多年成都企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及高端網(wǎng)站定制服務(wù),成都企業(yè)網(wǎng)站建設(shè)及推廣,對成都木制涼亭等多個行業(yè)擁有豐富的網(wǎng)站維護經(jīng)驗的網(wǎng)站建設(shè)公司。
前面幾個小節(jié),三思已經(jīng)分別演示了創(chuàng)建管理Jobs,創(chuàng)建管理Programs以及創(chuàng)建和管理Schedules,下面我們通過實例來演示,如何創(chuàng)建通過schedule調(diào)度program的執(zhí)行的job吧。
首先,創(chuàng)建一個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,執(zhí)行操作系統(tǒng)命令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.定義調(diào)試為每周執(zhí)行一次。此處repeat_interval可根據(jù)實現(xiàn)情況進行修改。
最后,創(chuàng)建job,按照指定的schedule,執(zhí)行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.創(chuàng)建job時,start_date,repeat_interval,job_action等均無須指定,因為這些參數(shù)將由program和schedule來控制,這樣,操作完成后,ORACLE就會自動定時(當(dāng)前設(shè)置為每周執(zhí)行一次)program中定義的操作。
要查看當(dāng)前的執(zhí)行情況,通過*_scheduler_job_run_details即可查詢(*_scheduler_job_log也可以,不過該視圖中信息不如detail中全面)。例如,查看剛剛創(chuàng)建的"EXECOSCMD"任務(wù)的執(zhí)行情況,執(zhí)行命令如下:
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特性的功能還多著哪,接著往下看吧。
=======================================