亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種清理數(shù)據(jù)庫歷史數(shù)據(jù)的方法和系統(tǒng)的制作方法

文檔序號:6435793閱讀:454來源:國知局
專利名稱:一種清理數(shù)據(jù)庫歷史數(shù)據(jù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本申請涉及數(shù)據(jù)庫管理技術(shù),尤其是涉及一種清理數(shù)據(jù)庫歷史數(shù)據(jù)的方法和系統(tǒng)。
背景技術(shù)
隨著計算機及網(wǎng)絡(luò)的技術(shù)不斷發(fā)展,通過計算機處理的數(shù)據(jù)的量和業(yè)務(wù)種類也是越來越多,為了更好地提高用戶感受到對數(shù)據(jù)的處理效率,以更好地實現(xiàn)對業(yè)務(wù)的處理,數(shù)據(jù)庫就應(yīng)運而生了。但是,隨著計算機業(yè)務(wù)及網(wǎng)絡(luò)的更進一步發(fā)展,有了很多基于網(wǎng)絡(luò)的新業(yè)務(wù)出現(xiàn),如網(wǎng)絡(luò)購物,網(wǎng)絡(luò)視頻點播等;隨著新業(yè)務(wù)的不斷增加,數(shù)據(jù)庫變得越來越龐大,就產(chǎn)生了很多技術(shù)問題,如所述數(shù)據(jù)庫中的數(shù)據(jù)庫表的訪問效率明顯下降,導(dǎo)致外層應(yīng)用的訪問效率非常差,訪問時間急劇上升,用戶體驗下降等。為此,在現(xiàn)有技術(shù)中提出了水平拆分?jǐn)?shù)據(jù)庫的方案,通過所述方案,可以將一個數(shù)據(jù)庫拆分成2個或2個以上的子數(shù)據(jù)庫,如按水平維度,將personal DB (Data-Base,數(shù)據(jù)庫),根據(jù)用戶id拆分成100個DB。拆分?jǐn)?shù)據(jù)庫的方案雖然在一定程度上克服了只有一個數(shù)據(jù)庫的技術(shù)缺陷,如因數(shù)據(jù)庫容量特別大而導(dǎo)致的所述數(shù)據(jù)庫中的數(shù)據(jù)庫表的訪問效率明顯下降,導(dǎo)致外層應(yīng)用的訪問效率非常差的技術(shù)問題。但是,在所述方案中,也存在很多技術(shù)問題,如后期維護成本高,維護不方便等,尤其地,當(dāng)需要對所述子數(shù)據(jù)庫進行數(shù)據(jù)清理時,因為所述方案中都是由人工來實現(xiàn),沒有采用有效的機制和技術(shù)手段來自動地進行數(shù)據(jù)清理,所以本發(fā)明人發(fā)現(xiàn)上述現(xiàn)有技術(shù)方案中至少存在如下問題1.由于沒有采用有效的機制和技術(shù)手段來自動地進行數(shù)據(jù)清理,從而導(dǎo)致對子數(shù)據(jù)庫進行數(shù)據(jù)清理時,效率不高,容易遺漏清理任務(wù)的問題;2.由于清理上無時間控制,所以,會經(jīng)常對所述數(shù)據(jù)庫中的處于工作狀態(tài)的業(yè)務(wù)造成很大影響。3.由于不針對于數(shù)據(jù)庫集群,對于拆分?jǐn)?shù)據(jù)庫后,各子數(shù)據(jù)庫自身的數(shù)據(jù)會發(fā)生變化,如果原來設(shè)定的清理條件不變,就導(dǎo)致對子數(shù)據(jù)庫的清理工作無法進行,此時,就需要修改清理條件,給維護帶來很大的難度和麻煩。

