亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle 10g DBMS_SCHEDULER的中度解析

2024-08-29 13:53:17
字體:
來源:轉載
供稿:網友

這篇論壇文章(賽迪網技術社區)針對DBMS_SCHEDULER的使用方法進行了詳盡的介紹,更多內容請參考下文:

DBMS_SCHEDULER是Oracle 10G中新增的一個包,與老版本的dbms_job包相比,dbms_scheduler有很多新特性,我將通過一系列的文章來介紹一下如何使用這個包.


1. 創建job


job是什么呢? 簡單的說就是計劃(schedule)加上任務說明. 另外還有一些必須的參數.


這里提到的"任務"可以是數據庫內部的存儲過程,匿名的PL/SQL塊,也可以是操作系統級別的腳本.


可以有兩種方式來定義"計劃":

1) 使用DBMS_SCHDULER.CREATE_SCHEDULE 定義一個計劃;

2) 調用DBMS_SCHDULER.CREATE_JOBE過程直接指定 (下面會詳細說明)


在創建一個計劃時,你至少需要指定下面的屬性,它們是job運行所必須的:


開始時間 (start_time);


重復頻率 (repeat_interval);


結束時間 (end_time)


另外,對于一個job而言,還有很多的附加參數:


job_class

job_PRiority

auto_drop

restartable

max_runs

max_failures

schedule_limit

logging_level


下面,我以問答的形式來具體解釋.


Q1:怎么從數據庫中查詢job的屬性 ?


A1: 有兩種方法:


1) 查詢(DBA|ALL|USER)_SCHEDULER_JOBS 視圖

(提示: 根據用戶權限的不同,選擇性的查詢 DBA|ALL|USER視圖)


2) 調用DBMS_SCHEDULER包中的GET_ATTRIBUTE 過程


Q2: 怎么設置這些屬性呢?


A2: 也是有兩種方法


1) 在創建job時直接指定


2) 調用DBMS_SCHEDULER包中的SET_ATTRIBUTE 過程


Q3: "我需要什么權限才能創建job" ?


它可以創建屬主為任何用戶(SYS用戶除外)的job.


缺省情況下,job會被創建在當前的schema下,并且是沒有激活的; 如果要使job一創建

就自動激活,需要顯式的設置enabled 屬性為true, 來看一個例子:


begin

dbms_scheduler.create_job

(

job_name => 'ARC_MOVE',

schedule_name => 'EVERY_60_MINS',

job_type => 'EXECUTABLE',

job_action => '/home/dbtools/move_arcs.sh',

enabled => true,

comments => 'Move Archived Logs to a Different Directory'

);

end;

/


Q4: 能不能詳細地講述一下上面這個過程用到的各個參數?


A4:

job_name: 顧名思義,每個job都必須有一個的名稱

schedule_name: 如果定義了計劃,在這里指定計劃的名稱

job_type: 目前支持三種類型:


PL/SQL塊: PLSQL_BLOCK,

存儲過程: STORED_PROCEDURE

外部程序: EXECUTABLE (外部程序可以是一個shell腳本,也可以是操作系統級別的指令).


job_action: 根據job_type的不同,job_action有不同的含義.

如果job_type指定的是存儲過程,就需要指定存儲過程的名字;

如果job_type指定的是PL/SQL塊,就需要輸入完整的PL/SQL代碼;

如果job_type指定的外部程序,就需要輸入script的名稱或者操作系統的指令名


enabled: 上面已經說過了,指定job創建完畢是否自動激活

comments: 對于job的簡單說明

2. 指定job的執行頻率


如果我們創建了一個job,并且希望它按照我們指定的日期和時間來運行,就需要定義job的重復頻度了. 例如每天運行,每周日的22:00運行, 每周一,三,五運行,每年的最后一個星期天運行等等.

(說明:10G以前的版本,與操作系統的交互方面,實現的不是很好。例如要實現一個定期的rman備份任務,就需要結合OS的命令來實現,在UNIX下可以用crontab實現,在windows下用AT命令來實現)


10G 在這方面有了很大的增強,因為創建job時可以直接指定操作系統的命令或者腳本,再合理的定義job的執行頻率,可以很輕松地完成復雜的調度任務.


