溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ORACLE Scheduler中如何創(chuàng)建和管理Schedule

發(fā)布時(shí)間:2021-11-09 14:10:20 來源:億速云 閱讀:186 作者:小新 欄目:關(guān)系型數(shù)據(jù)庫

小編給大家分享一下ORACLE Scheduler中如何創(chuàng)建和管理Schedule,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

    10g 中新推出的SCHEDULER可能確實(shí)會(huì)讓很多初接觸的朋友感覺暈頭暈?zāi)X,相比之前的jobs,SCHEDULER中新增的概念太多。比如說jobs,仍然可以理解成之前版本中的jobs,不過功能更加強(qiáng)大(注意10g中也仍然可以使用普通jobs,這是廢話,相信看本篇文章的朋友目前應(yīng)該還是這樣在用),比如說program,指的是運(yùn)行的程序(把要做什么單提出來了),比如說schedule,我將其翻譯為調(diào)度(job我翻譯為任務(wù)),定義執(zhí)行的頻率或者說周期。

3.1  創(chuàng)建和管理Schedules

  Schedule ,中文直譯的話應(yīng)該理解成調(diào)度,從名字來看,它是一個(gè)邏輯實(shí)體(邏輯,還實(shí)體,好矛盾),就是說當(dāng)創(chuàng)建了schedule之后,數(shù)據(jù)庫中就肯定存在這一對象,只不過這一對象是用來描述job的執(zhí)行周期。

  創(chuàng)建schedule可以通過DBMS_SCHEDULER.CREATE_SCHEDULE過程,該過程支持的參數(shù)如下:

    SQL> desc dbms_scheduler.create_schedule;

    Parameter       Type                     Mode Default? 

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

    SCHEDULE_NAME   VARCHAR2                 IN            

    START_DATE      TIMESTAMP WITH TIME ZONE IN   Y        

    REPEAT_INTERVAL VARCHAR2                 IN            

    END_DATE        TIMESTAMP WITH TIME ZONE IN   Y        

  • COMMENTS        VARCHAR2                 IN   Y        

  各參數(shù)分別代表含意如下:

  • SCHEDULE_NAME :指定schedule名稱,注意名稱不能重復(fù)。

  • START_DATE :指定該調(diào)度的開始時(shí)間,可為空,當(dāng)為空時(shí)表示該調(diào)度暫不起用。

  • REPEAT_INTERVAL :指定調(diào)度的執(zhí)行頻率或周期。

  • END_DATE :指定調(diào)度的結(jié)束時(shí)間,可為空,為空時(shí)就表示該調(diào)度將一直進(jìn)行。

  • COMMENTS :注釋信息。

  這其中,比較有技術(shù)含量的是REPEAT_INTERVAL參數(shù),對于這個(gè)參數(shù)大家應(yīng)該不會(huì)太陌生,因?yàn)榍懊娼榻BJobs,也曾經(jīng)提到過同名的參數(shù),Schedules中的REPEAT_INTERVAL參數(shù)和Jobs中的REPEAT_INTERVAL參數(shù)功能完全相同,甚至參數(shù)格式也一模一樣。

  REPEAT_INTERVAL 參數(shù)的語法結(jié)構(gòu)要復(fù)雜的多。其中最重要的是FREQ和INTERVAL兩個(gè)關(guān)鍵字。

  • FREQ 關(guān)鍵字用來指定間隔的時(shí)間周期,可選參數(shù)有:YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, and SECONDLY,分別表示年、月、周、日、時(shí)、分、秒等單位。

  • INTERVAL 關(guān)鍵字用來指定間隔的頻繁,可指定的值的范圍從1-99。

  比如說,當(dāng)指定REPEAT_INTERVAL=>'FREQ=DAILY;INTERVAL=1';就表示每天執(zhí)行一次,如果將INTERVAL改為7就表示每7天執(zhí)行一次,效果等同于FREQ=WEEKLY;INTERVAL=1。

  下面,創(chuàng)建一個(gè)schedule,指定調(diào)度為每周一次的頻率,執(zhí)行腳本如下:

    SQL> begin

      2  DBMS_SCHEDULER.CREATE_SCHEDULE (

      3    schedule_name     => 'my_first_schedule',

      4    start_date        => SYSDATE,

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

      6    comments          => 'Every 1 weeks');

      7  END;

      8  /

  • PL/SQL procedure successfully completed.

  查詢當(dāng)前已經(jīng)創(chuàng)建的schedules,可以通過*_SCHEDULER_SCHEDULES視圖(含DBA_,ALL_,USER_),例如,查看當(dāng)前用戶擁有的schedules,執(zhí)行語句如下:

    SQL> select schedule_name,repeat_interval from user_scheduler_schedules;

    SCHEDULE_NAME                  REPEAT_INTERVAL

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

  • MY_FIRST_SCHEDULE              FREQ=WEEKLY; INTERVAL=1

  如果要修改schedule屬性的話,也是使用DBMS_SCHEDULER.SET_ATTRIBUTE過程,該過程的調(diào)用方式前面已經(jīng)多次演示過,這里就不再重復(fù)舉例了,僅說明一點(diǎn),對于schedule來說,能夠修改的屬性包括:REPEAT_INTERVAL、COMMENTS、END_DATE、START_DATE以及EVENT_SPEC。

  至于刪除schedule,再簡單不過,執(zhí)行DBMS_SCHEDULER.DROP_SCHEDULE過程即可,例如:

    SQL> EXEC DBMS_SCHEDULER.DROP_SCHEDULE('MY_FIRST_SCHEDULE');

  • PL/SQL procedure successfully completed.

以上是“ORACLE Scheduler中如何創(chuàng)建和管理Schedule”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI