Oracle Scheduler是用來管理和計劃資料庫的Job,通過它可以讓很多常規的資料庫任務自動執行, 減少人為幹預,解放勞動力,本質上來說,它和Linux的crontab,商業任務管理軟體如Autosys, UC4一 樣,只是它們的領域不一樣,Oracle Scheduler專註於Oracle資料庫Job的自動化管理、維護和監控。
本篇是理論篇,介紹Oracle Scheduler的基本概念,Oracle Scheduler的名詞很多,下面一一介紹 :
Program (程式)
Program是指Job執行的對象,如預存程序、PL/SQL塊、外部可執行程式等
Schedule (計劃)
Schedule定義Job什麼時候執行,以及執行的次數,有以下兩種類似的Schedule:
1)基於時間的計劃(Time Schedule)
2)基於事件的計劃(Event Schedule)
Destination (地點)
Destination定義Job執行的地點,有以下兩種:
1)資料庫(Database Destination):表示Job在資料庫裡執行(包含本地和遠端資料庫)
2)外部(External Destination):表示Job在資料庫外執行
這裡有要注意的是:如果Job執行的地點在遠程,則必須把Scheduler Agent安裝在遠程主機上。
File Watcher(檔案看守者)
檔案看守者定義目的地、檔案名稱等屬性,一旦有合格檔案到達便觸發一個事件,啟動Job
Credential (認證)
Credential定義了使用者密碼對,只有通過認證的Job才能啟動,主要有以下兩種認證:
1)遠端資料庫認證
2)外部認證(如作業系統)
Chain (任務鏈)
Chain用於定義一系列Job執行的依賴關係
Window(時間視窗)
時間視窗用於定義一天中的某個時間段內Job的資源分派情況。
Group(組)
一系列相同的對象組成Group,有以下三種Group:
1)Database Destination Group
2)External Destination Group
3)Window Group
Job, Program, Schedule是如何互動的?
上圖顯示了它們之間的關係,同一個Program可以被多個Job調用,同樣地,多個Job可以共用同一個 Schedule