(5)Schedules調(diào)度Programs執(zhí)行的Jobs |
[君三思] 2009-8-17 |
3.2 Schedules調(diào)度Programs執(zhí)行的Jobs通過(guò)schedule調(diào)度program的執(zhí)行的job,看到這樣的形容是不是讓你徹底暈頭了,就說(shuō)明你還是沒(méi)搞明白10g中SCHEDULERS特性管理的jobs的含意,讓三思更直白地給你描述描述。10g版本中SCHEDULER將JOB分成了多個(gè)部分,program負(fù)責(zé)做什么,schedule負(fù)責(zé)啥時(shí)候做,job就簡(jiǎn)單了,一個(gè)字:做。 前面幾個(gè)小節(jié),三思已經(jīng)分別演示了創(chuàng)建管理Jobs,創(chuàng)建管理Programs以及創(chuàng)建和管理Schedules,下面我們通過(guò)實(shí)例來(lái)演示,如何創(chuàng)建通過(guò)schedule調(diào)度program的執(zhí)行的job吧。 首先,創(chuàng)建一個(gè)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.通過(guò)上述語(yǔ)句,我們定義了一個(gè)program,執(zhí)行操作系統(tǒng)命令date,并輸入到dt.log文件中。 接下來(lái)定義一個(gè)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ù)實(shí)現(xiàn)情況進(jì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時(shí),start_date,repeat_interval,job_action等均無(wú)須指定,因?yàn)檫@些參數(shù)將由program和schedule來(lái)控制。 這樣,操作完成后,ORACLE就會(huì)自動(dòng)定時(shí)(當(dāng)前設(shè)置為每周執(zhí)行一次)program中定義的操作。 要查看當(dāng)前的執(zhí)行情況,通過(guò)*_scheduler_job_run_details即可查詢(*_scheduler_job_log也可以,不過(guò)該視圖中信息不如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看完這個(gè)示例之后,你是否對(duì)10g中的SCHEDULER特性多了些了解呢?千萬(wàn)表自滿,SCHEDULER特性的功能還多著哪,接著往下看吧。 |