發(fā)明內(nèi)容
本申請實施例提供一種清理數(shù)據(jù)庫歷史數(shù)據(jù)的方法和系統(tǒng),用于提高數(shù)據(jù)清理的效率;進一步,實現(xiàn)了異常自動恢復(fù)和個性化指定清理,解決了現(xiàn)有技術(shù)中清理失敗時不能進行異常自動恢復(fù)清理及不能支持特殊需求的清理的問題。本發(fā)明通過一個或多個實施例提供的一種清理數(shù)據(jù)庫歷史數(shù)據(jù)的方法,該方法具體包括如下步驟
從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù),該數(shù)據(jù)清理任務(wù)中包括需要清理的歷史數(shù)據(jù)索引信息,該數(shù)據(jù)庫被劃分為至少兩個子數(shù)據(jù)庫,且至少兩個子數(shù)據(jù)中的每一個子數(shù)據(jù)庫對應(yīng)每一個子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列;根據(jù)獲取的數(shù)據(jù)清理任務(wù)中的歷史數(shù)據(jù)索引信息,清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)??蛇x的,從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù),具體包括從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取任務(wù)狀態(tài)為未完成狀態(tài)的數(shù)據(jù)清理任務(wù);以及根據(jù)未完成狀態(tài)的數(shù)據(jù)清理任務(wù)的歷史數(shù)據(jù)索引信息,成功清理子數(shù)據(jù)庫中未完成狀態(tài)的數(shù)據(jù)清理任務(wù)的歷史數(shù)據(jù)后,將數(shù)據(jù)清理任務(wù)狀態(tài)設(shè)置為清理成功狀態(tài)。可選的,未完成狀態(tài)的數(shù)據(jù)清理任務(wù)中至少包括以下一種具體狀態(tài)的任務(wù),具體為初始狀態(tài)的任務(wù)、異常中止?fàn)顟B(tài)的任務(wù)或清理失敗狀態(tài)的任務(wù)。其中,所述初始狀態(tài)的任務(wù)為,從未清理過的任務(wù);所述異常中止?fàn)顟B(tài)的任務(wù)為,上一次清理所述未完成狀態(tài)的數(shù)據(jù)清理任務(wù)過程中,由于其歷史數(shù)據(jù)的非數(shù)據(jù)性錯誤而造成清理過程異常中止時,設(shè)置數(shù)據(jù)清理任務(wù)狀態(tài)為異常中止?fàn)顟B(tài)的任務(wù);所述清理失敗狀態(tài)的任務(wù)為,上一次清理所述未完成狀態(tài)的數(shù)據(jù)清理任務(wù)過程中,由于其歷史數(shù)據(jù)本身的數(shù)據(jù)性錯誤而導(dǎo)致清理失敗時,設(shè)置數(shù)據(jù)清理任務(wù)狀態(tài)為清理失敗狀態(tài)的任務(wù)。進一步的,根據(jù)獲取的數(shù)據(jù)清理任務(wù)中的歷史數(shù)據(jù)索引信息,清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)后,還包括更新記錄在數(shù)據(jù)庫表中的清理日志,該清理日志包括數(shù)據(jù)清理任務(wù)狀態(tài)和清理時間??蛇x的,所述獲取任務(wù)狀態(tài)為未完成狀態(tài)的數(shù)據(jù)清理任務(wù),具體包括根據(jù)如下兩種未完成的數(shù)據(jù)清理任務(wù)的具體狀態(tài)的優(yōu)先級順序,優(yōu)先獲取具體狀態(tài)的排列順序靠前的數(shù)據(jù)清理任務(wù),并不再執(zhí)行清理失敗狀態(tài)的任務(wù)異常中止?fàn)顟B(tài)的任務(wù)、初始狀態(tài)的任務(wù)??蛇x的,在從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù)之前,具體還包括確認(rèn)當(dāng)前時間符合限定的執(zhí)行清理任務(wù)的時間。進一步的,可以將該數(shù)據(jù)清理任務(wù)劃分為至少包括如下一種任務(wù)查詢子數(shù)據(jù)庫的備數(shù)據(jù)庫的歷史數(shù)據(jù)索引信息,并當(dāng)查詢到滿足限定條件的需要清理的歷史數(shù)據(jù)時建立的第一種歷史數(shù)據(jù)清理任務(wù);根據(jù)用戶在子數(shù)據(jù)庫的備數(shù)據(jù)庫中的歷史數(shù)據(jù)索引信息指定要清理的歷史數(shù)據(jù)建立的第二種歷史數(shù)據(jù)清理任務(wù);該歷史數(shù)據(jù)索引信息為歷史數(shù)據(jù)在備數(shù)據(jù)庫的數(shù)據(jù)字典中的索引信息。進一步的,當(dāng)數(shù)據(jù)清理任務(wù)同時包括第一種歷史數(shù)據(jù)清理任務(wù)和第二種歷史數(shù)據(jù)清理任務(wù)時,所述獲取數(shù)據(jù)清理任務(wù),具體為優(yōu)先獲取第二種歷史數(shù)據(jù)清理任務(wù)。
可選的,根據(jù)所述數(shù)據(jù)清理任務(wù),清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)時,可以為根據(jù)任務(wù)隊列中的歷史數(shù)據(jù)索引信息,以及子數(shù)據(jù)庫和其備數(shù)據(jù)庫的數(shù)據(jù)字典中的數(shù)據(jù)索引信息之間的對應(yīng)關(guān)系,確定歷史數(shù)據(jù)在所述子數(shù)據(jù)庫中的索引信息;并根據(jù)確定的索引信息,查詢并清理所述子數(shù)據(jù)庫中的歷史數(shù)據(jù)。本發(fā)明通過實施例提供一種清理數(shù)據(jù)庫歷史數(shù)據(jù)的系統(tǒng),該系統(tǒng)具體包括獲取單元,用于從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù),該數(shù)據(jù)清理任務(wù)中包括需要清理的歷史數(shù)據(jù)索引信息,該數(shù)據(jù)庫被劃分為至少兩個子數(shù)據(jù)庫,且所述至少兩個子數(shù)據(jù)中的每一個子數(shù)據(jù)庫對應(yīng)每一個子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列;清理單元,用于根據(jù)數(shù)據(jù)清理任務(wù)的歷史數(shù)據(jù)索引信息,清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)。可選的,在獲取單元之前,還可以包括確認(rèn)單元,用于確認(rèn)當(dāng)前時間符合限定的執(zhí)行清理任務(wù)的時間。上述技術(shù)方案中的一個或多個技術(shù)方案,具有如下技術(shù)效果或優(yōu)點之一1、利用任務(wù)隊列,實現(xiàn)對數(shù)據(jù)庫歷史數(shù)據(jù)的清理,解決了現(xiàn)有技術(shù)中由于人工操作導(dǎo)致的效率不高,容易遺漏清理任務(wù)的問題;2、進一步的,由于使用了數(shù)據(jù)庫表來記錄任務(wù),在清理任務(wù)的各階段,不僅根據(jù)具體情況修改了任務(wù)的狀態(tài),并且將任務(wù)清理日期及任務(wù)狀態(tài)記錄到數(shù)據(jù)庫日志表中,所以在非數(shù)據(jù)錯誤的情況下清理失敗時,可以自動選擇上次清理過程中因非數(shù)據(jù)性錯誤而清理失敗的任務(wù),實現(xiàn)了異常自動恢復(fù)和個性化指定清理,解決了現(xiàn)有技術(shù)中清理失敗時不能進行異常自動恢復(fù)清理及不能支持特殊需求的清理的問題。3、因為在清理之前限定了可以執(zhí)行數(shù)據(jù)清理的時間段,所以在利用任務(wù)隊列來實現(xiàn)歷史數(shù)據(jù)的清理時,用戶可以根據(jù)自己的需求,對清理時間窗口作更好的控制,盡量避免在主數(shù)據(jù)庫工作時間進行數(shù)據(jù)清理,從而減少了對主數(shù)據(jù)庫工作狀態(tài)的影響;4、對數(shù)據(jù)清理任務(wù)中的任務(wù)進行分類,對各類任務(wù)中的每一個任務(wù)設(shè)置任務(wù)狀態(tài),且對分類的任務(wù)和任務(wù)狀態(tài)設(shè)置優(yōu)先級,能夠提高數(shù)據(jù)清理的效率,節(jié)省時間;5、由于是根據(jù)子數(shù)據(jù)庫的備數(shù)據(jù)庫中的歷史數(shù)據(jù)索引信息確定歷史數(shù)據(jù)在所述子數(shù)據(jù)庫中的索引信息,并根據(jù)確定的索引信息,查詢并清理所述子數(shù)據(jù)庫中的歷史數(shù)據(jù),對子數(shù)據(jù)庫只有寫操作,對子數(shù)據(jù)庫中正在工作的業(yè)務(wù)影響很??;6、由于任務(wù)隊列中的歷史數(shù)據(jù)索引信息是歷史數(shù)據(jù)在備數(shù)據(jù)庫的數(shù)據(jù)字典中的索引信息,所以在拆分子數(shù)據(jù)庫后,數(shù)據(jù)字典信息也自動發(fā)生改變,清理任務(wù)可以繼續(xù)進行,更不需要擔(dān)心因為修改業(yè)務(wù)邏輯而對維護造成困難的問題。


