本發(fā)明涉及數(shù)據(jù)庫(kù)存儲(chǔ)領(lǐng)域,尤其涉及一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度方法。
背景技術(shù):
1、當(dāng)前各行各業(yè)的實(shí)際業(yè)務(wù)中,往往需要周期性的數(shù)據(jù),如按季度報(bào)告企業(yè)的盈利情況等。數(shù)據(jù)庫(kù)的存儲(chǔ)過程中封裝了一系列的計(jì)算方法,可以按照需求計(jì)算出相關(guān)的數(shù)據(jù)指標(biāo)。但數(shù)據(jù)庫(kù)軟件并不能自動(dòng)化的定時(shí)調(diào)用存儲(chǔ)過程,即無法定時(shí)的計(jì)算相關(guān)的數(shù)據(jù)指標(biāo)。人工調(diào)用較為繁瑣,無法滿足部分周期性較短的數(shù)據(jù)的時(shí)效性,如每五分鐘同步客戶信息等。
2、crontab定時(shí)工具可以周期性的調(diào)用shell腳本,shell腳本中也可使用sqlplus連接數(shù)據(jù)庫(kù)并使用動(dòng)態(tài)sql執(zhí)行存儲(chǔ)過程?;谝陨霞夹g(shù)背景,可以使用shell腳本將存儲(chǔ)過程自動(dòng)化的調(diào)用,并將調(diào)用過程的統(tǒng)計(jì)信息收集起來,方便后續(xù)維護(hù)使用。
3、當(dāng)前各數(shù)據(jù)庫(kù)中存儲(chǔ)過程的調(diào)用需要每次手工使用call命令執(zhí)行,并不能自動(dòng)化的定時(shí)執(zhí)行,且手工執(zhí)行存儲(chǔ)過程的審計(jì)數(shù)據(jù)往往需要聯(lián)系數(shù)據(jù)庫(kù)管理員才可以查詢,使得開發(fā)人員不能及時(shí)監(jiān)控程序運(yùn)行狀況,獲取審計(jì)數(shù)據(jù)的過程繁瑣,消耗了大量的時(shí)間和精力?;谝陨蠁栴},提出了一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度的方法及工具用于解決這些問題。
4、現(xiàn)有的技術(shù)缺點(diǎn):
5、1)人工調(diào)用存儲(chǔ)過程較為繁瑣,不能自動(dòng)化調(diào)用,徒增了日常工作量;
6、2)無法滿足部分周期性較短的數(shù)據(jù)的時(shí)效性,如每五分鐘同步客戶信息等;
7、3)調(diào)用存儲(chǔ)過程的數(shù)據(jù)庫(kù)審計(jì)數(shù)據(jù)獲取繁瑣,往往需要聯(lián)系數(shù)據(jù)庫(kù)管理員,無法及時(shí)的監(jiān)控存儲(chǔ)過程的運(yùn)行情況。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述問題,提出了本發(fā)明以便提供克服上述問題或者至少部分地解決上述問題的一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度方法。
2、根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度方法,所述調(diào)度方法包括:
3、確認(rèn)定時(shí)調(diào)度任務(wù)重存儲(chǔ)過程的數(shù)量、名稱及先后順序,并配置在數(shù)據(jù)庫(kù)配置表中;
4、shell總調(diào)模塊通過sqlplus登錄oracle數(shù)據(jù)庫(kù)讀取數(shù)據(jù)庫(kù)中的存儲(chǔ)過程配置表信息,將調(diào)用的程序按執(zhí)行順序進(jìn)行排序后遍歷解析;
5、日期翻盤的處理是在數(shù)據(jù)庫(kù)中設(shè)計(jì)一張任務(wù)運(yùn)行時(shí)間表;
6、使用動(dòng)態(tài)sql的execute?immediate命令將上述存儲(chǔ)過程按順序串行化執(zhí)行;
7、配置crontab,將調(diào)度任務(wù)的運(yùn)行頻率、調(diào)用的shell腳本及路徑和腳本運(yùn)行日志及路徑三項(xiàng)內(nèi)容配置在crontab配置文件中。
8、可選的,所述確認(rèn)定時(shí)調(diào)度任務(wù)重存儲(chǔ)過程的數(shù)量、名稱及先后順序,并配置在數(shù)據(jù)庫(kù)配置表中的存儲(chǔ)過程配置表在數(shù)據(jù)庫(kù)中的表頭信息包括:
9、任務(wù)編號(hào)、任務(wù)名稱、執(zhí)行順序、存儲(chǔ)過程中文名稱、存儲(chǔ)過程英文名稱、是否有效、創(chuàng)建時(shí)間及最后修改時(shí)間。
10、可選的,所述shell總調(diào)模塊通過sqlplus登錄oracle數(shù)據(jù)庫(kù)讀取數(shù)據(jù)庫(kù)中的存儲(chǔ)過程配置表信息,將調(diào)用的程序按執(zhí)行順序進(jìn)行排序后遍歷解析之后還包括:將讀取的信息插入數(shù)據(jù)庫(kù)中的運(yùn)行狀態(tài)表。
11、可選的,所述運(yùn)行狀態(tài)表在數(shù)據(jù)庫(kù)中的表頭信息包括:任務(wù)編號(hào)、任務(wù)名稱、任務(wù)日期、執(zhí)行順序、存儲(chǔ)過程中文名稱、存儲(chǔ)過程英文名稱、執(zhí)行開始時(shí)間、執(zhí)行結(jié)束時(shí)間、執(zhí)行狀態(tài)和錯(cuò)誤表述。
12、可選的,所述運(yùn)行時(shí)間表的表頭信息包括:
13、任務(wù)編號(hào)、任務(wù)名稱、任務(wù)日期、本期任務(wù)運(yùn)行狀態(tài)、創(chuàng)建時(shí)間和最后修改時(shí)間。
14、可選的,所述使用動(dòng)態(tài)sql的execute?immediate命令將上述存儲(chǔ)過程按順序串行化執(zhí)行具體包括:
15、存儲(chǔ)過程名稱及入?yún)⒕捎脜?shù)傳入,其中日期參數(shù)為存儲(chǔ)過程配置表中的任務(wù)日期;
16、單個(gè)存儲(chǔ)過程執(zhí)行開始時(shí),向數(shù)據(jù)庫(kù)運(yùn)行狀態(tài)表插入運(yùn)行日志,記錄開始時(shí)間,并將運(yùn)行狀態(tài)打標(biāo)為“p-進(jìn)行中”;
17、待存儲(chǔ)過程成功執(zhí)行結(jié)束后,獲取返回信息,將結(jié)束時(shí)間記錄,并將運(yùn)行狀態(tài)打標(biāo)為“s-成功完成”,任務(wù)運(yùn)行時(shí)間表中的日期加一;
18、若調(diào)用過程中發(fā)生錯(cuò)誤反饋,將運(yùn)行狀態(tài)打標(biāo)為“f-任務(wù)失敗”,并將反饋信息記錄,任務(wù)運(yùn)行時(shí)間表中日期不變。
19、可選的,所述最后修改時(shí)間具體包括:任務(wù)執(zhí)行成功執(zhí)行完成后,日期加一,運(yùn)行失敗,則日期不變。
20、本發(fā)明提供的一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度方法,所述調(diào)度方法包括:確認(rèn)定時(shí)調(diào)度任務(wù)重存儲(chǔ)過程的數(shù)量、名稱及先后順序,并配置在數(shù)據(jù)庫(kù)配置表中;shell總調(diào)模塊通過sqlplus登錄oracle數(shù)據(jù)庫(kù)讀取數(shù)據(jù)庫(kù)中的存儲(chǔ)過程配置表信息,將調(diào)用的程序按執(zhí)行順序進(jìn)行排序后遍歷解析;日期翻盤的處理是在數(shù)據(jù)庫(kù)中設(shè)計(jì)一張任務(wù)運(yùn)行時(shí)間表;使用動(dòng)態(tài)sql的execute?immediate命令將上述存儲(chǔ)過程按順序串行化執(zhí)行;配置crontab,將調(diào)度任務(wù)的運(yùn)行頻率、調(diào)用的shell腳本及路徑和腳本運(yùn)行日志及路徑三項(xiàng)內(nèi)容配置在crontab配置文件中。方便數(shù)據(jù)庫(kù)運(yùn)維人員和開發(fā)人員查詢存儲(chǔ)過程的執(zhí)行情況,同時(shí)減少的日常工作量,滿足了周期性較短數(shù)據(jù)的時(shí)效性。
21、上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
1.一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度方法,其特征在于,所述調(diào)度方法包括:
2.根據(jù)權(quán)利要求1所述的一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度方法,其特征在于,所述確認(rèn)定時(shí)調(diào)度任務(wù)重存儲(chǔ)過程的數(shù)量、名稱及先后順序,并配置在數(shù)據(jù)庫(kù)配置表中的存儲(chǔ)過程配置表在數(shù)據(jù)庫(kù)中的表頭信息包括:
3.根據(jù)權(quán)利要求1所述的一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度方法,其特征在于,所述shell總調(diào)模塊通過sqlplus登錄oracle數(shù)據(jù)庫(kù)讀取數(shù)據(jù)庫(kù)中的存儲(chǔ)過程配置表信息,將調(diào)用的程序按執(zhí)行順序進(jìn)行排序后遍歷解析之后還包括:將讀取的信息插入數(shù)據(jù)庫(kù)中的運(yùn)行狀態(tài)表。
4.根據(jù)權(quán)利要求3所述的一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度方法,其特征在于,所述運(yùn)行狀態(tài)表在數(shù)據(jù)庫(kù)中的表頭信息包括:任務(wù)編號(hào)、任務(wù)名稱、任務(wù)日期、執(zhí)行順序、存儲(chǔ)過程中文名稱、存儲(chǔ)過程英文名稱、執(zhí)行開始時(shí)間、執(zhí)行結(jié)束時(shí)間、執(zhí)行狀態(tài)和錯(cuò)誤表述。
5.根據(jù)權(quán)利要求1所述的一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度方法,其特征在于,所述運(yùn)行時(shí)間表的表頭信息包括:
6.根據(jù)權(quán)利要求1所述的一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度方法,其特征在于,所述使用動(dòng)態(tài)sql的execute?immediate命令將上述存儲(chǔ)過程按順序串行化執(zhí)行具體包括:
7.根據(jù)權(quán)利要求5所述的一種基于crontab自動(dòng)實(shí)現(xiàn)存儲(chǔ)過程調(diào)度方法,其特征在于,所述最后修改時(shí)間具體包括:任務(wù)執(zhí)行成功執(zhí)行完成后,日期加一,運(yùn)行失敗,則日期不變。