複製鏈接
請複製以下鏈接發送給好友

調度程序

鎖定
調度程序是管理任務的DB2®系統。“任務中心”顯示具有活動調度程序的已編目系統或數據庫的列表。每次啓動任務中心時都必須登錄。
中文名
調度程序
外文名
Scheduler
類    別
程序
系    統
管理任務的DB2®系統
組    成
工具目錄數據庫等
應    用
電子程序編寫

調度程序基本信息

結構圖 結構圖
調度程序是管理任務的DB2®系統。“DB2管理服務器”(DAS)的這個組件包括工具目錄數據庫,該數據庫包含“任務中心”使用的信息。安排一個任務時,“任務中心”使用調度程序的系統時鐘來跟蹤調度程序上的任務何時需要運行。
“任務中心”顯示具有活動調度程序的已編目系統或數據庫的列表。必須選擇一個調度程序系統來與“任務中心”一起工作。當您登錄至“任務中心”時,您正在登錄至選擇的調度程序系統。每次啓動任務中心時都必須登錄。 [1] 

調度程序調度程序的體系架構

調度的結構包括三個組件:作業表(Job Table)、作業協調進程(Job Coordinator)以及工進程(Job Work Process)。

調度程序調度架構

調度結構三個組件作業表、作業協調進程以及工進程的作用説明如下:
1)作業表包含調度管理的作業信息,如作業名稱、程序名稱以及作業擁有者等。
2)作業協調進程協調作業的執行,查看運行中的作業。
3)作業工進程完成作業要完成的工作。
下圖所示是調度的體系架構圖。
調度的體系架構 調度的體系架構

調度程序執行調度程序的權限

Oracle可以在某個用户模式下創建作業、程序以及調度,但是必須具有相應的權限才可以創建這些部件,如Create Job權限來創建調度的作業、程序以及事件。並且對於調度其他模式的過程或程序,必須具備執行這些數據庫組件的權限,即被賦予EXECUTE ANY PROGRAM權限。下面是對於創建Scheduler以及各種執行權限的一個總結。
①SCHEDULER ADMIN角色:所有的Scheduler系統權限。
②DBA角色:包含SCHEDULER ADMIN角色。
③CREATE JOB權限:創建Scheduler的作業、調度、程序、鏈以及事件。
④MANAGER SCHEDULER權限:使用Scheduler的高級組件。
⑤EXECUTE ANY PROGRAM權限:允許用户在任何模式下執行任何程序。
⑥EXECuTE ANY CLASS權限:允許將一個作業分配給任何作業類。 [2] 

調度程序調度程序的組件

調度程序由一系列組件組成,當然這些組件是為了完成調度任務,提供調度靈活性而定義的。它們之間各司其職完成調度任務。
(1)作業:作業將調度與程序結合起來,完成在某個時間間隔或者某個時間段內的任務,這個任務可以是PL/SQL代碼,也可以是可執行文件或者Shell腳本。具體要執行的任務與調度結合,可以在指定的時間開始執行任務以及設置任務執行的頻率。
(2)調度:調度是純粹的時間概念,它告訴任務執行的開始時間,以及任務執行的頻率,一個調度可以觸發多個具體任務。
(3)程序:程序是具體完成某項任務的單元,包括程序名、類型以及具體動作,程序類型可以是PL/SQL代碼塊、存儲過程或者二進制可執行腳本。
(4)事件:Schedule支持使用事件觸發啓動具體作業運行,事件使用Schedule的Oracle流高級隊列特性。一個事件由某個進程或程序在具體動作發生時發送消息來完成。
(5)鏈:鏈將多個程序連接起來,這樣一個程序的運行有可能以另一個程序的運行為基礎,或者基於一個鏈來啓動作業。 [2] 

調度程序調度程序對象

調度程序環境中最基本的對象是作業。作業可以是完全自包含的:它可以定義要執行的動作和執行時間。在更高級的配置中,作業只是由大量各種類型的調度程序對象組成的結構的一部分。
1.作業
作業(job)指定了要執行的動作以及執行動作的時間。“要執行的動作”可以是匿名的PL/SQL塊(可只由單條SQL語句構成)、PL/SQL存儲過程(可調用Java存儲過程或外部過程),或在服務器的文件系統中存儲的任何可執行文件(既可以是二進制可執行文件,也可以是shell腳本)。特別強大的功能(超出了OCP課程的範圍)是遠程外部作業,該作業在一台單獨的機器上運行。“執行動作的時間”指定了啓動作業時的時間戳以及用於今後運行的重複時間間隔,或是觸發事件。
創建作業時可以使用多個選項,可以從DBMS SCHEDULE·CREATE JOB過程中看到這些選項。這個過程被重載,它至少具有6種形式。圖21—1為DBMS SC髒DuLE包的DESCRIBE的部分輸出,顯示了CREATE JOB的前兩種形式。
CREATE_JOB過程的輸出行 CREATE_JOB過程的輸出行
CREATE JOB過程的所有形式都必須指定JOB NAME。在創建該作業的模式內,這個作業名必須是唯一的。注意,作業是模式對象。接着,在CREATE JOB過程的第一種形式中,JOB TYPE必須是如下值之一:
·PLSQL BLOCK:一個匿名的PL/SOL塊
·STORED PROCEDURE:一個命名的PL/SQL過程
·EXECUTABLE:在操作系統提示行上的任何可執行程序
·CHAIN:一個命名的作業鏈對象
·E×TERNAL SCRIPT:操作系統的命令解釋器啓動的腳本
·SQL SCRIPT:一個SQL*Pius腳本
·BACKUP SCRIPT:一個RMAN腳本
JOB ACTION是要運行的命令、腳本或鏈。NUMBER OF ARGUMENTS參數指定了JOB ACTION應當接受的參數數量。
如上圖所示,CREATE JOB過程的第一種形式中的其他參數繼續詳細説明了運行作業的時間與頻率。START DATE指定了第一次執行作業的時間;REPEAT INTERVAL定義了在到達END DATE所指定時間之前重複執行作業的頻率(如每天執行一次)。JOB CLASS與優先權有關,並且集成調度程序與Resource Manager。ENABLED參數決定是否真正運行指定的作業。你可能會感到意外的是:這個參數默認設置為FALSE。如果在這個參數未被設置為TRUE的情況下創建某個作業,那麼該作業只有先啓用才能運行(手動運行或者通過某個調度程序運行)。最後,AUTO DROP控制是否在到達END TIME指定的時間之後刪除作業定義,這個參數默認為TRUE。如果不使用任何調度信息創建某個作業,那麼這個作業只要一啓用就能運行。如果AUTO DROP參數採用默認的設置TRUE,那麼在到達END TIME指定的時間之後就會立即刪除這個作業。
2.程序
程序(program)在作業與其將要執行的動作之間提供了一個抽象層。程序是使用DBMSSCHEDULER.CREATE PROGRAM過程創建的。通過從作業定義中取出作業內容並在程序中加以定義,就可以在不同的作業中引用相同的程序,從而不必進行多次定義,就可以將它與不同的時間表和作業類關聯在一起。需要記
住的是:就作業而言,只有啓用程序才能使用它。默認是不啓用。
3.時間表
時間表(schedule)是指定作業運行時間與頻率的規範。時間表的基本原理是從作業中取出執行作業的時間,然後將其與不同的作業關聯。時間表是使用DBMS—SCHEDULER.CREATE—SCHEDULE過程創建的。START DATE默認為當前的日期與時間,這是與時間表關聯的任何作業的運行時間。REPEAT INTERVAL指定了在到達END DATE所表示時問之前作業應當運行的頻率。沒有設置END DATE的時間表將會一直運行。
REPEAT INTERVAL參數可以接受多種曆法表達式。這些曆法表達式由三種元素組成:頻率、時間間隔(默認為1)以及一些説明符。其中,頻率可以為下列值之一:
● YEARLY
● MONTHLY
● WEEKLY
● DAILY
● HOURLY
● MINUTELY
● SECONDLY
説明符可以為下列值之一:
● BYMONTH
● BYWEEKNO
● BYYEARDAY
● BYMONTHDAY
● BYHOUR
●BYMINUTE
●BYSECOND [3] 

調度程序相關短句

1、An addition to the dispatcher that determines which task is toexe cute next.
一種附加調度程序,它確定下一個要執行的任務。
2、Aroutine that controls the order in which in putand out put devicesobta in access to the processing system.
調度程序控制命令的例行程序,由它控制輸入和輸出裝置從而到達處理系統。
3、In soft wareengineering,abasic part of a system or program.For example,the scheduler or supervis or of anoperating system.
軟件工程中,系統或程序的基本部分。例如,操作系統中的調度程序或管理程序。
4、Aqueue of new messages (or agroup) with in a system that area waiting processing.The main scheduling routine will scan the malong with other queuesand order them in to processing in order.
在系統中等待處理的一組或一隊列新信息,主調度程序對該隊列及其它隊列進行掃描,使之順序進入處理狀態。
5、InDPCX,aforward-chainedlist of all threads added to apriority level since that level' sscheduler last refer redtoits queues.
在分佈式處理控制執行程序(dpcx)中,自從一個優先級的調度程序最後一次查閲它的隊列以來所添加到這個優先級上的所有線程的一個正向鏈接表。
6、The program in an operating system,or another function alunit,the purpose of which is to dispatch.
操作系統或其它功能單元中起調度作用的程序。
7、acrane formoving material with dispatch as in loading an dunloading ships.
在裝卸船上調度物質的起重機。
8、procedure of tax payment
納税程序
9、The force the reassembled was trivial compared with the Danish horde.
他調度的軍隊與丹麥的烏合之眾相比是微不足道的。
參考資料
  • 1.    (美)布萊拉,(美)羅尼著.Oracle Database 12c完全參考手冊 第7版. 北京:清華大學出版社, 2015.04 :753
  • 2.    林樹澤,盧芬,楊亞琦編.Oracle DBA基礎教程.北京:清華大學出版社 ,2016.03 :288~289
  • 3.    OCA/OCP認證考試指南全冊 第3版.(美)John.北京:清華大學出版社,2016.04 :563~567