dbms_scheduler package系列(二)
繼續上文關於dbms_scheduler package的學習
上文http://space.itpub.net/9240380/viewspace-753712簡要測試了create_job,drop_job,enable procedure的用法;
以及user_sheduler_jobs,user_scheduler_job_args和user_scheduler_scheduler字典一點資訊;
以及user_sheduler_jobs,user_scheduler_job_args和user_scheduler_scheduler字典一點資訊;
俗話說:無理不清,故處理一事前,明確理解其概念是相當重要的.
正入進題:
dbms_scheduler package的概念目錄:
1,它的用途是什麼
2,它包括一些什麼元件或者部件,基本可分為如下幾塊:
a,programs
b,schedules
c,jobs
這個jobs又產生一個job instances
d,events
e,chains
3,上述各個元件之間的內在聯絡是什麼,它是整合在一起才可以工作喲
4,其他更為高階的一些概念
a,job classes
b,windows
c,window groups
隸屬於windows
5,scheduler 體系架構,即dbms_scheduler package如何可以執行起來
a,job table
b,job coordinator
c,job如何執行
d,job slaves
e,在rac下使用scheduler一些相關內容
dbms_scheduler package的概念目錄:
1,它的用途是什麼
2,它包括一些什麼元件或者部件,基本可分為如下幾塊:
a,programs
b,schedules
c,jobs
這個jobs又產生一個job instances
d,events
e,chains
3,上述各個元件之間的內在聯絡是什麼,它是整合在一起才可以工作喲
4,其他更為高階的一些概念
a,job classes
b,windows
c,window groups
隸屬於windows
5,scheduler 體系架構,即dbms_scheduler package如何可以執行起來
a,job table
b,job coordinator
c,job如何執行
d,job slaves
e,在rac下使用scheduler一些相關內容
1,它的用途是什麼
a,基於事件或時間執行job
即發生某些事件時執行一些job,比如要在晚間打patch或進行etl或者備份資料庫
b,用模擬業務需求的方式來排程job
即更接近於業務環境資源來排程執行job,用如下幾方式實現
1,對共同特徵的job分為job class,看,這個job class即是上述的job class,在dbms_scheduler也有對應的包
2,建立了job class,進而為其分配不同的優先順序和資源,從而控制在可控制的範圍,保證高優先順序的任務先執行
和windows,也是上述的概念之一
3,也可以基於某些event建立job,排程其執行,比如:自銀行某賬戶超額取款,一旦發生此事件,啟用某個job,達到
應有的目標,這裡的event也是上述的概念之一
c,dbms_scheduler同時也提供管理及監控job的一些檢視,從而更新服務於業務和管理人員
d,在rac環境,基於services也可建立job,注:services是rac概念
2,它包括一些什麼元件或者部件,基本可分為如下幾塊:
a,programs,包含如下幾塊的內容:
1,排程器執行所需的一些元資訊的集合體,主要涉及:program名稱,program 動作,這個動作即
oracle儲存過程或者某個外部執行檔案;program型別,如pl/sql或java儲存過程還是plsql匿名塊
以及這些program執行必需的引數(注:此引數在dbms_scheduler也有對應過程)
2,這個programs與job是兩個獨立的物件;這個獨立有幾層意思:
a,不同的使用者可以同時執行一個programs,前提你要有執行的許可權
b,多個job可以執行同一個programs,即一個programs可以多job間共享
c,多個執行同一個programs的job,可以用其同一個要執行的programs設定引數的不同值,
即雖然大家執行同一個程式碼,但傳入引數值是不同的,最終結果也不同
b,schedules,具有如下幾方面的內容:
1,指定一個job何時或執行多少次
2,指定發生什麼event時,執行一個job
3,也可在多個使用者之間共享使用
c,jobs,可以排程執行一或多次的使用者自定義任務;它是執行什麼動作及何時執行的混合體.具有許可權的使用者可以:
1,為執行什麼動作指定job attributes(atrributes也是上述概念之一)
為何時執行指定job atrributes
2,為已存在的programs和schedule指定job atrributes
d,job arguments(上述目錄無此,它與jobs關聯)
1,透過它定製指定的program
2,它會覆蓋program的引數預設值
3,它會為program無預設值的引數提供值
4,切記,job必須要為其指定job arguments才可以執行或enable(注:是有job argument的job or program)
5,小例:比如在晚上要出一個不同部門的報表,出報表的指令碼是program,而job由不同部門建立;
執行時為不同的program傳入不同的job argument,進而得到不同部門的報表,僅僅是部門號不同而已
e,job instance
1,代表某個job的執行,即每次執行job才會產生它
2,如果一個job多次執行,會對應產生多個job instance
3,建立一個job,會新增一條job記錄到job表中,而執行一次job,會插入一條記錄到job log表中,執行多次,
則插入多次;
f,events,它是由一個應用或系統程式或程式相互通訊或互動發生的訊息,表明發生了一些事情或事件;
event由一個應用或程式產生,而由一或多個應用或程式接收;
有2類events:
1,由排程器產生的
即排程器本身產生的,表明其狀態變更的事件,即一個job開始,結束,一個job在規定的時間內未啟動或停止;
由此引生一個事件,由相應的應用接收,進而針對性處理;
2,由應用產生的
由排程器接受,排程器開啟一個job響應此事件;也可以建立一個包括事件的排程器,而非包括日期,時間及反覆多次資訊;
如果一個job指配給這樣的排程器時,當事件引發時,則會執行一個job;
例如:倉庫系統發現某個指標低於某個值,這是一個事件,則執行對應的job(事件由應用產生,但由排程器接受並觸發相應的job)
這種排程器使用oracle streams advanced queuing來產生和接受事件;(oracle streams advanced quening可參考文件:
Oracle Streams Advanced Queuing User's Guide and Reference
)
g,chains,它是一組programs構成混合體,對外呈現為一個邏輯物件;
1,它類似於決策樹一樣的功能,分開多個step.比如:如果step1和step2執行成功,則執行step3,否則執行step4;
2,它應用於完整性的事務中,因為事務是由多個處理單元組成,而且這些處理單元之間有邏輯關係
3,step可以指向:
a,program
b,另一個chain,即nested chain
c,event
d,指向一個event的step(且要這個指向的step執行完畢)
即要這個event執行成功,step才算成功執行
3,上述各個元件之間的內在聯絡是什麼,它是整合在一起才可以工作喲
p1 p2 p3
^ ^
| /
| /
| /
| /
| /
| /
| /
j1 j2 j3
\ /
\ /
\ /
\ /
\ /
s1
小結:
1,上述的p,j,s各代表program,job,scheduler
2,一個job可以執行多個program
多個job也可以執行一個program
一個scheduler可以執行多個不同的job
多個scheduler也可以執行相同的job
3,p和s也可以單獨定義,不與j關聯;
a,基於事件或時間執行job
即發生某些事件時執行一些job,比如要在晚間打patch或進行etl或者備份資料庫
b,用模擬業務需求的方式來排程job
即更接近於業務環境資源來排程執行job,用如下幾方式實現
1,對共同特徵的job分為job class,看,這個job class即是上述的job class,在dbms_scheduler也有對應的包
2,建立了job class,進而為其分配不同的優先順序和資源,從而控制在可控制的範圍,保證高優先順序的任務先執行
和windows,也是上述的概念之一
3,也可以基於某些event建立job,排程其執行,比如:自銀行某賬戶超額取款,一旦發生此事件,啟用某個job,達到
應有的目標,這裡的event也是上述的概念之一
c,dbms_scheduler同時也提供管理及監控job的一些檢視,從而更新服務於業務和管理人員
d,在rac環境,基於services也可建立job,注:services是rac概念
2,它包括一些什麼元件或者部件,基本可分為如下幾塊:
a,programs,包含如下幾塊的內容:
1,排程器執行所需的一些元資訊的集合體,主要涉及:program名稱,program 動作,這個動作即
oracle儲存過程或者某個外部執行檔案;program型別,如pl/sql或java儲存過程還是plsql匿名塊
以及這些program執行必需的引數(注:此引數在dbms_scheduler也有對應過程)
2,這個programs與job是兩個獨立的物件;這個獨立有幾層意思:
a,不同的使用者可以同時執行一個programs,前提你要有執行的許可權
b,多個job可以執行同一個programs,即一個programs可以多job間共享
c,多個執行同一個programs的job,可以用其同一個要執行的programs設定引數的不同值,
即雖然大家執行同一個程式碼,但傳入引數值是不同的,最終結果也不同
b,schedules,具有如下幾方面的內容:
1,指定一個job何時或執行多少次
2,指定發生什麼event時,執行一個job
3,也可在多個使用者之間共享使用
c,jobs,可以排程執行一或多次的使用者自定義任務;它是執行什麼動作及何時執行的混合體.具有許可權的使用者可以:
1,為執行什麼動作指定job attributes(atrributes也是上述概念之一)
為何時執行指定job atrributes
2,為已存在的programs和schedule指定job atrributes
d,job arguments(上述目錄無此,它與jobs關聯)
1,透過它定製指定的program
2,它會覆蓋program的引數預設值
3,它會為program無預設值的引數提供值
4,切記,job必須要為其指定job arguments才可以執行或enable(注:是有job argument的job or program)
5,小例:比如在晚上要出一個不同部門的報表,出報表的指令碼是program,而job由不同部門建立;
執行時為不同的program傳入不同的job argument,進而得到不同部門的報表,僅僅是部門號不同而已
e,job instance
1,代表某個job的執行,即每次執行job才會產生它
2,如果一個job多次執行,會對應產生多個job instance
3,建立一個job,會新增一條job記錄到job表中,而執行一次job,會插入一條記錄到job log表中,執行多次,
則插入多次;
f,events,它是由一個應用或系統程式或程式相互通訊或互動發生的訊息,表明發生了一些事情或事件;
event由一個應用或程式產生,而由一或多個應用或程式接收;
有2類events:
1,由排程器產生的
即排程器本身產生的,表明其狀態變更的事件,即一個job開始,結束,一個job在規定的時間內未啟動或停止;
由此引生一個事件,由相應的應用接收,進而針對性處理;
2,由應用產生的
由排程器接受,排程器開啟一個job響應此事件;也可以建立一個包括事件的排程器,而非包括日期,時間及反覆多次資訊;
如果一個job指配給這樣的排程器時,當事件引發時,則會執行一個job;
例如:倉庫系統發現某個指標低於某個值,這是一個事件,則執行對應的job(事件由應用產生,但由排程器接受並觸發相應的job)
這種排程器使用oracle streams advanced queuing來產生和接受事件;(oracle streams advanced quening可參考文件:
Oracle Streams Advanced Queuing User's Guide and Reference
)
g,chains,它是一組programs構成混合體,對外呈現為一個邏輯物件;
1,它類似於決策樹一樣的功能,分開多個step.比如:如果step1和step2執行成功,則執行step3,否則執行step4;
2,它應用於完整性的事務中,因為事務是由多個處理單元組成,而且這些處理單元之間有邏輯關係
3,step可以指向:
a,program
b,另一個chain,即nested chain
c,event
d,指向一個event的step(且要這個指向的step執行完畢)
即要這個event執行成功,step才算成功執行
3,上述各個元件之間的內在聯絡是什麼,它是整合在一起才可以工作喲
p1 p2 p3
^ ^
| /
| /
| /
| /
| /
| /
| /
j1 j2 j3
\ /
\ /
\ /
\ /
\ /
s1
小結:
1,上述的p,j,s各代表program,job,scheduler
2,一個job可以執行多個program
多個job也可以執行一個program
一個scheduler可以執行多個不同的job
多個scheduler也可以執行相同的job
3,p和s也可以單獨定義,不與j關聯;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-753771/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- dbms_scheduler package系列(六)Package
- dbms_scheduler package系列(五)Package
- dbms_scheduler package系列(四)Package
- dbms_scheduler package系列三Package
- dbms_scheduler package系列(一)Package
- dbms_scheduler package系列(七)-2Package
- dbms_scheduler package系列(七)-1Package
- dbms_scheduler package body INVALID 解決方案Package
- dart系列之:建立Library packageDartPackage
- Oracle DBMS_SCHEDULEROracle
- npm入門(二)—package(包)的管理NPMPackage
- not an rpm package (or package manifest):Package
- not an rpm package (or package manifest)Package
- packagePackage
- 使用oracle dbms_scheduler代替crontabOracle
- dbms_scheduler 相關資料
- Package Specification 和 Package Body 及 Package有什麼區別? (轉)Package
- iptables系列二
- MongoDB系列二MongoDB
- 深入安卓Package Manager和Package Installer安卓Package
- Oracle定時任務dbms_schedulerOracle
- 建立packagePackage
- Package ssh is not available, but is referred to by another package 錯誤PackageAI
- docker系列(二):映象Docker
- MongoTemplate 教程系列(二)Go
- oracle undo系列(二)Oracle
- oracle排程程式作業dbms_schedulerOracle
- oracle使用DBMS_SCHEDULER排程作業Oracle
- 使用 DBMS_SCHEDULER執行外部命令
- Oracle 排程程式作業( dbms_scheduler )Oracle
- ORA-04042 procedure, function, package, or package body does not existFunctionPackage
- java 包(package)JavaPackage
- alter package/procedurePackage
- Package and ClassPath (轉)Package
- vue系列元件篇(二)Vue元件
- Binder面試系列之二面試
- 圖解HTTP系列--(二)圖解HTTP
- webpack系列之二TapableWeb