圖1為本申請實施例一中清理數(shù)據(jù)庫歷史數(shù)據(jù)的步驟流程圖;圖2為本申請實施例一中delete進程清理任務(wù)過程中發(fā)生異常中止情況的流程圖;圖3為本申請實施例一中delete進程清理任務(wù)過程中清理失敗的流程圖4為本申請實施例二中delete進程執(zhí)行流程圖;圖5為本申請清理數(shù)據(jù)庫歷史數(shù)據(jù)的系統(tǒng)的第一實施例框架圖;圖6為本申請清理數(shù)據(jù)庫歷史數(shù)據(jù)的系統(tǒng)的第二實施例框架圖。
具體實施例方式本申請實施例提供一種清理數(shù)據(jù)庫歷史數(shù)據(jù)的方法和系統(tǒng),利用任務(wù)隊列,實現(xiàn)對數(shù)據(jù)庫歷史數(shù)據(jù)的清理,解決了現(xiàn)有技術(shù)中由于人工操作導(dǎo)致的效率不高,容易遺漏清理任務(wù)的問題;進一步,實現(xiàn)了異常自動恢復(fù)和個性化指定清理,解決了現(xiàn)有技術(shù)中清理失敗時不能進行異常自動恢復(fù)清理及不能支持特殊需求的清理的問題。下面結(jié)合各個附圖對本申請實施例技術(shù)方案的主要實現(xiàn)原理具體實施方式
及其對應(yīng)能夠達(dá)到的有益效果進行詳細(xì)地闡述。請參考圖1,本申請實施例一,提供一種清理數(shù)據(jù)庫歷史數(shù)據(jù)的方法,具體步驟如下步驟10,從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù),該數(shù)據(jù)清理任務(wù)中包括需要清理的歷史數(shù)據(jù)索引信息,該數(shù)據(jù)庫被劃分為至少兩個子數(shù)據(jù)庫,且每一個子數(shù)據(jù)庫對應(yīng)每一個子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列;步驟20,根據(jù)獲取的數(shù)據(jù)清理任務(wù)中的歷史數(shù)據(jù)索引信息,清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)。本申請實施例一提供的方法中,每一個子數(shù)據(jù)庫的歷史數(shù)據(jù)清理工作可以用兩個相互獨立的進程init進程和delete進程來實現(xiàn),其中init進程負(fù)責(zé)根據(jù)設(shè)定的數(shù)據(jù)清理條件,從數(shù)據(jù)庫的子數(shù)據(jù)庫中提取出需要清理的歷史數(shù)據(jù)索引信息,每次同批清理的歷史數(shù)據(jù)形成一個數(shù)據(jù)清理任務(wù),并將數(shù)據(jù)清理任務(wù)初始化到為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中;delete進程負(fù)責(zé)從清理任務(wù)隊列中逐個獲取數(shù)據(jù)清理任務(wù),根據(jù)數(shù)據(jù)清理任務(wù)中的歷史數(shù)據(jù)索引信息,清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)。為保證數(shù)據(jù)清理任務(wù)的延續(xù),本申請實施例中進一步將數(shù)據(jù)清理任務(wù)分為兩種狀態(tài),一種是清理成功狀態(tài),另一種是未完成狀態(tài),對于在數(shù)據(jù)清理過程中,無論什么原因發(fā)生中斷導(dǎo)致數(shù)據(jù)清理未完成時,將數(shù)據(jù)清理任務(wù)的狀態(tài)設(shè)置為未完成狀態(tài),從而在下次啟動數(shù)據(jù)清理后可以優(yōu)先處理,以實現(xiàn)數(shù)據(jù)清理任務(wù)的自動恢復(fù)。因此,從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù)時,根據(jù)為每一個數(shù)據(jù)清理任務(wù)設(shè)置的狀態(tài),具體操作包括delete進程從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取任務(wù)狀態(tài)為未完成狀態(tài)的數(shù)據(jù)清理任務(wù);以及根據(jù)所述未完成的數(shù)據(jù)清理任務(wù)的歷史數(shù)據(jù)索引信息,成功清理子數(shù)據(jù)庫中所述未完成狀態(tài)的數(shù)據(jù)清理任務(wù)的歷史數(shù)據(jù)后,將數(shù)據(jù)清理任務(wù)狀態(tài)設(shè)置為清理成功狀態(tài)(success)。由于未完成狀態(tài)的數(shù)據(jù)清理任務(wù)可能不同原因?qū)е碌?,例如初始未?zhí)行過的任務(wù)、執(zhí)行過程中異常中止的任務(wù),以及最終無法完成的任務(wù)等,本申請實施例中再進一步將未完成的數(shù)據(jù)清理任務(wù)分為如下三種具體狀態(tài)初始狀態(tài)的任務(wù)(init)、異常中止?fàn)顟B(tài)的任務(wù)(updating)和清理失敗狀態(tài)的任務(wù)(fail)ο其中,初始狀態(tài)的任務(wù)為,利用init進程將產(chǎn)生的任務(wù)初始化到數(shù)據(jù)清理任務(wù)隊列中從未清理過的任務(wù);異常中止?fàn)顟B(tài)的任務(wù)為,上一次清理所述未完成狀態(tài)的數(shù)據(jù)清理任務(wù)過程中,由于其歷史數(shù)據(jù)的非數(shù)據(jù)性錯誤而造成清理過程異常中止時,設(shè)置數(shù)據(jù)清理任務(wù)狀態(tài)為異常中止?fàn)顟B(tài)的任務(wù);清理失敗狀態(tài)的任務(wù)為,上一次清理所述未完成狀態(tài)的數(shù)據(jù)清理任務(wù)過程中,由于其歷史數(shù)據(jù)本身的數(shù)據(jù)性錯誤而導(dǎo)致清理失敗時,設(shè)置數(shù)據(jù)清理任務(wù)狀態(tài)為清理失敗狀態(tài)的任務(wù)。如圖2所示,為delete進程清理任務(wù)中發(fā)生程序異常中止的流程示意圖,例如,delete進程啟動時,選擇數(shù)據(jù)清理任務(wù)中一個未完成狀態(tài)的任務(wù)進行清理,當(dāng)任務(wù)正在執(zhí)行時,處理過程中若發(fā)生系統(tǒng)異常,如斷電,down機,網(wǎng)絡(luò)異常等因非數(shù)據(jù)型錯誤而導(dǎo)致程序異常中止,將該任務(wù)的未完成狀態(tài)設(shè)置成updating狀態(tài),且updating狀態(tài)是該任務(wù)的最終狀態(tài)。如圖3所示,為delete進程清理任務(wù)過程中清理失敗的流程圖,例如,delete進程啟動時,選擇數(shù)據(jù)清理任務(wù)中一個未完成狀態(tài)的任務(wù)進行清理,如果因為數(shù)據(jù)本身的原因而導(dǎo)致處理失敗,將該任務(wù)的未完成狀態(tài)設(shè)置成fail狀態(tài),由于fail狀態(tài)的數(shù)據(jù)清理任務(wù)可能永遠(yuǎn)無法成功執(zhí)行,因此也可以是在嘗試設(shè)定次數(shù),例如三次或四次后再將任務(wù)的未完成狀態(tài)設(shè)置成fal狀態(tài)。本申請實施例中,可以將設(shè)置的數(shù)據(jù)清理任務(wù)狀態(tài)和清理時間記錄到數(shù)據(jù)庫日志表中。例如,將任務(wù)狀態(tài)為updating狀態(tài)以及清理時間為2011-07-2310:38:49,fail狀態(tài)以及清理時間為2011-07-23 10:38:50記錄到數(shù)據(jù)庫日志表中,在下次清理開始時,重新獲取記錄在數(shù)據(jù)庫日志表中的任務(wù)進行清理。綜上實施例一所述的多種方法,由于使用了數(shù)據(jù)庫表來記錄任務(wù),在清理任務(wù)的各階段,不僅根據(jù)具體情況修改了任務(wù)的狀態(tài),并且將任務(wù)清理日期及任務(wù)狀態(tài)記錄到數(shù)據(jù)庫日志表中,所以在非數(shù)據(jù)錯誤的情況下清理失敗時,在下次delete進程啟動時,可以自動選擇上次清理過程中因非數(shù)據(jù)性錯誤而清理失敗的任務(wù),自動恢復(fù)清理。本申請實施例二,為了能夠更好的控制清理的時間,減少對工作時間的影響,可以為數(shù)據(jù)清理任務(wù)設(shè)定特定的執(zhí)行時間,例如夜間。因此從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù)之前,具體還包括確認(rèn)當(dāng)前時間符合限定的執(zhí)行清理任務(wù)的時間,該限定的執(zhí)行清理任務(wù)的時間可以是系統(tǒng)默認(rèn)的清理時間,也可以是根據(jù)用戶自己實際清理需要而設(shè)置的清理時間。例如,當(dāng)前時間為2011-07-28 22:35,用戶限定的清理時間為2011-07-2822:30到2011-07-28 23:00,可以看出當(dāng)前時間在限定的清理時間范圍內(nèi),那么就可以從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù),并根據(jù)獲取的數(shù)據(jù)清理任務(wù)中的歷史數(shù)據(jù)索引信息,清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)。從本發(fā)明實施例二提供的方法可以知道,因為在清理之前確認(rèn)了當(dāng)前時間是否符合了限定的執(zhí)行清理任務(wù)的時間,所以在利用任務(wù)隊列來實現(xiàn)歷史數(shù)據(jù)的清理時,用戶可以根據(jù)自己的需求,對清理時間窗口作更好的控制。本申請實施例三,根據(jù)前述三種狀態(tài),為進一步提高歷史數(shù)據(jù)的清理效率,按照三種狀態(tài)的如下排序,優(yōu)先獲取狀態(tài)排序在前的任務(wù)異常中止?fàn)顟B(tài)和初始狀態(tài),不再處理fail狀態(tài)的任務(wù),從而優(yōu)先恢復(fù)處理異常中止的任務(wù)。例如,當(dāng)數(shù)據(jù)清理任務(wù)中有異常中止?fàn)顟B(tài)的任務(wù)(updating)和初始狀態(tài)的任務(wù)(init)時,delete進程優(yōu)先獲取具體狀態(tài)為異常中止?fàn)顟B(tài)的任務(wù)(updating)進行清理,直到清理完成所有具體狀態(tài)為異常中止?fàn)顟B(tài)(updating)的任務(wù),再獲取具體狀態(tài)為初始狀態(tài)(init)的任務(wù)進行清理,對于已經(jīng)設(shè)定為清理失敗狀態(tài)(fail)的任務(wù),不再進行清理。如圖4所不,為實施例二中delete進程執(zhí)行流程圖,直到獲取的任務(wù)都清理完成或者當(dāng)前時間不符合限定的執(zhí)行清理任務(wù)的時間,那么delete進程才結(jié)束。由本申請實施例三可以看出,對未完成狀態(tài)的任務(wù)又劃分為三種狀態(tài)的任務(wù)并對這三種狀態(tài)的任務(wù)設(shè)置優(yōu)先級,可以提高數(shù)據(jù)清理的工作效率,具體理由如下異常中止?fàn)顟B(tài)的任務(wù)是在上一次清理過程中由于系統(tǒng)異常,如斷電等情況導(dǎo)致任務(wù)清理失敗,所以在delete進程再次啟動時,優(yōu)先去獲取該狀態(tài)的任務(wù)并重新清理,這樣不會遺漏掉上次沒有清理成功的任務(wù);而清理失敗的任務(wù)是在上一次清理過程中由于數(shù)據(jù)本身的原因而導(dǎo)致任務(wù)清理失敗,可以知道該狀態(tài)的任務(wù)很難清理成功,所以最后選擇該狀態(tài)的任務(wù)進行清理,以免浪費時間清理卻沒有清理成功。而為了能夠使數(shù)據(jù)清理任務(wù)的設(shè)定更加多元化,本申請實施例四將數(shù)據(jù)清理任務(wù)還可以包括根據(jù)設(shè)定條件自動生成的任務(wù),和指定的任務(wù),一般可以對這兩種類型的任務(wù)設(shè)定優(yōu)先級,例如優(yōu)先處理指定任務(wù)等,具體的查詢子數(shù)據(jù)庫的備數(shù)據(jù)庫的歷史數(shù)據(jù)索引信息,并當(dāng)查詢到滿足限定條件的需要清理的歷史數(shù)據(jù)時建立的第一種歷史數(shù)據(jù)清理任務(wù);根據(jù)用戶在子數(shù)據(jù)庫的備數(shù)據(jù)庫中的歷史數(shù)據(jù)索引信息指定要清理的歷史數(shù)據(jù)建立的第二種歷史數(shù)據(jù)清理任務(wù);該歷史數(shù)據(jù)索引信息為歷史數(shù)據(jù)在備數(shù)據(jù)庫的數(shù)據(jù)字典中的索引信息;其中,當(dāng)數(shù)據(jù)清理任務(wù)同時包括第一種歷史數(shù)據(jù)清理任務(wù)和第二種歷史數(shù)據(jù)清理任務(wù)時,優(yōu)先獲取第二種歷史數(shù)據(jù)清理任務(wù)。為減少對主數(shù)據(jù)庫的訪問,可以利用備數(shù)據(jù)庫生成數(shù)據(jù)清理任務(wù),這樣在根據(jù)獲得的數(shù)據(jù)清理任務(wù),清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)時,是首先根據(jù)任務(wù)隊列中的歷史數(shù)據(jù)索引信息,以及子數(shù)據(jù)庫和其備數(shù)據(jù)庫的數(shù)據(jù)字典中的數(shù)據(jù)索引信息之間的對應(yīng)關(guān)系,確定歷史數(shù)據(jù)在所述子數(shù)據(jù)庫中的索引信息;并根據(jù)確定的索引信息,查詢并清理所述子數(shù)據(jù)庫中的歷史數(shù)據(jù)。在實際應(yīng)用中,綜上所述的一個或多個實施例還可以得到以下有益技術(shù)效果由于是根據(jù)子數(shù)據(jù)庫的備數(shù)據(jù)庫中的歷史數(shù)據(jù)索引信息確定歷史數(shù)據(jù)在子數(shù)據(jù)庫中的索引信息,并根據(jù)確定的索引信息,查詢并清理子數(shù)據(jù)庫中的歷史數(shù)據(jù),對子數(shù)據(jù)庫只有寫操作,對子數(shù)據(jù)庫中正在工作的業(yè)務(wù)影響很?。?br> 由于任務(wù)隊列中的歷史數(shù)據(jù)索引信息是歷史數(shù)據(jù)在備數(shù)據(jù)庫的數(shù)據(jù)字典中的索引信息,所以在拆分子數(shù)據(jù)庫后,數(shù)據(jù)字典信息也自動發(fā)生改變,清理任務(wù)可以繼續(xù)進行,進而不需要擔(dān)心因為修改業(yè)務(wù)邏輯而對維護造成困難的問題。所述歷史數(shù)據(jù)索引信息可以通過很多種形式來呈現(xiàn),如表,純文字等。例如,如原子數(shù)據(jù)庫A中包含了 TEST_00,TEST01...TEST_19共20份表,則子數(shù)據(jù)庫A的備數(shù)據(jù)庫A’的數(shù)據(jù)字典中保存了以下信息TEST_00TEST_01......TEST_19將子數(shù)據(jù)庫A拆分為2個子數(shù)據(jù)庫A1和A2,則備數(shù)據(jù)庫Al的數(shù)據(jù)字典中包含TEST_00TEST_01......TEST_09備數(shù)據(jù)庫A2的數(shù)據(jù)字典中包含TEST_10TEST_11......TEST_19,其對應(yīng)關(guān)系并不會因為拆分而導(dǎo)致數(shù)據(jù)字典信息發(fā)生改變,所以不需要修改業(yè)務(wù)邏輯,不會影響后期維護;因為使用了數(shù)據(jù)庫表來記錄任務(wù),清理任務(wù)從數(shù)據(jù)字典中收集,所以可以用戶指定清理,可以執(zhí)行任意需求的清理工作,靈活性上得到更大的提升。例如,默認(rèn)需要清理實施例四中子數(shù)據(jù)庫A2庫中的TEST_00 test_oi......TEST_09共9個庫默認(rèn)一年前的數(shù)據(jù),當(dāng)用戶需要清理TEST_02庫最近2011年6,7月的數(shù)據(jù)時,可以手工的插入兩條記錄TEST_02 2011-06TEST_02 2011-07這兩個月的數(shù)據(jù)即可進行清理。如圖5所示,為本發(fā)明清理數(shù)據(jù)庫歷史數(shù)據(jù)的第一實施例系統(tǒng)框架圖,本申請?zhí)峁┮环N清理數(shù)據(jù)庫歷史數(shù)據(jù)的系統(tǒng),具體包括獲取單元501,用于從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù),所述數(shù)據(jù)清理任務(wù)中包括需要清理的歷史數(shù)據(jù)索引信息,所述數(shù)據(jù)庫被劃分為至少兩個子數(shù)據(jù)庫,且所述至少兩個子數(shù)據(jù)中的每一個子數(shù)據(jù)庫對應(yīng)每一個子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列;
清理單元502,用于根據(jù)所述數(shù)據(jù)清理任務(wù)的歷史數(shù)據(jù)索引信息,清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)。如圖6所示,為本發(fā)明清理數(shù)據(jù)庫歷史數(shù)據(jù)的第二實施例系統(tǒng)框架圖,本基于第一實施例的清理數(shù)據(jù)庫歷史數(shù)據(jù)的系統(tǒng),為了能夠更好的控制清理時間,在獲取單元502之前,還可以包括確認(rèn)單元601,用于確認(rèn)當(dāng)前時間符合限定的執(zhí)行清理任務(wù)的時間。本發(fā)明所設(shè)計的方法,可以使用任何計算機語言實現(xiàn),且對于軟件與硬件沒有特殊要求。盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種清理數(shù)據(jù)庫歷史數(shù)據(jù)的方法,其特征在于,包括如下步驟 從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù),所述數(shù)據(jù)清理任務(wù)中包括需要清理的歷史數(shù)據(jù)索引信息,所述數(shù)據(jù)庫被劃分為至少兩個子數(shù)據(jù)庫,且所述至少兩個子數(shù)據(jù)庫中的每一個子數(shù)據(jù)庫對應(yīng)每一個子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列; 根據(jù)獲取的數(shù)據(jù)清理任務(wù)中的歷史數(shù)據(jù)索引信息,清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù),具體包括 從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取任務(wù)狀態(tài)為未完成狀態(tài)的數(shù)據(jù)清理任務(wù);以及 根據(jù)所述未完成的數(shù)據(jù)清理任務(wù)的歷史數(shù)據(jù)索引信息,成功清理子數(shù)據(jù)庫中所述未完成狀態(tài)的數(shù)據(jù)清理任務(wù)的歷史數(shù)據(jù)后,將數(shù)據(jù)清理任務(wù)狀態(tài)設(shè)置為清理成功狀態(tài)。
3.如權(quán)利要求2所述的方法,其特征在于,所述未完成的數(shù)據(jù)清理任務(wù)中至少包括以下一種具體狀態(tài)的任務(wù),具體為 初始狀態(tài)的任務(wù)、異常中止?fàn)顟B(tài)的任務(wù)或清理失敗狀態(tài)的任務(wù)。
4.如權(quán)利要求3所述的方法,其特征在于,所述初始狀態(tài)的任務(wù)為,從未清理過的任務(wù); 所述異常中止?fàn)顟B(tài)的任務(wù)為,上一次清理所述未完成狀態(tài)的數(shù)據(jù)清理任務(wù)過程中,由于其歷史數(shù)據(jù)的非數(shù)據(jù)性錯誤而造成清理過程異常中止時,設(shè)置數(shù)據(jù)清理任務(wù)狀態(tài)為異常中止?fàn)顟B(tài)的任務(wù); 所述清理失敗狀態(tài)的任務(wù)為,上一次清理所述未完成狀態(tài)的數(shù)據(jù)清理任務(wù)過程中,由于其歷史數(shù)據(jù)本身的數(shù)據(jù)性錯誤而導(dǎo)致清理失敗時,設(shè)置數(shù)據(jù)清理任務(wù)狀態(tài)為清理失敗狀態(tài)的任務(wù)。
5.如權(quán)利要求2 4任一所述的方法,其特征在于,根據(jù)獲取的數(shù)據(jù)清理任務(wù)中的歷史數(shù)據(jù)索引信息,清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)后,還包括更新記錄在數(shù)據(jù)庫表中的清理日志,所述清理日志包括數(shù)據(jù)清理任務(wù)狀態(tài)和清理時間。
6.如權(quán)利要求3所述的方法,其特征在于,所述獲取任務(wù)狀態(tài)為未完成狀態(tài)的數(shù)據(jù)清理任務(wù),具體包括 根據(jù)如下兩種未完成的數(shù)據(jù)清理任務(wù)的具體狀態(tài)的優(yōu)先級順序,優(yōu)先獲取具體狀態(tài)的排列順序靠前的數(shù)據(jù)清理任務(wù),并不再執(zhí)行清理失敗狀態(tài)的任務(wù)異常中止?fàn)顟B(tài)的任務(wù)、初始狀態(tài)的任務(wù)。
7.如權(quán)利要求1 4或6任一所述的方法,其特征在于,所述從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù)之前,具體還包括 確認(rèn)當(dāng)前時間符合限定的執(zhí)行清理任務(wù)的時間。
8.如權(quán)利要求1 4或6任一所述的方法,其特征在于,所述數(shù)據(jù)清理任務(wù)至少包括如下一種 查詢子數(shù)據(jù)庫的備數(shù)據(jù)庫的歷史數(shù)據(jù)索引信息,并當(dāng)查詢到滿足限定條件的需要清理的歷史數(shù)據(jù)時建立的第一種歷史數(shù)據(jù)清理任務(wù);根據(jù)用戶在子數(shù)據(jù)庫的備數(shù)據(jù)庫中的歷史數(shù)據(jù)索引信息指定要清理的歷史數(shù)據(jù)建立的第二種歷史數(shù)據(jù)清理任務(wù); 所述歷史數(shù)據(jù)索引信息為歷史數(shù)據(jù)在備數(shù)據(jù)庫的數(shù)據(jù)字典中的索引信息。
9.如權(quán)利要求8所述的方法,其特征在于,當(dāng)數(shù)據(jù)清理任務(wù)同時包括第一種歷史數(shù)據(jù)清理任務(wù)和第二種歷史數(shù)據(jù)清理任務(wù)時,所述獲取數(shù)據(jù)清理任務(wù),具體為優(yōu)先獲取第二種歷史數(shù)據(jù)清理任務(wù)。
10.如權(quán)利要求8所述的方法,其特征在于,所述根據(jù)所述數(shù)據(jù)清理任務(wù),清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù),具體為 根據(jù)任務(wù)隊列中的歷史數(shù)據(jù)索引信息,以及子數(shù)據(jù)庫和其備數(shù)據(jù)庫的數(shù)據(jù)字典中的數(shù)據(jù)索引信息之間的對應(yīng)關(guān)系,確定歷史數(shù)據(jù)在所述子數(shù)據(jù)庫中的索引信息;并 根據(jù)確定的索弓I信息,查詢并清理所述子數(shù)據(jù)庫中的歷史數(shù)據(jù)。
11.一種清理數(shù)據(jù)庫歷史數(shù)據(jù)的系統(tǒng),其特征在于,包括 獲取單元,用于從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù),所述數(shù)據(jù)清理任務(wù)中包括需要清理的歷史數(shù)據(jù)索引信息,所述數(shù)據(jù)庫被劃分為至少兩個子數(shù)據(jù)庫,且所述至少兩個子數(shù)據(jù)庫中的每一個子數(shù)據(jù)庫對應(yīng)每一個子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列; 清理單元,用于根據(jù)所述數(shù)據(jù)清理任務(wù)的歷史數(shù)據(jù)索引信息,清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述獲取單元,具體用于從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取任務(wù)狀態(tài)為未完成狀態(tài)的數(shù)據(jù)清理任務(wù);以及根據(jù)所述未完成的數(shù)據(jù)清理任務(wù)的歷史數(shù)據(jù)索引信息,成功清理子數(shù)據(jù)庫中所述未完成狀態(tài)的數(shù)據(jù)清理任務(wù)的歷史數(shù)據(jù)后,將數(shù)據(jù)清理任務(wù)狀態(tài)設(shè)置為清理成功狀態(tài)。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述未完成的數(shù)據(jù)清理任務(wù)中至少包括以下一種具體狀態(tài)的任務(wù)初始狀態(tài)的任務(wù)、異常中止?fàn)顟B(tài)的任務(wù)或清理失敗狀態(tài)的任務(wù)。
全文摘要
本發(fā)明公開了一種清理數(shù)據(jù)庫歷史數(shù)據(jù)的方法和系統(tǒng),所述方法具體包括如下步驟從為數(shù)據(jù)庫的子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列中,獲取數(shù)據(jù)清理任務(wù),所述數(shù)據(jù)清理任務(wù)中包括需要清理的歷史數(shù)據(jù)索引信息,所述數(shù)據(jù)庫被劃分為至少兩個子數(shù)據(jù)庫,且所述至少兩個子數(shù)據(jù)中的每一個子數(shù)據(jù)庫對應(yīng)每一個子數(shù)據(jù)庫建立的數(shù)據(jù)清理任務(wù)隊列;根據(jù)獲取的數(shù)據(jù)清理任務(wù)中的歷史數(shù)據(jù)索引信息,清理子數(shù)據(jù)庫中需要清理的歷史數(shù)據(jù)。通過上述技術(shù)方案,可以提高數(shù)據(jù)清理的效率。
文檔編號G06F17/30GK103064833SQ20111031722
公開日2013年4月24日 申請日期2011年10月18日 優(yōu)先權(quán)日2011年10月18日
發(fā)明者樊振華 申請人:阿里巴巴集團控股有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1