動(dòng)態(tài)可擴(kuò)展數(shù)據(jù)庫歸檔方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體上涉及數(shù)據(jù)處理,更具體地,涉及一種動(dòng)態(tài)可擴(kuò)展數(shù)據(jù)庫歸檔方法和系統(tǒng)。
【背景技術(shù)】
[0002]數(shù)據(jù)庫歸檔系統(tǒng)是互聯(lián)網(wǎng)企業(yè)解決日益增長(zhǎng)的海量數(shù)據(jù)的關(guān)鍵。數(shù)據(jù)庫歸檔系統(tǒng)做得不好,可能會(huì)導(dǎo)致企業(yè)網(wǎng)站性能日益下降、用戶流失,甚至?xí)?dǎo)致數(shù)據(jù)丟失,給企業(yè)帶來不可挽回的名譽(yù)和經(jīng)濟(jì)損失?,F(xiàn)在的互聯(lián)網(wǎng)企業(yè)網(wǎng)站訪問量巨大且快速增長(zhǎng),各種各樣的數(shù)據(jù)也急劇增長(zhǎng),給企業(yè)數(shù)據(jù)庫歸檔帶來了巨大挑戰(zhàn)。
[0003]對(duì)于數(shù)據(jù)的歸檔,現(xiàn)有的技術(shù)方案主要有以下幾種:
[0004](1)數(shù)據(jù)庫管理員歸檔:數(shù)據(jù)庫管理員根據(jù)需要?dú)w檔數(shù)據(jù)及業(yè)務(wù)邏輯等人為執(zhí)行歸檔。包括歸檔數(shù)據(jù)的選擇,歸檔的執(zhí)行時(shí)間及歸檔方案等。但是,數(shù)據(jù)管理員雖然熟悉數(shù)據(jù)庫的基本操作,但他對(duì)需要?dú)w檔的數(shù)據(jù)業(yè)務(wù)不熟悉。人為編寫歸檔腳本并執(zhí)行歸檔,有可能導(dǎo)致數(shù)據(jù)的錯(cuò)誤歸檔及丟失。
[0005](2)業(yè)務(wù)應(yīng)用歸檔:業(yè)務(wù)應(yīng)用根據(jù)業(yè)務(wù)要求判斷那些數(shù)據(jù)需要?dú)w檔,然后針對(duì)需要?dú)w檔的數(shù)據(jù)自行實(shí)現(xiàn)歸檔。該方案包括開發(fā)實(shí)現(xiàn)歸檔功能的程序、歸檔時(shí)間的選擇等。這種方案可以一定程度解決對(duì)需要?dú)w檔的數(shù)據(jù)業(yè)務(wù)不熟悉的問題,但每個(gè)業(yè)務(wù)系統(tǒng)都需要自己實(shí)現(xiàn)對(duì)數(shù)據(jù)的歸檔,每個(gè)業(yè)務(wù)系統(tǒng)的實(shí)現(xiàn)都可能不同,無法保證歸檔的統(tǒng)一性。
[0006](3)按時(shí)間歸檔:業(yè)務(wù)系統(tǒng)按照不同的時(shí)間如年、月等,將數(shù)據(jù)存放不同的數(shù)據(jù)庫。這種方案可以解決數(shù)據(jù)歸檔的不統(tǒng)一,也可以由應(yīng)用系統(tǒng)決定歸檔的時(shí)間粒度及數(shù)據(jù)的相關(guān)性。但是,每個(gè)系統(tǒng)都需要有多個(gè)數(shù)據(jù)庫,每個(gè)一段時(shí)間都需要切換數(shù)據(jù)庫。當(dāng)系統(tǒng)多,涉及數(shù)據(jù)庫多時(shí),這樣的操作就很難實(shí)現(xiàn)。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的一個(gè)方面提供了一種動(dòng)態(tài)可擴(kuò)展數(shù)據(jù)庫歸檔方法,用于將歸檔數(shù)據(jù)從原數(shù)據(jù)庫歸檔到目標(biāo)數(shù)據(jù)庫,該方法包括:根據(jù)歸檔任務(wù)啟動(dòng)歸檔線程,歸檔任務(wù)指定歸檔數(shù)據(jù)的原數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫,原數(shù)據(jù)庫是作為歸檔數(shù)據(jù)來源的數(shù)據(jù)庫,目標(biāo)數(shù)據(jù)庫是數(shù)據(jù)要被歸檔到的數(shù)據(jù)庫;查詢?cè)瓟?shù)據(jù)庫中的歸檔數(shù)據(jù),將每一頁歸檔數(shù)據(jù)封裝成一個(gè)拷貝任務(wù)放入拷貝任務(wù)線程池;執(zhí)行拷貝任務(wù)線程池中的拷貝任務(wù),將歸檔數(shù)據(jù)拷貝到目標(biāo)數(shù)據(jù)庫;在每個(gè)拷貝任務(wù)執(zhí)行完成后,將該頁數(shù)據(jù)封裝成一個(gè)刪除任務(wù)放入刪除任務(wù)線程池;以及執(zhí)行刪除線程池中的刪除任務(wù)。
[0008]可選地,該方法還包括:在要對(duì)新的數(shù)據(jù)庫進(jìn)行歸檔時(shí),將該數(shù)據(jù)庫的數(shù)據(jù)源信息添加到歸檔系統(tǒng);以及/或者如果不需要再對(duì)某個(gè)數(shù)據(jù)庫進(jìn)行歸檔,從歸檔系統(tǒng)刪除該數(shù)據(jù)庫的數(shù)據(jù)源信息。
[0009]可選地,數(shù)據(jù)庫的數(shù)據(jù)源信息包括該數(shù)據(jù)庫的IP、用戶名、密碼、表名、和數(shù)據(jù)庫類型。
[0010]可選地,該方法還包括:管理歸檔任務(wù),歸檔任務(wù)還包括以下中的至少一項(xiàng):原表、目標(biāo)表、歸檔執(zhí)行時(shí)間、歸檔執(zhí)行頻率、歸檔條件、以及每次歸檔數(shù)目,其中:原表是存放歸檔數(shù)據(jù)的來源的數(shù)據(jù)庫表;目標(biāo)表是存放歸檔拷貝數(shù)據(jù)的數(shù)據(jù)庫表;歸檔條件指定符合什么條件的數(shù)據(jù)需要?dú)w檔;以及每次歸檔數(shù)目指定每次查詢?cè)紨?shù)據(jù)的分頁大小。
[0011]可選地,管理歸檔任務(wù)包括以下中的至少一項(xiàng):歸檔任務(wù)的維護(hù)、歸檔任務(wù)測(cè)試、歸檔任務(wù)的定時(shí)調(diào)度和歸檔任務(wù)的狀態(tài)控制。
[0012]可選地,該方法還包括:在該歸檔任務(wù)的所有拷貝線程池和刪除線程池執(zhí)行完后,生成報(bào)表數(shù)據(jù),然后將報(bào)表數(shù)據(jù)存入歸檔系統(tǒng)數(shù)據(jù)庫中,該報(bào)表數(shù)據(jù)包括以下中的至少一項(xiàng):該歸檔任務(wù)的執(zhí)行耗時(shí)、歸檔數(shù)量、和每秒歸檔數(shù)量信息。
[0013]可選地,查詢歸檔數(shù)據(jù),將每一頁歸檔數(shù)據(jù)封裝成一個(gè)拷貝任務(wù)放入拷貝任務(wù)線程池包括:根據(jù)歸檔條件查詢歸檔數(shù)據(jù)的數(shù)量和ID范圍,然后根據(jù)ID范圍的限制分頁查詢歸檔數(shù)據(jù),將每一頁歸檔數(shù)據(jù)封裝成一個(gè)拷貝任務(wù)放入拷貝任務(wù)線程池。
[0014]可選地,執(zhí)行拷貝任務(wù)線程池中的拷貝任務(wù)包括:根據(jù)目標(biāo)數(shù)據(jù)庫去重,以防止數(shù)據(jù)被重復(fù)拷貝。
[0015]可選地,該方法還包括:在查詢下一頁歸檔數(shù)據(jù)、放入拷貝任務(wù)線程池和刪除任務(wù)線程池之前,先判斷歸檔任務(wù)的狀態(tài),如果任務(wù)是暫停則等待任務(wù)啟動(dòng),如果是任務(wù)結(jié)束則退出任務(wù)執(zhí)行。
[0016]可選地,該方法還包括:響應(yīng)于用戶查詢,以報(bào)表的形式顯示歸檔報(bào)表數(shù)據(jù)。
[0017]本發(fā)明的另一個(gè)方面提供了一種動(dòng)態(tài)可擴(kuò)展數(shù)據(jù)庫歸檔系統(tǒng),用于將歸檔數(shù)據(jù)從原數(shù)據(jù)庫歸檔到目標(biāo)數(shù)據(jù)庫,該系統(tǒng)包括歸檔執(zhí)行模塊,該模塊包括:用于根據(jù)歸檔任務(wù)啟動(dòng)歸檔線程的裝置,歸檔任務(wù)指定歸檔數(shù)據(jù)的原數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫,原數(shù)據(jù)庫是作為歸檔數(shù)據(jù)來源的數(shù)據(jù)庫,目標(biāo)數(shù)據(jù)庫是數(shù)據(jù)要被歸檔到的數(shù)據(jù)庫;用于查詢?cè)瓟?shù)據(jù)庫中的歸檔數(shù)據(jù),將每一頁歸檔數(shù)據(jù)封裝成一個(gè)拷貝任務(wù)放入拷貝任務(wù)線程池的裝置;用于執(zhí)行拷貝任務(wù)線程池中的拷貝任務(wù),將歸檔數(shù)據(jù)拷貝到目標(biāo)數(shù)據(jù)庫的裝置;用于在每個(gè)拷貝任務(wù)執(zhí)行完成后,將該頁數(shù)據(jù)封裝成一個(gè)刪除任務(wù)放入刪除任務(wù)線程池的裝置;以及用于執(zhí)行刪除線程池中的刪除任務(wù)的裝置。
[0018]可選地,該系統(tǒng)還包括數(shù)據(jù)源模塊,該模塊包括:用于在要對(duì)新的數(shù)據(jù)庫進(jìn)行歸檔時(shí),將該數(shù)據(jù)庫的數(shù)據(jù)源信息添加到歸檔系統(tǒng)的裝置;以及/或者用于如果不需要再對(duì)某個(gè)數(shù)據(jù)庫進(jìn)行歸檔,從歸檔系統(tǒng)刪除該數(shù)據(jù)庫的數(shù)據(jù)源信息的裝置。
[0019]可選地,數(shù)據(jù)庫的數(shù)據(jù)源信息包括該數(shù)據(jù)庫的IP、用戶名、密碼、表名、和數(shù)據(jù)庫類型。
[0020]可選地,該系統(tǒng)還包括歸檔任務(wù)模塊,該模塊包括:用于管理歸檔任務(wù)的裝置,歸檔任務(wù)包括歸檔數(shù)據(jù)的原數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫,并且包括以下中的至少一項(xiàng):原表、目標(biāo)表、歸檔執(zhí)行時(shí)間、歸檔執(zhí)行頻率、歸檔條件、以及每次歸檔數(shù)目,其中:原表是存放歸檔數(shù)據(jù)的來源的數(shù)據(jù)庫表;目標(biāo)表是存放歸檔拷貝數(shù)據(jù)的數(shù)據(jù)庫表;歸檔條件指定符合什么條件的數(shù)據(jù)需要?dú)w檔;以及每次歸檔數(shù)目指定每次查詢?cè)紨?shù)據(jù)的分頁大小。
[0021]可選地,管理歸檔任務(wù)包括以下中的至少一項(xiàng):歸檔任務(wù)的維護(hù)、歸檔任務(wù)測(cè)試、歸檔任務(wù)的定時(shí)調(diào)度和歸檔任務(wù)的狀態(tài)控制。
[0022]可選地,歸檔執(zhí)行模塊還包括:用于在該歸檔任務(wù)的所有拷貝線程池和刪除線程池執(zhí)行完后,生成報(bào)表,然后將報(bào)表存入歸檔系統(tǒng)數(shù)據(jù)庫中的裝置,該報(bào)表包括以下中的至少一項(xiàng):該歸檔任務(wù)的執(zhí)行耗時(shí)、歸檔數(shù)量、和每秒歸檔數(shù)量信息。
[0023]可選地,查詢歸檔數(shù)據(jù),將每一頁歸檔數(shù)據(jù)封裝成一個(gè)拷貝任務(wù)放入拷貝任務(wù)線程池包括:根據(jù)歸檔條件查詢歸檔數(shù)據(jù)的數(shù)量和ID范圍,然后根據(jù)ID范圍的限制分頁查詢歸檔數(shù)據(jù),將每一頁歸檔數(shù)據(jù)封裝成一個(gè)拷貝任務(wù)放入拷貝任務(wù)線程池。
[0024]可選地,執(zhí)行拷貝任務(wù)線程池中的拷貝任務(wù)包括:根據(jù)目標(biāo)數(shù)據(jù)庫去重,以防止數(shù)據(jù)被重復(fù)拷貝。
[0025]可選地,該系統(tǒng)還包括:用于在查詢下一頁歸檔數(shù)據(jù)、放入拷貝任務(wù)線程池和刪除任務(wù)線程池之前,先判斷歸檔任務(wù)的狀態(tài)的裝置,如果任務(wù)是暫停則等待任務(wù)啟動(dòng),如果是任務(wù)結(jié)束則退出任務(wù)執(zhí)行。
[0026]可選地,該系統(tǒng)還包括歸檔報(bào)表模塊,用于:響應(yīng)于用戶查詢,以報(bào)表的形式顯示歸檔報(bào)表數(shù)據(jù)。
【附圖說明】
[0027]為了更完整地理解本發(fā)明及其優(yōu)勢(shì),現(xiàn)在將參考結(jié)合附圖的以下描述,其中:
[0028]圖1示意性示出了根據(jù)本發(fā)明實(shí)施例的動(dòng)態(tài)可擴(kuò)展數(shù)據(jù)庫歸檔系統(tǒng)的結(jié)構(gòu)框圖;以及
[0029]圖2示意性示出了根據(jù)本發(fā)明實(shí)施例的歸檔執(zhí)行模塊的處理流程圖。
【具體實(shí)施方式】
[0030]根據(jù)結(jié)合附圖對(duì)本發(fā)明示例性實(shí)施例的以下詳細(xì)描述,本發(fā)明的