10G 支持兩種模式的repeat_interval,一種是PL/SQL表達式,這也是dbms_job包中所使用的,例如SYSDATE+1, SYSDATE + 30/24*60; 另一種就是日歷表達式。

例如MON表示星期一,SUN表示星期天,DAY表示每天,WEEK表示每周等等. 下面來看幾個使用日歷表達式的例子:


repeat_interval => 'FREQ=HOURLY; INTERVAL=2'

每隔2小時運行一次job


repeat_interval => 'FREQ=DAILY'

每天運行一次job


repeat_interval => 'FREQ=WEEKLY; BYDAY=MON,WED,FRI"

每周的1,3,5運行job


repeat_interval => 'FREQ=YEARLY; BYMONTH=MAR,JUN,SEP,DEC; BYMONTHDAY=30'

每年的3,6,9,12月的30號運行job


用過crontab的人應該都有種似曾相識的感覺吧,呵呵


下面再說說使用日歷表達式的規則:


日歷表達式基本分為三部分: 第一部分是頻率,也就是"FREQ"這個關鍵字,它是必須指定的; 第二部分是時間間隔,也就是"INTERVAL"這個關鍵字,取值范圍是1-999. 它是可選的參數; 最后一部分是附加的參數,可用于精確地指定日期和時間,它也是可選的參數,例如下面這些值都是合法的:

BYMONTH,BYWEEKNO,BYYEARDAY,BYMONTHDAY,BYDAY

BYHOUR,BYMINUTE,BYSECOND


詳細的參數說明請參考 dbms_scheduler的使用說明.


既然說到了repeat_interval,你可能要問:"有沒有一種簡便的方法來得出,或者說是評估出job的每次運行時間,以及下一次的運行時間呢?"


dbms_scheduler包提供了一個過程evaluate_calendar_string,可以很方便地完成這個需求. 來看下面的例子:


SQL> set serveroutput on size 999999


SQL> declare

L_start_date TIMESTAMP;

l_next_date TIMESTAMP;

l_return_date TIMESTAMP;


begin

l_start_date := trunc(SYSTIMESTAMP);

l_return_date := l_start_date;

for ctr in 1..10 loop

dbms_scheduler.evaluate_calendar_string(

'FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI; BYHOUR=7,15',

l_start_date, l_return_date, l_next_date

);


dbms_output.put_line('Next Run on: ' ||

to_char(l_next_date,'mm/dd/yyyy hh24:mi:ss')

);


l_return_date := l_next_date;


end loop;

end;

/


輸出結果如下:


Next Run on: 03/22/2004 07:00:00

Next Run on: 03/22/2004 15:00:00

Next Run on: 03/23/2004 07:00:00

Next Run on: 03/23/2004 15:00:00

Next Run on: 03/24/2004 07:00:00

Next Run on: 03/24/2004 15:00:00

Next Run on: 03/25/2004 07:00:00

Next Run on: 03/25/2004 15:00:00

Next Run on: 03/26/2004 07:00:00

