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

一種實(shí)時(shí)數(shù)據(jù)庫(kù)備份恢復(fù)方法_2

文檔序號(hào):8528210閱讀:來(lái)源:國(guó)知局
ATl、日志文件LOGl、備份信息文件BAKINF01以及備份歷史記錄文件BAKHIST1,其中INX1、DAT1、L0G1分別表示一類數(shù)據(jù)集合,可能包含多個(gè)文件。附圖2為離線全量備份的工作流程,即“冷備”過(guò)程,主要針對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)停止?fàn)顟B(tài)下的數(shù)據(jù)備份,其實(shí)質(zhì)為拷貝數(shù)據(jù)文件;附圖3為在線全量備份的工作流程,其實(shí)質(zhì)為對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)加寫鎖進(jìn)行拷貝文件。
[0051]步驟2:k2時(shí)刻,基于全量備份,對(duì)原實(shí)時(shí)數(shù)據(jù)庫(kù)進(jìn)行增量備份,生成增量備份一。假設(shè)增量備份目錄設(shè)為D: \HS-l-1bak,則增量備份一所在的目錄為該目錄下以時(shí)間命名的子目錄:D:\HS-l-1bak\k2,生成的增量文件包括控制文件CTL2、自定義緩存文件ICAHl、自定義數(shù)據(jù)文件IDAT1、日志文件LOG2、備份信息文件BAKINF02以及備份歷史記錄文件BAKHIST2ο
[0052]自定義緩存文件格式如下:
[0053]struct Posit1n—I
[0054]{
[0055]unsigned long long offset ;
[0056]unsigned long long length ;
[0057]};
[0058]Il增備CAH文件的文件頭
[0059]struct CacheHeader
[0060]{
[0061] unsigned long count ;//當(dāng)前已經(jīng)備份的測(cè)點(diǎn)數(shù)
[0062]Posit1n_I pointers [I] ;//當(dāng)前 CacheValueBlock 在 ICAH 文件中對(duì)應(yīng)的文件偏移
[0063]};
[0064]struct CacheValueBlock
[0065]{
[0066]unsigned long id;
[0067]unsigned int type ;///〈測(cè)點(diǎn)類型
[0068]unsigned long count ;///〈值數(shù)目
[0069]DB_Value values [I] ;///〈測(cè)點(diǎn)值數(shù)組
[0070]};
[0071]自定義數(shù)據(jù)文件格式如下:
[0072]struct BufferPointer
[0073]{
[0074]unsigned long file;///〈文件號(hào)
[0075]unsigned long offset ;///〈文件中的偏移量
[0076]};
[0077]//增備文件的文件頭
[0078]struct FileHeaderBlock_bak
[0079]{
[0080]int block_count ;
[0081]BufferPointer block_pointer[BL0CK_C0UNT] ;//原數(shù)據(jù)文件中對(duì)應(yīng)的文件偏移
[0082]int block_type [BL0CK_C0UNT] ;//數(shù)據(jù)類型
[0083]};
[0084]步驟3:同理,分別在k3…k4時(shí)刻,基于上一次增量備份,生成增量備份二…增量備份N。增量備份完畢。
[0085]步驟4:將全量備份中的CTLl與增量備份一中的CTL2進(jìn)行比較,并按照增量數(shù)據(jù)恢復(fù)方案中步驟B進(jìn)行合并,生成新的控制文件CTL3,放在全量備份目錄中,并以全量備份為基礎(chǔ)啟動(dòng)臨時(shí)數(shù)據(jù)庫(kù)DB_T。
[0086]步驟5:順序讀取增量備份一中ICAHl中的緩存數(shù)據(jù)寫入到DB_T ;順序讀取增量備份一中IDATl中的備份數(shù)據(jù)寫入到DB_T中。
[0087]步驟6:讀取增量備份一中L0G2中的刪除記錄,刪除DB_T中的相關(guān)數(shù)據(jù)。關(guān)閉DB_T,完成k2時(shí)刻的數(shù)據(jù)恢復(fù)。
[0088]步驟7:迭代執(zhí)行步驟4-步驟6,完成kf k4時(shí)刻的數(shù)據(jù)恢復(fù)。
[0089]綜上所述,本發(fā)明主要解決了實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)在生產(chǎn)環(huán)境中,在不影響上層應(yīng)用的前提下,安全、穩(wěn)定、高效的數(shù)據(jù)備份以及數(shù)據(jù)恢復(fù)問(wèn)題。包括下列內(nèi)容:實(shí)現(xiàn)一個(gè)備份工具程序,支持實(shí)時(shí)數(shù)據(jù)庫(kù)在離線和在線狀態(tài)下的全量備份,同時(shí)支持?jǐn)?shù)據(jù)庫(kù)在線狀態(tài)下的增量數(shù)據(jù)備份;實(shí)現(xiàn)一個(gè)恢復(fù)工具程序,支持對(duì)備份出來(lái)的文件進(jìn)行整理恢復(fù),確保備份的有效性;采用備份文件塊的方式,提高備份效率,極大減少備份過(guò)程對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)極其應(yīng)用的影響。
[0090]本發(fā)明按照現(xiàn)場(chǎng)項(xiàng)目實(shí)施例進(jìn)行了說(shuō)明,因此凡采用等同替換或等效變換的形式所獲得的技術(shù)方案,均落在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種實(shí)時(shí)數(shù)據(jù)庫(kù)備份恢復(fù)方法,其特征在于: 所述實(shí)時(shí)數(shù)據(jù)庫(kù)備份恢復(fù)方法包括:數(shù)據(jù)庫(kù)停止運(yùn)行狀態(tài)下的離線全量備份及其恢復(fù),主要解決實(shí)時(shí)數(shù)據(jù)庫(kù)停止運(yùn)行情況下的全量備份和全量恢復(fù);數(shù)據(jù)庫(kù)正常運(yùn)行狀態(tài)下的在線全量備份及其恢復(fù),主要解決實(shí)時(shí)數(shù)據(jù)庫(kù)開(kāi)啟并提供用戶查詢?cè)L問(wèn)的情況下的全量備份和全量恢復(fù);增量備份及其恢復(fù),主要解決實(shí)時(shí)數(shù)據(jù)庫(kù)開(kāi)啟并提供正常服務(wù)的情況下,對(duì)新增加或新更新的物理文件進(jìn)行備份及其恢復(fù); 所述實(shí)時(shí)數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)滿足:物理文件包括控制文件、緩存文件、索引文件、數(shù)據(jù)文件、日志文件;索引文件、數(shù)據(jù)文件無(wú)時(shí)間標(biāo)識(shí);數(shù)據(jù)文件中的數(shù)據(jù)結(jié)構(gòu)包含文件頭和若干均勻大小的文件塊,每個(gè)文件塊中包含若干數(shù)據(jù)節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的實(shí)時(shí)數(shù)據(jù)庫(kù)備份恢復(fù)方法,其特征在于:所述離線全量備份及其恢復(fù)包括如下步驟: 步驟A:停止正在運(yùn)行的實(shí)時(shí)數(shù)據(jù)庫(kù),依次拷貝物理文件至備份目錄; 步驟B:打開(kāi)控制文件,讀取索引文件和數(shù)據(jù)文件列表,更新文件所在目錄為備份目錄; 步驟C:創(chuàng)建全量備份信息記錄文件,保存在全量備份目錄中;打開(kāi)文件編號(hào)最大的數(shù)據(jù)文件,讀取出文件頭信息,根據(jù)該信息獲取數(shù)據(jù)庫(kù)最后一次分配文件塊的時(shí)間,將該時(shí)間與該文件的文件名、文件號(hào)、已寫數(shù)據(jù)的偏移位置寫入全量備份信息記錄文件中供增量備份使用; 步驟D:更新備份歷史記錄文件,記錄備份時(shí)間、備份類型及備份目錄等信息,備份結(jié)束; 步驟E:離線全量恢復(fù)時(shí),由于離線全量備份出的物理文件本身就是完整的一套數(shù)據(jù)庫(kù)文件,因此可直接使用全量備份目錄中的物理文件啟動(dòng)數(shù)據(jù)庫(kù)。
3.根據(jù)權(quán)利要求1所述的實(shí)時(shí)數(shù)據(jù)庫(kù)備份恢復(fù)方法,其特征在于:所述在線全量備份及其恢復(fù)包括如下步驟: 步驟A:對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)加寫鎖,確保備份過(guò)程中無(wú)新數(shù)據(jù)處理,數(shù)據(jù)庫(kù)對(duì)外依然提供查詢業(yè)務(wù); 步驟B:執(zhí)行離線全量備份及其恢復(fù)方案的步驟B、C、D ; 步驟C:對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)解寫鎖,恢復(fù)實(shí)時(shí)數(shù)據(jù)庫(kù)提交處理業(yè)務(wù); 步驟D:同離線全量恢復(fù)一樣,在線全量恢復(fù)時(shí),由于全量備份出的物理文件本身就是完整的一套數(shù)據(jù)庫(kù)文件,因此可直接使用全量備份目錄中的物理文件啟動(dòng)數(shù)據(jù)庫(kù)。
4.根據(jù)權(quán)利要求1所述的實(shí)時(shí)數(shù)據(jù)庫(kù)備份恢復(fù)方法,其特征在于:所述增量備份包括如下步驟: 步驟A:獲取增量備份方式及開(kāi)始、結(jié)束時(shí)間:提供三種增量備份方式:參數(shù)為結(jié)束時(shí)間endTime,即備份從上次備份時(shí)間點(diǎn)到endTime之間新近分配的所有文件塊;參數(shù)為天數(shù)N,即備份從上次備份時(shí)間點(diǎn)以后N天分配的所有文件塊;無(wú)參數(shù),即備份從上次備份時(shí)間點(diǎn)到系統(tǒng)當(dāng)前時(shí)間之間分配的所有文件塊; 步驟B:備份控制文件:創(chuàng)建增量備份目錄,以時(shí)間命名;將數(shù)據(jù)庫(kù)控制文件拷貝至增量備份目錄下; 步驟C:備份緩存文件:調(diào)用數(shù)據(jù)庫(kù)接口將緩存數(shù)據(jù)取出,寫入自定義格式的緩存文件中; 步驟D:備份日志文件:將數(shù)據(jù)庫(kù)日志文件拷貝至增量備份目錄下; 步驟E:備份增量數(shù)據(jù)文件:讀取備份信息記錄文件,獲取上次備份時(shí)記錄的最大文件號(hào)及偏移,從該位置開(kāi)始順序讀取文件塊至備份結(jié)束時(shí)間,將讀取的文件塊寫入自定義格式數(shù)據(jù)文件中; 步驟F:創(chuàng)建增量備份信息記錄文件,保存在本次增量備份目錄中:打開(kāi)文件編號(hào)最大的數(shù)據(jù)文件,讀取出文件頭信息,根據(jù)該信息獲取數(shù)據(jù)庫(kù)最后一次分配文件塊的時(shí)間,將該時(shí)間與該文件的文件名、文件號(hào)、已寫數(shù)據(jù)的偏移位置寫入增量備份信息記錄文件中供下次增量備份使用; 步驟G:更新備份歷史記錄文件,記錄備份時(shí)間、備份類型及備份目錄等信息,備份結(jié)束。
5.根據(jù)權(quán)利要求1所述的實(shí)時(shí)數(shù)據(jù)庫(kù)備份恢復(fù)方法,其特征在于:所述增量恢復(fù)包括如下步驟: 步驟A:通過(guò)輸入?yún)?shù)獲取恢復(fù)時(shí)間點(diǎn),順序查找增量備份目錄,選擇小于等于恢復(fù)時(shí)間點(diǎn)的所有增量備份目錄以及全量備份目錄作為恢復(fù)使用目錄; 步驟B:以增量備份目錄η下的控制文件Fl為基礎(chǔ),其中,I ^ n ^ N, N為步驟A獲取的增量備份目錄個(gè)數(shù),通過(guò)比較全備目錄下的控制文件F2進(jìn)行調(diào)整,如果Fl中的測(cè)點(diǎn)在F2中存在,則調(diào)整該測(cè)點(diǎn)是根節(jié)點(diǎn)為F2中對(duì)應(yīng)的根節(jié)點(diǎn)指針,便于連接全量備份數(shù)據(jù);如果Fl中的測(cè)點(diǎn)在F2中不存在,則說(shuō)明該測(cè)點(diǎn)為新增測(cè)點(diǎn),將其根節(jié)點(diǎn)指針置為O,便于后續(xù)數(shù)據(jù)添加;如果F2中的測(cè)點(diǎn)在Fl中不存在,則說(shuō)明該測(cè)點(diǎn)被刪除,刪除該測(cè)點(diǎn)數(shù)據(jù);使最終生成的控制文件F3為恢復(fù)時(shí)間點(diǎn)A時(shí)刻的控制文件; 步驟C:以步驟B生成的控制文件和全備目錄中的數(shù)據(jù)、索引文件為基準(zhǔn),臨時(shí)啟動(dòng)數(shù)據(jù)庫(kù)DB_T ; 步驟D:讀取增量備份目錄η下的自定義格式緩存文件,其中,I ^ n ^ N, N為步驟A獲取的增量備份目錄個(gè)數(shù),按序回寫至DB_T ; 步驟E:讀取增量備份目錄η下的自定義格式數(shù)據(jù)文件,其中,I ^ η N, N為步驟A獲取的增量備份目錄個(gè)數(shù),按序回寫至DB_T ; 步驟F:讀取增量備份目錄η的日志文件,其中,I ^ n ^ N, N為步驟A獲取的增量備份目錄個(gè)數(shù),獲取其中的刪除數(shù)據(jù)信息,刪除DB_T中的數(shù)據(jù); 步驟G:遞歸至步驟B,實(shí)現(xiàn)全部增量目錄的文件恢復(fù),關(guān)閉數(shù)據(jù)庫(kù)DB_T。
【專利摘要】本發(fā)明公開(kāi)了一種實(shí)時(shí)數(shù)據(jù)庫(kù)備份恢復(fù)方法,屬于實(shí)時(shí)數(shù)據(jù)庫(kù)在信息化系統(tǒng)應(yīng)用領(lǐng)域。該方法包括數(shù)據(jù)庫(kù)停止運(yùn)行狀態(tài)下的離線全量備份及其恢復(fù),數(shù)據(jù)庫(kù)正常運(yùn)行狀態(tài)下的在線全量備份及其恢復(fù),數(shù)據(jù)庫(kù)正常運(yùn)行狀態(tài)下的增量備份及其恢復(fù)。本發(fā)明在不影響上層應(yīng)用的前提下,實(shí)現(xiàn)了實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)在生產(chǎn)環(huán)境中安全、穩(wěn)定、高效的數(shù)據(jù)備份以及數(shù)據(jù)恢復(fù)。本發(fā)明實(shí)現(xiàn)一個(gè)備份工具程序,支持實(shí)時(shí)數(shù)據(jù)庫(kù)在離線和在線狀態(tài)下的全量備份,同時(shí)支持?jǐn)?shù)據(jù)庫(kù)在線狀態(tài)下的增量數(shù)據(jù)備份;實(shí)現(xiàn)一個(gè)恢復(fù)工具程序,支持對(duì)備份出來(lái)的文件進(jìn)行整理恢復(fù),確保備份的有效性;采用備份文件塊的方式,提高備份效率,極大減少備份過(guò)程對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)極其應(yīng)用的影響。
【IPC分類】G06F11-14, G06F17-30
【公開(kāi)號(hào)】CN104850598
【申請(qǐng)?zhí)枴緾N201510210322
【發(fā)明人】史英杰, 朱恒, 粟勇, 周淳
【申請(qǐng)人】江蘇瑞中數(shù)據(jù)股份有限公司
【公開(kāi)日】2015年8月19日
【申請(qǐng)日】2015年4月28日
當(dāng)前第2頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1