Next Run on: 03/26/2004 15:00:00


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美亚洲日本黄色| 亚洲精品视频免费在线观看| 欧洲s码亚洲m码精品一区| 亚洲精品视频网上网址在线观看| 亚洲精品久久久一区二区三区| 日韩中文视频免费在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 成人免费xxxxx在线观看| 欧美一区二区三区图| 亚洲人成在线免费观看| 日韩欧美aaa| 日韩中文字幕av| 一本久久综合亚洲鲁鲁| 亚洲色图第三页| 国产精品视频中文字幕91| 亚洲天堂影视av| 久久久精品2019中文字幕神马| 日本国产一区二区三区| 韩国美女主播一区| 欧美人在线视频| 欧美激情亚洲精品| 色综合伊人色综合网站| 亚洲精品视频中文字幕| 成人在线视频网| 久久精品最新地址| 亚洲第一综合天堂另类专| 亚洲国产精久久久久久久| 国产69精品久久久久9999| 91亚洲国产成人久久精品网站| 亚洲尤物视频网| 少妇高潮久久久久久潘金莲| 亚洲成在人线av| 大伊人狠狠躁夜夜躁av一区| 夜色77av精品影院| 亚洲人成网站在线播| 国产主播喷水一区二区| 国产精品亚洲综合天堂夜夜| 亚洲免费小视频| 国产精品九九九| 欧美夫妻性视频| 欧美老女人www| 欧美在线欧美在线| 亚洲国产天堂久久综合| 欧美国产高跟鞋裸体秀xxxhd| 亚洲跨种族黑人xxx| 日韩动漫免费观看电视剧高清| 一个人看的www欧美| 国产精品美女视频网站| 一二美女精品欧洲| 日韩欧美福利视频| 波霸ol色综合久久| 欧美午夜久久久| 成人观看高清在线观看免费| 国产精品美女午夜av| 伊人久久久久久久久久久久久| 久久这里有精品| 亚洲国产日韩欧美综合久久| 久久人人97超碰精品888| 国产精品影片在线观看| 欧美日韩国产限制| 538国产精品视频一区二区| 欧美亚洲另类制服自拍| 高潮白浆女日韩av免费看| 国产成人精品免高潮在线观看| 在线成人一区二区| 欧美一二三视频| 欧美精品激情视频| 久久偷看各类女兵18女厕嘘嘘| 红桃av永久久久| 欧美日韩国产中文字幕| 欧美极品少妇全裸体| 亚洲韩国日本中文字幕| 亚洲二区在线播放视频| 最近2019中文字幕一页二页| 国产成人亚洲精品| 亚洲福利在线看| 理论片在线不卡免费观看| 国产精品成人久久久久| 精品视频9999| 亚洲国产精品va在线看黑人动漫| 亚洲免费视频在线观看| 91精品久久久久久久久久| 97在线看免费观看视频在线观看| 亚洲国语精品自产拍在线观看| 日韩精品极品视频| 亚洲美女福利视频网站| 亚洲精品永久免费精品| 日韩精品免费综合视频在线播放| 91久久久国产精品| 欧美日韩在线视频首页| 中文字幕精品在线| 日韩免费观看视频| 最近中文字幕mv在线一区二区三区四区| 97婷婷大伊香蕉精品视频| 午夜免费在线观看精品视频| 欧美寡妇偷汉性猛交| 日韩av手机在线看| 亚洲a在线观看| 久久夜精品va视频免费观看| 久久男人的天堂| 亚洲自拍偷拍色片视频| 欧美黄色性视频| 最近的2019中文字幕免费一页| 欧美激情免费观看| 日韩美女视频免费在线观看| 丁香五六月婷婷久久激情| 国产成人精品999| 91久久久久久国产精品| 亚洲午夜久久久影院| 亚洲日本中文字幕免费在线不卡| 一本色道久久综合亚洲精品小说| 91高清视频免费| 超薄丝袜一区二区| 久久久久久久久久久久久久久久久久av| 97精品视频在线| 久久久久国产精品免费| 久久久久久美女| 成人欧美一区二区三区黑人孕妇| 国产91成人video| 欧美成人sm免费视频| 日本一区二区三区四区视频| 热久久99这里有精品| 国产欧美精品在线播放| 欧美精品中文字幕一区| 亚洲人成在线电影| 热re91久久精品国99热蜜臀| 国产精品一区二区久久久久| 九九热这里只有在线精品视| www.日韩.com| 91精品国产乱码久久久久久久久| 欧美日韩亚洲视频| 亚洲色图35p| 欧美性猛交视频| 日韩一区二区精品视频| 久久99久久久久久久噜噜| 91在线观看免费高清| 国内精品小视频在线观看| 伊人伊成久久人综合网站| 欧美日韩在线视频观看| 国产一区二区三区免费视频| 理论片在线不卡免费观看| 一本大道香蕉久在线播放29| 精品久久在线播放| 国产午夜精品一区二区三区| 日韩在线免费视频观看| 亚洲精品之草原avav久久| 亚洲成**性毛茸茸| 国产高清在线不卡| 国产精品第七影院| 国产欧美久久一区二区| 亚洲人av在线影院| 久久精品国产69国产精品亚洲| 亚洲日韩欧美视频一区| 日韩电影中文 亚洲精品乱码| 日韩精品免费一线在线观看| 国产精品美腿一区在线看| 亚洲国产精品va在线观看黑人| 欧美电影第一页| 国产v综合ⅴ日韩v欧美大片| 91夜夜未满十八勿入爽爽影院| 亚洲欧美日韩久久久久久| 精品视频久久久| 国产精品免费看久久久香蕉| 亚洲国产免费av|