用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法及裝置。用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法包括:獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件;獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址;確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息;從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址;將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址。通過本發(fā)明,可以實現(xiàn)備份文件中子文件的批量還原從而提高備份文件中子文件的還原效率。
【專利說明】用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法及裝置。
【背景技術(shù)】
[0002]備份文件是拷貝到存儲介質(zhì)上的文件,可以幫助用戶保護數(shù)據(jù),以防止其在系統(tǒng)硬件或存儲介質(zhì)出現(xiàn)故障時受到破壞。一個備份文件里往往含有一個或多個文件組,每個文件組里又可以包含一個或多個子文件。在生產(chǎn)環(huán)境中,經(jīng)常需要將備份文件里的一個或者多個子文件還原到指定的磁盤路徑里,以便高效的利用并發(fā)磁盤1的特性。在現(xiàn)有技術(shù)中,對于備份文件中子文件的還原通常是通過人工判斷實現(xiàn),即用戶自行讀取該子文件的原始存儲地址并將該子文件從原始存儲地址還原到目標(biāo)存儲地址。該方法一次只能實現(xiàn)一個子文件的還原,無法實現(xiàn)多個子文件同時還原。但是對于生產(chǎn)環(huán)境遷移,往往需要對備份文件中的子文件進行批量還原,這時,如果依次對每個子文件進行還原,則還原效率極低。
[0003]針對無法實現(xiàn)備份文件中子文件批量還原從而還原效率低的問題,目前尚未獲得有效的解決方案。
【發(fā)明內(nèi)容】
[0004]針對現(xiàn)有技術(shù)無法實現(xiàn)備份文件中子文件批量還原從而還原效率很低的問題而提出本發(fā)明,為此,本發(fā)明的主要目的在于提供一種用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法及裝置,以解決上述問題。
[0005]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法。該方法包括:獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件;獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址;確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息;從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址;以及將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址。
[0006]進一步地,從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址包括:檢測備份文件包含的多個子文件的信息;判斷子文件是否包含特征信息;如果子文件包含特征信息,則讀取子文件的原始存儲地址。
[0007]進一步地,將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址包括:確定第一目標(biāo)存儲地址,其中,第一目標(biāo)存儲地址是預(yù)先設(shè)定的移動多個待移動子文件的目標(biāo)存儲地址;獲取預(yù)設(shè)規(guī)則,其中,預(yù)設(shè)規(guī)則規(guī)定將多個待移動子文件由相應(yīng)的原始存儲地址移動到第一目標(biāo)存儲地址;按照預(yù)設(shè)規(guī)則將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到第一目標(biāo)存儲地址。
[0008]進一步地,將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址包括:獲取第二目標(biāo)存儲地址,其中,第二目標(biāo)存儲地址是數(shù)據(jù)庫默認(rèn)的移動多個待移動子文件的目標(biāo)存儲地址;獲取預(yù)設(shè)規(guī)則,其中,預(yù)設(shè)規(guī)則規(guī)定將多個待移動子文件由相應(yīng)的原始存儲地址移動到第二目標(biāo)存儲地址;按照預(yù)設(shè)規(guī)則將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到第二目標(biāo)存儲地址。
[0009]進一步地,獲取第二目標(biāo)存儲地址包括:獲取數(shù)據(jù)庫的注冊表;獲取注冊表中的鍵值信息;以及從注冊表中的鍵值信息獲取第二目標(biāo)存儲地址。
[0010]進一步地,將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址包括:檢測備份文件中的多個子文件;判斷備份文件中的子文件是否是待移動子文件;如果備份文件中的子文件是待移動子文件,則創(chuàng)建一個從待移動子文件的原始存儲地址到目標(biāo)存儲地址的映射并創(chuàng)建一個用于將待移動子文件從相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址的函數(shù);同步執(zhí)行用于移動多個待移動子文件的函數(shù),將多個待移動子文件由相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址。
[0011]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一個方面,提供了一種用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置,該裝置包括:第一獲取單元,用于獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件;第二獲取單元,用于獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址;確定單元,用于確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息;讀取單元,用于從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址;以及移動單元,用于將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址。
[0012]進一步地,讀取單元包括:第一檢測模塊,用于檢測備份文件包含的多個子文件的信息;第一判斷模塊,用于判斷子文件是否包含所特征信息;以及讀取模塊,用于如果子文件包含特征信息,則讀取子文件的原始存儲地址。
[0013]進一步地,移動單元包括:確定模塊,用于確定第一目標(biāo)存儲地址,其中,第一目標(biāo)存儲地址是預(yù)先設(shè)定的移動多個待移動子文件的目標(biāo)存儲地址;第一獲取模塊,用于獲取預(yù)設(shè)規(guī)則,其中,預(yù)設(shè)規(guī)則規(guī)定將多個待移動子文件由相應(yīng)的原始存儲地址移動到第一目標(biāo)存儲地址;以及第一移動模塊,用于按照預(yù)設(shè)規(guī)則將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到第一目標(biāo)存儲地址。
[0014]進一步地,移動單元包括:第二獲取模塊,用于獲取第二目標(biāo)存儲地址,其中,第二目標(biāo)存儲地址是數(shù)據(jù)庫默認(rèn)的移動多個待移動子文件的目標(biāo)存儲地址;第三獲取模塊,用于獲取預(yù)設(shè)規(guī)則,其中,預(yù)設(shè)規(guī)則規(guī)定將多個待移動子文件由相應(yīng)的原始存儲地址移動到第二目標(biāo)存儲地址;以及第二移動模塊,用于按照預(yù)設(shè)規(guī)則將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到第二目標(biāo)存儲地址。
[0015]進一步地,第二獲取模塊包括:第四獲取模塊,用于獲取數(shù)據(jù)庫的注冊表;第五獲取模塊,用于獲取注冊表中的鍵值信息;以及第六獲取模塊,用于從注冊表中的鍵值信息獲取第二目標(biāo)存儲地址。
[0016]進一步地,移動單元包括:第二檢測模塊,用于檢測備份文件中的多個子文件;第二判斷模塊,用于判斷備份文件中的子文件是否是待移動子文件;創(chuàng)建模塊,用于如果備份文件中的子文件是待移動子文件,則創(chuàng)建一個從待移動子文件的原始存儲地址到目標(biāo)存儲地址的映射并創(chuàng)建一個用于將待移動子文件從相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址的函數(shù);以及執(zhí)行模塊,用于同步執(zhí)行用于移動多個待移動子文件的函數(shù),將多個待移動子文件由相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址。
[0017]通過本發(fā)明,采用包括以下步驟的方法:獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件;獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址;確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息;從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址;以及將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址,解決了無法實現(xiàn)備份文件中子文件批量還原從而還原效率低的問題,進而達(dá)到了提高備份文件中子文件移動效率的效果。
【專利附圖】
【附圖說明】
[0018]構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0019]圖1是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第一實施例的流程圖;
[0020]圖2是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第二實施例的流程圖;
[0021]圖3是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第三實施例的流程圖;
[0022]圖4是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第四實施例的流程圖;
[0023]圖5是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第五實施例的流程圖;
[0024]圖6是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第六實施例的流程圖;
[0025]圖7是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置的第一實施例的結(jié)構(gòu)框圖;
[0026]圖8是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置的第二實施例的結(jié)構(gòu)框圖;以及
[0027]圖9是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置的第三實施例的結(jié)構(gòu)框圖。
【具體實施方式】
[0028]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本發(fā)明。
[0029]圖1是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第一實施例的流程圖。如圖1所示,該方法包括如下步驟:
[0030]步驟S102,獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件。
[0031]備份文件是拷貝到存儲介質(zhì)上的文件,可以幫助用戶保護數(shù)據(jù),以防止其在系統(tǒng)硬件或存儲介質(zhì)出現(xiàn)故障時受到破壞。常見的實現(xiàn)備份的方式有:使用U盤或者移動硬盤將重要數(shù)據(jù)備出電腦;使用刻錄機將重要數(shù)據(jù)刻成光盤;將數(shù)據(jù)保存在分區(qū)以外,以免重裝系統(tǒng)或系統(tǒng)損壞造成數(shù)據(jù)丟失;利用軟盤備份數(shù)據(jù)等。按照備份內(nèi)容可以分為三種備份形式:完全備份、差異備份和增量備份。完全備份是備份全部選中的文件夾,并不依賴文件的存檔屬性來確定備份哪些文件;差異備份是針對完全備份,備份上一次的完全備份后發(fā)生變化的所有文件;增量備份是針對于上一次備份(完全備份或者差異備份)后,所有發(fā)生變化的文件。SQL Server備份策略為只備份數(shù)據(jù)庫、備份數(shù)據(jù)庫和事務(wù)日志或者差異備份。
[0032]選擇從分區(qū)到鏡像,就是啟動備份功能。比如:將C盤數(shù)據(jù)備份到D盤。備份文件的還原是從鏡像到分區(qū)的過程,比如:將C盤數(shù)據(jù)備份到D盤,如果C盤數(shù)據(jù)意外丟失,則可以使用從鏡像到分區(qū)的功能進行還原,還原時對文件系統(tǒng)沒有要求,會還原到備份時的狀態(tài)。需要注意的是備份和還原時源盤(或者源分區(qū))和目標(biāo)分區(qū)的選擇。
[0033]步驟S104,獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址。
[0034]頭文件在程序設(shè)計中通常是源代碼形式,由編譯器在處理另一個源文件的時候自動包含進來。一般來說,程序員通過編譯器指令將頭文件包含進其他源文件的開始(或頭部)。一個頭文件一般包含類、子程序、變量和其他標(biāo)識符的前置聲明。需要在一個以上源文件中被聲明的標(biāo)識符可以被放在一個頭文件中,并在需要的地方包含這個頭文件。
[0035]在大多數(shù)現(xiàn)代計算機編程語言中,程序可以被分成如子程序的更小的組件,這些組件可以通過許多物理源文件分發(fā),這些源文件被單獨編譯。當(dāng)一個子程序在定義的位置以外的地方被使用時,就需要引入前置聲明和函數(shù)原型的概念。
[0036]例如,一個函數(shù)在一個源文件中有如下定義:
[0037]int add (int a, int b)
[0038]{
[0039]return a+b ;
[0040]}
[0041]在另一個源文件中引用的時候就可以聲明成這樣(包含函數(shù)原型):
[0042]int add (int, int);
[0043]int triple (int x)
[0044]{
[0045]return add (x, add (x, x));
[0046]}
[0047]該方法需要程序員為add在兩處維護函數(shù)聲明,即在一個包含函數(shù)實現(xiàn)的文件中和使用該函數(shù)的文件中。如果函數(shù)的定義改變了,程序員必須要更改散布在程序中的所有的原型。利用頭文件將使該問題大為簡化,減少程序員的維護負(fù)擔(dān)。頭文件被用來唯一指定接口,并提供一些文檔來說明如何使用在該文件中聲明的組件。當(dāng)定義改變的時候,只須更新聲明的一個獨立副本(在頭文件中的那個)。例如,在下面的情況下,頭文件僅包含add的聲明,每一個引用了 add的源文件使用#include來包含頭文件:
[0048]/*File add.h*/
[0049]#ifndef ADD—H
[0050]#define ADD—H
[0051]int add (int, int);
[0052]#endif/*ADD—H*/
[0053]/*File triple, c*/
[0054]#include"add.h"
[0055]int triple (int x)
[0056]{
[0057]return add (x, add (x, x));
[0058]}
[0059]步驟S106,確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息。
[0060]通常根據(jù)客戶的不同需求會將備份文件中具有相同特定信息的子文件同時還原到目標(biāo)磁盤路徑下,例如:可以是文件名以數(shù)字開頭的子文件,文件名中包含“data”的子文件,占用空間在1000KB以內(nèi)的子文件,創(chuàng)建日期在距當(dāng)前日期一個月以內(nèi)的子文件以及文件類型為word的子文件等,或者也可以是滿足以上多個特征信息的組合的子文件,例如:文件名中包含“data”并且占用空間在1000KB以內(nèi)的子文件。首先,按照用戶需求確定待移動的子文件是包含何種特定信息的子文件,從而將待移動子文件與非待移動子文件區(qū)分開來。
[0061]步驟S108,從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址。
[0062]頭文件里包括宏定義、結(jié)構(gòu)體、函數(shù)聲明等諸多信息。通過讀取頭文件中存在的相關(guān)函數(shù)可以獲取備份文件中所有子文件的原始存儲地址(原始目錄),其中就包含有了具備特征信息的多個待移動子文件的原始存儲地址(原始目錄)。具體的函數(shù)實現(xiàn)是在庫文件中,目錄函數(shù)所在的函數(shù)庫為dir.h、dos.h。
[0063]步驟S110,將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址。
[0064]通過指定一個特定的目標(biāo)存儲地址(目標(biāo)目錄),可以使指定的存儲地址變成當(dāng)前文件的存儲地址(目錄)。例如,利用int chdir (char*path)使指定的目標(biāo)目錄path (如:"C: \\WPS")變成當(dāng)前的工作目錄,成功返回O ;利用intfindfirst (char*pathname, struct ffblk*ffblk, int attrib)查找指定的文件,成功返回 0,pathname為指定的目錄名和文件名,如〃C:\\WPS\\TXT〃,ffblk為指定的保存文件信息的一個結(jié)構(gòu)。
[0065]由于備份文件中每個子文件對應(yīng)的原始存儲地址可能存在差異,因此需要對每一個待移動子文件進行指定,也就是說,針對每一個待移動子文件將會生成一個移動函數(shù)。但是,這些移動函數(shù)不是分離執(zhí)行的,而是當(dāng)所有待移動子文件的移動函數(shù)全部生成之后,執(zhí)行一個共同的移動操作,即實現(xiàn)該步驟中的“同步移動”。該移動子文件的策略將在一定程度上提高了子文件移動的效率,對于實現(xiàn)備份文件中批量子文件還原十分有利。
[0066]在該實施例中,給出了用于備份數(shù)據(jù)庫的數(shù)據(jù)處理的具體實現(xiàn)方法:獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件;獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址;確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息;從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址;將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址。該方法中,通過動態(tài)讀取備份文件的頭文件信息,將含有相同特征信息的多個子文件移動到目標(biāo)存儲地址,實現(xiàn)了備份文件中子文件的批量移動,大大提高了子文件的移動效率。
[0067]圖2是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第二實施例的流程圖。該實施例可以作為圖1所示實施例的一種優(yōu)選實施方式,如圖2所示,該用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法包括:
[0068]步驟S201,獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件。
[0069]該步驟等同于上述第一實施例中的步驟S102,這里不再贅述。
[0070]步驟S202,獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址。
[0071]該步驟等同于上述第一實施例中的步驟S104,這里不再贅述。
[0072]步驟S204,確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息。
[0073]該步驟等同于上述第一實施例中的步驟S106,這里不再贅述。
[0074]步驟S206,檢測備份文件包含的多個子文件的信息。
[0075]用戶根據(jù)自己的需求選定備份文件中需要還原的對象,對備份文件中包含的所有子文件的信息逐一進行檢測,檢測之后將會找到含有上述特征信息的子文件。該檢測過程是按照特征信息的屬性來進行的,正如第一實施例中,待移動子文件包含的特征信息可以是文件名以數(shù)字開頭、文件名中包含“data”、占用空間在1000KB以內(nèi)、創(chuàng)建日期在距當(dāng)前日期一個月以內(nèi)或者文件類型為word的子文件等,或者是以上多個特征信息的組合。這樣,在檢測備份文件包含的多個子文件的信息時,針對不同的特征信息屬性,將檢測不同的方面,而不是檢測頭文件中包含的多個子文件的所有信息。例如:待移動子文件包含的特征信息是占用空間在1000KB以內(nèi),檢測時只需檢測備份文件包含的多個子文件各自占用的空間。這種檢測方法對于提高子文件移動的效率十分有利。
[0076]步驟S207,判斷子文件是否包含特征信息。
[0077]該步驟的判斷,即是一個將步驟S206中的檢測結(jié)果與特征信息中中的規(guī)定的具體標(biāo)準(zhǔn)進行比較的過程。例如,待移動子文件包含的特征信息是占用空間在1000KB以內(nèi),每當(dāng)檢測完畢一個備份文件中子文件的占用空間,則與1000KB進行比較,如果該子文件的占用空間小于或者等于1000KB,則判斷該子文件是待移動的子文件,可以進行步驟S208 ;如果該子文件的占用空間大于1000KB,則判斷該子文件不是待移動的子文件,不對其進行步驟S208,而是繼續(xù)檢測下一個子文件,并繼續(xù)進行判斷。
[0078]步驟S208,如果子文件包含特征信息,則讀取子文件的原始存儲地址。
[0079]例如:待移動子文件包含的特征信息是占用空間在1000KB以內(nèi),每當(dāng)檢測到一個備份文件中子文件的占用空間小于或者等于1000KB,則讀取該子文件的原始存儲地址;如果某子文件占用空間超過了 1000KB,則不再讀取該子文件的原始存儲地址,而是繼續(xù)檢測下一個子文件占用的空間。步驟S208與步驟S207是動態(tài)讀取過程,邊判斷邊讀取子文件的原始存儲地址,節(jié)省了程序的運行時間,在一定程度上提高了程序執(zhí)行效率。
[0080]步驟S210,將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址。
[0081]該步驟等同于第一實施例中的步驟S110,這里不再贅述。
[0082]在該實施例中,給出了從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址的具體實現(xiàn)步驟,包括:檢測備份文件包含的多個子文件的信息;判斷子文件是否包含特征信息;如果子文件包含特征信息,則讀取子文件的原始存儲地址;將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址。在該實施例中,由于采用了動態(tài)讀取子文件信息的方式,因此簡化了獲取待移動子文件相應(yīng)的原始存儲地址的過程,提高了子文件移動程序的執(zhí)行效率。
[0083]圖3是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第三實施例的流程圖。該實施例可以作為圖1所示實施例的一種優(yōu)選實施方式,如圖3所示,該用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法包括:
[0084]步驟S301,獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件。
[0085]該步驟等同于上述第一實施例中的步驟S102,這里不再贅述。
[0086]步驟S302,獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址。
[0087]該步驟等同于上述第一實施例中的步驟S104,這里不再贅述。
[0088]步驟S304,確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息。
[0089]該步驟等同于上述第一實施例中的步驟S106,這里不再贅述。
[0090]步驟S306,從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址。
[0091]該步驟等同于上述第一實施例中的步驟S108,這里不再贅述。
[0092]步驟S307,確定第一目標(biāo)存儲地址,其中,第一目標(biāo)存儲地址是預(yù)先設(shè)定的移動多個待移動子文件的目標(biāo)存儲地址。
[0093]根據(jù)不同用戶的不同需求,可以人為設(shè)定待移動子文件移向的磁盤地址。比如,用戶A需要把備份文件中的某些子文件移動到“C: \Documents and Settings\yonghuA”路徑下,貝1J可以將“C:\Documents and Settings\yonghuA”設(shè)置為目標(biāo)存儲地址。其他的用戶可根據(jù)自身不同的需要,更改該目標(biāo)存儲地址。對于具有相同特征信息的子文件,只需設(shè)定一次目標(biāo)存儲地址,即可實現(xiàn)將所有待移動子文件同時移到目標(biāo)存儲地址。該方法使用戶可以自行選擇備份文件中多個待移動子文件的目標(biāo)存儲地址,使批量文件移動過程更加人性化,同時對于提高子文件移動效率也十分有利。
[0094]步驟S308,獲取預(yù)設(shè)規(guī)則,其中,預(yù)設(shè)規(guī)則規(guī)定將多個待移動子文件由相應(yīng)的原始存儲地址移動到第一目標(biāo)存儲地址。
[0095]該預(yù)設(shè)規(guī)則規(guī)定的是子文件移動過程的起始點和終止點,該規(guī)則可以體現(xiàn)在編寫的移動相應(yīng)子文件的程序中。比如,移動某子文件的程序為Move’ AdventureWorks_Data’ TO’ c: \mssql\data\yukon\AdventurefforksCopy_Data.mdf',則從程序中可以看到預(yù)設(shè)規(guī)則是將AdventureWorks_Data由AdventureWorks_Data的原始存儲地址移動到c: \mssql\data\yukon\AdventurefforksCopy_Data.mdf。一旦設(shè)定了該預(yù)設(shè)規(guī)則,則上述檢測出的含有相同特征信息的子文件將全部被移動到同一個目標(biāo)存儲地址。
[0096]步驟S310,按照預(yù)設(shè)規(guī)則將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到第一目標(biāo)存儲地址。
[0097]在步驟S308中,給出了僅移動一個子文件的移動函數(shù)。這里,將對多個待移動子文件同步移動到目標(biāo)存儲地址進行舉例說明。例如:待移動子文件包含的特征信息是文件名以數(shù)字開頭并以數(shù)字結(jié)束,則通過檢測得到了以下兩個子文件的原始存儲地址:’ I Adventurefforks_Data 2’ 和 ’ 3 Adventurefforks_Data 4’,移動規(guī)則中設(shè)定的目標(biāo)存儲地址是 c: \mssql\data\yukon\AdventurefforksCopy_Data.mdf,則實現(xiàn)上述兩個待移動子文件由相應(yīng)的原始存儲地址移動到第一目標(biāo)存儲地址的程序為:Move’ IAdventurefforks_Data 2’ TO’ c:\mssql\data\yukon\AdventureWorksCopy_Data.mdf’ ;Move’3 Adventurefforks_Data 4'TO' c:\mssql\data\yukon\AdventurefforksCopy_Data, mdf’,生成兩個程序后同步執(zhí)行,便可將兩個待移動子文件由相應(yīng)的原始存儲地址同步移動到第一目標(biāo)存儲地址。
[0098]在該實施例中,給出了將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址的具體實現(xiàn)步驟:確定第一目標(biāo)存儲地址,其中,第一目標(biāo)存儲地址是預(yù)先設(shè)定的移動多個待移動子文件的目標(biāo)存儲地址;獲取預(yù)設(shè)規(guī)則,其中,預(yù)設(shè)規(guī)則規(guī)定將多個待移動子文件由相應(yīng)的原始存儲地址移動到第一目標(biāo)存儲地址;按照預(yù)設(shè)規(guī)則將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到第一目標(biāo)存儲地址。通過以上步驟,允許用戶自行指定目標(biāo)存儲地址,更加人性化地實現(xiàn)了備份文件中子文件的批量移動;同時,按照預(yù)設(shè)規(guī)則將多個子文件同步移動到目標(biāo)存儲地址,提高了文件移動效率,尤其適用于生產(chǎn)環(huán)境遷移時大量子文件的批量還原。
[0099]圖4是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第四實施例的流程圖。該實施例可以作為圖1所示實施例的一種優(yōu)選實施方式,如圖4所示,該用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法包括:
[0100]步驟S401,獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件。
[0101]該步驟等同于第一實施例中的步驟S102,這里不再贅述。
[0102]步驟S402,獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址。
[0103]該步驟等同于第一實施例中的步驟S104,這里不再贅述。
[0104]步驟S404,確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息。
[0105]該步驟等同于第一實施例中的步驟S106,這里不再贅述。
[0106]步驟S406,從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址。
[0107]該步驟等同于第一實施例中的步驟S108,這里不再贅述。
[0108]步驟S407,獲取第二目標(biāo)存儲地址,其中,第二目標(biāo)存儲地址是數(shù)據(jù)庫默認(rèn)的移動多個待移動子文件的目標(biāo)存儲地址。
[0109]在一些情況下,用戶出于工作效率的考慮,在不影響整體工作效果的前提下,用戶只關(guān)注將備份文件中的某些子文件移出進行還原,并不關(guān)注將上述子文件移到什么目標(biāo)存儲地址。這時,待移動子文件將會自動移動到服務(wù)器默認(rèn)的目標(biāo)存儲地址。這種目標(biāo)存儲地址的選擇,可以很大程度上提高子文件的移動速率,節(jié)省整個程序的運行時間。需要注意的是,對于不同的服務(wù)器,默認(rèn)目標(biāo)存儲地址可能不同;同一服務(wù)器,默認(rèn)目標(biāo)存儲地址是可以更改的。如果更改了默認(rèn)目標(biāo)存儲地址,則以后在不指定目標(biāo)存儲地址的情況下,所有文件還原之后都將保存在該默認(rèn)目標(biāo)存儲地址。
[0110]步驟S408,獲取預(yù)設(shè)規(guī)則,其中,預(yù)設(shè)規(guī)則規(guī)定將多個待移動子文件由相應(yīng)的原始存儲地址移動到第二目標(biāo)存儲地址。
[0111]如上述步驟S308中,預(yù)設(shè)規(guī)則規(guī)定的是子文件移動過程的起始點和終止點,該規(guī)則可以體現(xiàn)在編寫的移動相應(yīng)子文件的程序中。比如,移動某子文件的程序為Move’ AdventureWorks_Data’ TO,則從程序中可以看到預(yù)設(shè)規(guī)則是將 AdventureWorks_Data由AdventureWorks_Data的原始存儲地址移動到服務(wù)器默認(rèn)的目標(biāo)存儲地址。
[0112]步驟S410,按照預(yù)設(shè)規(guī)則將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到第二目標(biāo)存儲地址。
[0113]例如,待移動子文件包含的特征信息是文件名中包含data四個連續(xù)字母,通過檢測得到了以下三個待移動子文件:’ AdventureWorks_Data I,、,3 AdventureWorks_Data 2,和,AdventureWorks_Data 3,。執(zhí)行程序 Move,AdventureWorks_Data I,TO ;Move' Adventurefforks_Data 2’TO ;Move’AdventureWorks_Data 2’TO,則可以將三個待移動子文件同步移動到服務(wù)器默認(rèn)的目標(biāo)存儲地址。
[0114]在該實施例中,給出了將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址的具體實現(xiàn)步驟:獲取第二目標(biāo)存儲地址,其中,第二目標(biāo)存儲地址是數(shù)據(jù)庫默認(rèn)的移動多個待移動子文件的目標(biāo)存儲地址;獲取預(yù)設(shè)規(guī)則,其中,預(yù)設(shè)規(guī)則規(guī)定將多個待移動子文件由相應(yīng)的原始存儲地址移動到第二目標(biāo)存儲地址;按照預(yù)設(shè)規(guī)則將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到第二目標(biāo)存儲地址。通過以上步驟,可以在用戶不特意指定目標(biāo)存儲地址的情況下實現(xiàn)子文件的移動,在對整體工作效果沒有影響的前提下,這種移動方式更加快捷高效,對于提高生產(chǎn)環(huán)境中批量文件還原的速度大有益處。
[0115]圖5是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第五實施例的流程圖。該實施例可以作為圖1所示實施例的一種優(yōu)選實施方式,如圖5所示,該用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法包括:
[0116]步驟S501,獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件。
[0117]該步驟等同于第一實施例中的步驟S102,這里不再贅述。
[0118]步驟S502,獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址。
[0119]該步驟等同于第一實施例中的步驟S104,這里不再贅述。
[0120]步驟S504,確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息。
[0121]該步驟等同于第一實施例中的步驟S106,這里不再贅述。
[0122]步驟S506,從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址。
[0123]該步驟等同于第一實施例中的步驟S108,這里不再贅述。
[0124]步驟S507,獲取數(shù)據(jù)庫的注冊表。
[0125]注冊表是windows操作系統(tǒng)中的一個核心數(shù)據(jù)庫,其中存放著各種參數(shù),直接控制著windows的啟動、硬件驅(qū)動程序的裝載以及一些windows應(yīng)用程序的運行,從而在整個系統(tǒng)中起著核心作用。這些作用包括了軟、硬件的相關(guān)配置和狀態(tài)信息,比如注冊表中保存有應(yīng)用程序和資源管理器外殼的初始條件、首選項和卸載數(shù)據(jù)等,聯(lián)網(wǎng)計算機的整個系統(tǒng)的設(shè)置和各種許可,文件擴展名與應(yīng)用程序的關(guān)聯(lián),硬件部件的描述、狀態(tài)和屬性,性能記錄和其他底層的系統(tǒng)狀態(tài)信息,以及其他數(shù)據(jù)等。
[0126]注冊表是為Windows NT和Windows95中所有32位硬件/驅(qū)動和32位應(yīng)用程序設(shè)計的數(shù)據(jù)文件。16位驅(qū)動在WinNT下無法工作,所以所有設(shè)備都通過注冊表來控制,一般這些是通過B1S來控制的。
[0127]在沒有注冊表的情況下,操作系統(tǒng)不會獲得必須的信息來運行和控制附屬的設(shè)備和應(yīng)用程序及正確響應(yīng)用戶的輸入。
[0128]步驟S508,獲取注冊表中的鍵值信息。
[0129]注冊表存儲在一個層次結(jié)構(gòu)的格式中,存儲在其中的兀素都基于一定的邏輯順序。注冊表鍵值是注冊表中組織的基本單元。當(dāng)在注冊表中存儲信息時,基于要存儲的信息的類型選擇適當(dāng)?shù)奈恢谩?br>
[0130]注冊表由鍵(或稱“項”)、子鍵(子項)和值項構(gòu)成。一個鍵就是分支中的一個文件夾,而子鍵就是這個文件夾中的子文件夾,子鍵同樣是一個鍵。一個值項則是一個鍵的當(dāng)前定義,由名稱、數(shù)據(jù)類型以及分配的值組成。一個鍵可以有一個或多個值,每個值的名稱各不相同,如果一個值的名稱為空,則該值為該鍵的默認(rèn)值。
[0131 ] 步驟S509,從注冊表中的鍵值信息獲取第二目標(biāo)存儲地址,其中,第二目標(biāo)存儲地址是數(shù)據(jù)庫默認(rèn)的移動多個待移動子文件的目標(biāo)存儲地址。
[0132]可以通過查詢注冊表中的鍵值信息準(zhǔn)確地獲取SqlSever的當(dāng)前默認(rèn)的目標(biāo)存儲地址。
[0133]步驟S510,獲取預(yù)設(shè)規(guī)則,其中,預(yù)設(shè)規(guī)則規(guī)定將多個待移動子文件由相應(yīng)的原始存儲地址移動到第二目標(biāo)存儲地址。
[0134]該步驟等同于第一實施例中的步驟S408,這里不再贅述。
[0135]步驟S511,按照預(yù)設(shè)規(guī)則將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到第二目標(biāo)存儲地址。
[0136]該步驟等同于第一實施例中的步驟S410,這里不再贅述。
[0137]在該實施例中,給出了獲取第二目標(biāo)存儲地址的具體實現(xiàn)步驟:獲取數(shù)據(jù)庫的注冊表;獲取注冊表中的鍵值信息;從注冊表中的鍵值信息獲取第二目標(biāo)存儲地址,其中,第二目標(biāo)存儲地址是數(shù)據(jù)庫默認(rèn)的移動多個待移動子文件的目標(biāo)存儲地址。通過以上步驟,可以通過注冊表的鍵值信息準(zhǔn)確獲取當(dāng)前默認(rèn)的目標(biāo)存儲地址,從而更加準(zhǔn)確地將多個待移動子文件轉(zhuǎn)移到當(dāng)前默認(rèn)的目標(biāo)存儲地址,提高子文件移動效率。
[0138]圖6是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法的第六實施例的流程圖。該實施例可以作為圖1所示實施例的一種優(yōu)選實施方式,如圖6所示,該用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法包括:
[0139]步驟S601,獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件。
[0140]該步驟等同于第一實施例中的步驟S102,這里不再贅述。
[0141]步驟S602,獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址。
[0142]該步驟等同于第一實施例中的步驟S104,這里不再贅述。
[0143]步驟S604,確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息。
[0144]該步驟等同于第一實施例中的步驟S106,這里不再贅述。
[0145]步驟S606,從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址。
[0146]該步驟等同于第一實施例中的步驟S108,這里不再贅述。
[0147]步驟S607,檢測備份文件中的多個子文件。
[0148]該步驟等同于步驟S206,這里不再贅述。
[0149]步驟S608,判斷備份文件中的子文件是否是待移動子文件。
[0150]該步驟等同于步驟S207,這里不再贅述。
[0151]步驟S609,如果備份文件中的子文件是待移動子文件,則創(chuàng)建一個從待移動子文件的原始存儲地址到目標(biāo)存儲地址的映射并創(chuàng)建一個用于將待移動子文件從相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址的函數(shù)。
[0152]地址映射是指為了保證CPU執(zhí)行指令時可正確訪問存儲單元,需將用戶程序中的邏輯地址轉(zhuǎn)換為運行時由機器直接尋址的物理地址。例如:從待移動子文件的原始存儲地址到目標(biāo)存儲地址的映射的函數(shù)形式如下所示:
[0153]RESTORE DATABASE[AdventurefforksCopy]FROM DISK =
[0154]’ c:\mssql\backup\yukon\AW2K5_Full.bak’
[0155]WITH CHECKSUM,
[0156]MOVE’ AdventureWorks—Data’ TO
[0157]’ c:\mssql\data\yukon\AdventureWorksCopy_Data.mdf’,
[0158]MOVE’ AdventureWorks^ogi TO
[0159]’ c:\mssql\log\yukon\AdventureWorksCopy_Log.ldf’,
[0160]RECOVERY, REPLACE, STATS = 10 ;
[0161]步驟S610,同步執(zhí)行用于移動多個待移動子文件的函數(shù),將多個待移動子文件由相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址。
[0162]將數(shù)據(jù)庫備份文件頭信息里取到的所有待移動子文件的文件名和目標(biāo)存儲地址分別寫入Move語句,將所有Move語句同步執(zhí)行,則可以實現(xiàn)將多個待移動子文件由相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址。
[0163]在該實施例中,給出了將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址的具體實現(xiàn)步驟,包括:檢測備份文件中的多個子文件判斷備份文件中的子文件是否是待移動子文件;如果備份文件中的子文件是待移動子文件,則創(chuàng)建一個從待移動子文件的原始存儲地址到目標(biāo)存儲地址的映射并創(chuàng)建一個用于將待移動子文件從相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址的函數(shù);同步執(zhí)行用于移動多個待移動子文件的函數(shù),將多個待移動子文件由相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址。在該實施例中,通過針對每一個待移動子文件建立相應(yīng)移動函數(shù)并同步執(zhí)行所有函數(shù)的方式,實現(xiàn)了同步移動備份文件中多個待移動子文件的目的,簡化了子文件的移動過程,提高了子文件移動程序的執(zhí)行效率。
[0164]圖7是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置的第一實施例的結(jié)構(gòu)框圖。如圖7所示,該裝置結(jié)構(gòu)包括:
[0165]第一獲取單元22,用于獲取數(shù)據(jù)庫中原始文件的備份文件,其中,備份文件包含多個子文件。
[0166]備份文件是拷貝到存儲介質(zhì)上的文件,可以幫助用戶保護數(shù)據(jù),以防止其在系統(tǒng)硬件或存儲介質(zhì)出現(xiàn)故障時受到破壞。常見的實現(xiàn)備份的方式有:使用U盤或者移動硬盤將重要數(shù)據(jù)備出電腦;使用刻錄機將重要數(shù)據(jù)刻成光盤;將數(shù)據(jù)保存在分區(qū)以外,以免重裝系統(tǒng)或系統(tǒng)損壞造成數(shù)據(jù)丟失;利用軟盤備份數(shù)據(jù)等。按照備份內(nèi)容可以分為三種備份形式:完全備份、差異備份和增量備份。完全備份是備份全部選中的文件夾,并不依賴文件的存檔屬性來確定備份哪些文件;差異備份是針對完全備份,備份上一次的完全備份后發(fā)生變化的所有文件;增量備份是針對于上一次備份(完全備份或者差異備份)后,所有發(fā)生變化的文件。SQL Server備份策略為只備份數(shù)據(jù)庫、備份數(shù)據(jù)庫和事務(wù)日志或者差異備份。
[0167]選擇從分區(qū)到鏡像,就是啟動備份功能。比如:將C盤數(shù)據(jù)備份到D盤。備份文件的還原是從鏡像到分區(qū)的過程,比如:將C盤數(shù)據(jù)備份到D盤,如果C盤數(shù)據(jù)意外丟失,則可以使用從鏡像到分區(qū)的功能進行還原,還原時對文件系統(tǒng)沒有要求,會還原到備份時的狀態(tài)。需要注意的是備份和還原時源盤(或者源分區(qū))和目標(biāo)分區(qū)的選擇。
[0168]第二獲取單元24,用于獲取備份文件的頭文件信息,其中,頭文件信息包含多個子文件對應(yīng)的原始存儲地址。
[0169]頭文件在程序設(shè)計中通常是源代碼形式,由編譯器在處理另一個源文件的時候自動包含進來。一般來說,程序員通過編譯器指令將頭文件包含進其他源文件的開始(或頭部)。一個頭文件一般包含類、子程序、變量和其他標(biāo)識符的前置聲明。需要在一個以上源文件中被聲明的標(biāo)識符可以被放在一個頭文件中,并在需要的地方包含這個頭文件。
[0170]在大多數(shù)現(xiàn)代計算機編程語言中,程序可以被分成如子程序的更小的組件,這些組件可以通過許多物理源文件分發(fā),這些源文件被單獨編譯。當(dāng)一個子程序在定義的位置以外的地方被使用時,就需要引入前置聲明和函數(shù)原型的概念。
[0171]例如,一個函數(shù)在一個源文件中有如下定義:
[0172]int add (int a, int b)
[0173]{
[0174]return a+b ;
[0175]}
[0176]在另一個源文件中引用的時候就可以聲明成這樣(包含函數(shù)原型):
[0177]int add (int, int);
[0178]int triple (int x)
[0179]{
[0180]return add (x, add (x, x));
[0181]}
[0182]該方法需要程序員為add在兩處維護函數(shù)聲明,即在一個包含函數(shù)實現(xiàn)的文件中和使用該函數(shù)的文件中。如果函數(shù)的定義改變了,程序員必須要更改散布在程序中的所有的原型。利用頭文件將使該問題大為簡化,減少程序員的維護負(fù)擔(dān)。頭文件被用來唯一指定接口,并提供一些文檔來說明如何使用在該文件中聲明的組件。當(dāng)定義改變的時候,只須更新聲明的一個獨立副本(在頭文件中的那個)。例如,在下面的情況下,頭文件僅包含add的聲明,每一個引用了 add的源文件使用#include來包含頭文件:
[0183]/*File add.h*/
[0184]#ifndef ADD_H
[0185]#define ADD_H
[0186]int add (int, int);
[0187]#endif/*ADD_H*/
[0188]/*File triple, c*/
[0189]#include"add.h〃
[0190]int triple (int x)
[0191]{
[0192]return add (x, add (x, x));
[0193]}
[0194]確定單元26,用于確定特征信息,其中特征信息是多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息。
[0195]通常根據(jù)客戶的不同需求會將備份文件中具有相同特定信息的子文件同時還原到目標(biāo)磁盤路徑下,例如:可以是文件名以數(shù)字開頭的子文件,文件名中包含“data”的子文件,占用空間在1000KB以內(nèi)的子文件,創(chuàng)建日期在距當(dāng)前日期一個月以內(nèi)的子文件以及文件類型為word的子文件等,或者也可以是滿足以上多個特征信息的組合的子文件,例如:文件名中包含“data”并且占用空間在1000KB以內(nèi)的子文件。首先,確定單元26按照用戶需求確定待移動的子文件是包含何種特定信息的子文件,從而將待移動子文件與非待移動子文件區(qū)分開來。
[0196]讀取單元28,用于從頭文件信息中分別讀取含有特征信息的多個待移動子文件對應(yīng)的原始存儲地址。
[0197]頭文件里包括宏定義、結(jié)構(gòu)體、函數(shù)聲明等諸多信息。通過讀取單元28讀取頭文件中存在的相關(guān)函數(shù)可以獲取備份文件中所有子文件的原始存儲地址(原始目錄),其中就包含有了具備特征信息的多個待移動子文件的原始存儲地址(原始目錄)。具體的函數(shù)實現(xiàn)是在庫文件中,目錄函數(shù)所在的函數(shù)庫為dir.h、dos.h。
[0198]移動單元210,用于將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址。
[0199]通過指定一個特定的目標(biāo)存儲地址(目標(biāo)目錄),可以使指定的存儲地址變成當(dāng)前文件的存儲地址(目錄)。例如,利用int chdir (char*path)使指定的目標(biāo)目錄path (如:"C: \\WPS")變成當(dāng)前的工作目錄,成功返回O ;利用intfindfirst (char*pathname, struct ffblk*ffblk, int attrib)查找指定的文件,成功返回 0,pathname為指定的目錄名和文件名,如〃C:\\WPS\\TXT〃,ffblk為指定的保存文件信息的一個結(jié)構(gòu)。
[0200]由于備份文件中每個子文件對應(yīng)的原始存儲地址可能存在差異,因此需要對每一個待移動子文件進行指定,也就是說,針對每一個待移動子文件將會生成一個移動函數(shù)。但是,這些移動函數(shù)不是分離執(zhí)行的,而是當(dāng)所有待移動子文件的移動函數(shù)全部生成之后,執(zhí)行一個共同的移動操作,即實現(xiàn)該步驟中的“同步移動”。該單元移動子文件的策略將在一定程度上提高了子文件移動的效率,對于實現(xiàn)備份文件中批量子文件還原十分有利。
[0201]圖8是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置的第二實施例的結(jié)構(gòu)框圖。該實施例可以作為圖7所示實施例的一種優(yōu)選實施方式,如圖8所示,該用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置包括:
[0202]第一獲取單元22、第二獲取單元24、確定單元26、讀取單元28以及移動單元210,其中,第一獲取單元22、第二獲取單元24、確定單元26以及移動單元210與圖7中相同,這里不再贅述。讀取單元28還可以包括:
[0203]第一檢測模塊32,用于檢測備份文件包含的多個子文件的信息。
[0204]第一檢測模塊32對備份文件中包含的所有子文件的信息逐一進行檢測,檢測之后將會找到含有上述特征信息的子文件。該模塊的檢測過程是按照特征信息的屬性來進行的,正如第一實施例中,待移動子文件包含的特征信息可以是文件名以數(shù)字開頭、文件名中包含“data”、占用空間在1000KB以內(nèi)、創(chuàng)建日期在距當(dāng)前日期一個月以內(nèi)或者文件類型為word的子文件等,或者是以上多個特征信息的組合。這樣,在該模塊檢測備份文件包含的多個子文件的信息時,針對不同的特征信息屬性,將檢測不同的方面,而不是檢測頭文件中包含的多個子文件的所有信息。例如:待移動子文件包含的特征信息是占用空間在1000KB以內(nèi),檢測時只需檢測備份文件包含的多個子文件各自占用的空間。這種檢測方法對于提高子文件移動的效率十分有利。
[0205]第一判斷模塊34,用于判斷子文件是否包含所特征信息。
[0206]該模塊的的判斷過程,即是一個將步驟S206中的檢測結(jié)果與特征信息中中的規(guī)定的具體標(biāo)準(zhǔn)進行比較的過程。例如,待移動子文件包含的特征信息是占用空間在1000KB以內(nèi),每當(dāng)檢測完畢一個備份文件中子文件的占用空間,則與1000KB進行比較,如果該子文件的占用空間小于或者等于1000KB,則判斷該子文件是待移動的子文件,可以進行步驟S208 ;如果該子文件的占用空間大于1000KB,則判斷該子文件不是待移動的子文件,不對其進行步驟S208,而是繼續(xù)檢測下一個子文件,并繼續(xù)進行判斷。
[0207]讀取模塊36,用于如果子文件包含特征信息,則讀取子文件的原始存儲地址。
[0208]例如:待移動子文件包含的特征信息是占用空間在1000KB以內(nèi),每當(dāng)檢測模塊檢測到一個備份文件中子文件的占用空間小于或者等于1000KB,則該模塊讀取該子文件的原始存儲地址;如果某子文件占用空間超過了 1000KB,則不再讀取該子文件的原始存儲地址,而是檢測模塊繼續(xù)檢測下一個子文件占用的空間。模塊32和36所進行的過程是動態(tài)讀取過程,邊判斷邊讀取子文件的原始存儲地址,節(jié)省了程序的運行時間,在一定程度上提高了程序執(zhí)行效率。
[0209]在該實施例中,給出了讀取單元28的模塊組成,包括:第一檢測模塊32、第一判斷模塊34和讀取模塊36。由于通過以上模塊實現(xiàn)了動態(tài)讀取子文件信息,因此簡化了獲取待移動子文件相應(yīng)的原始存儲地址的過程,提高了子文件移動程序的執(zhí)行效率。
[0210]圖9是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置的第三實施例的結(jié)構(gòu)框圖。該實施例可以作為圖7所示實施例的一種優(yōu)選實施方式,如圖9所示,該用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置包括:
[0211]第一獲取單元22、第二獲取單元24、確定單元26、讀取單元28以及移動單元210,其中,第一獲取單元22、第二獲取單元24、確定單元26、讀取單元28和圖7中所述相同,這里不再贅述。移動單元210還可以包括:
[0212]確定模塊42,用于確定第一目標(biāo)存儲地址,其中,第一目標(biāo)存儲地址是預(yù)先設(shè)定的移動多個待移動子文件的目標(biāo)存儲地址。
[0213]根據(jù)不同用戶的不同需求,可以人為設(shè)定待移動子文件移向的磁盤地址。比如,用戶A需要把備份文件中的某些子文件移動到“C: \Documents and Settings\yonghuA”路徑下,貝1J可以將“C:\Documents and Settings\yonghuA”設(shè)置為目標(biāo)存儲地址。其他的用戶可根據(jù)自身不同的需要,更改該目標(biāo)存儲地址。對于具有相同特征信息的子文件,只需設(shè)定一次目標(biāo)存儲地址,即可實現(xiàn)將所有待移動子文件同時移到目標(biāo)存儲地址。該模塊允許用戶自行選擇備份文件中多個待移動子文件的目標(biāo)存儲地址,使批量文件移動過程更加人性化,同時對于提高子文件移動效率也十分有利。
[0214]第一獲取模塊44,用于獲取預(yù)設(shè)規(guī)則,其中,預(yù)設(shè)規(guī)則規(guī)定將多個待移動子文件由相應(yīng)的原始存儲地址移動到第一目標(biāo)存儲地址。
[0215]上述預(yù)設(shè)規(guī)則規(guī)定的是子文件移動過程的起始點和終止點,該規(guī)則可以體現(xiàn)在編寫的移動相應(yīng)子文件的程序中。比如,移動某子文件的程序為Move’AdventureWorks_Data’ TO’ c: \mssql\data\yukon\AdventurefforksCopy_Data.mdf’ ,則從程序中可以看到預(yù)設(shè)規(guī)則是將AdventureWorks_Data由AdventureWorks_Data的原始存儲地址移動到c:\mssql\data\yukon\AdventureWorksCopy_Data.mdf。
[0216]第一移動模塊46,用于按照預(yù)設(shè)規(guī)則將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到第一目標(biāo)存儲地址。
[0217]這里,將對多個待移動子文件同步移動到目標(biāo)存儲地址進行舉例說明。例如:待移動子文件包含的特征信息是文件名以數(shù)字開頭并以數(shù)字結(jié)束,則通過檢測得到了以下兩個子文件原始存儲地址:’ I Adventurefforks_Data 2’ 和 ’ 3 Adventurefforks_Data 4’ ,c: \mssql\data\yukon\AdventurefforksCopy_Data.mdf 是移動規(guī)則中設(shè)定的目標(biāo)存儲地址,則第一移動模塊46執(zhí)行實現(xiàn)上述兩個待移動子文件由原始存儲地址移動到第一目標(biāo)存儲地址的程序為:
[0218]Move’ lAdventureWorks_Data2’ TO’ c:\mssql\data\yukon\AdventureWorksCopy_Data, mdf’ ;Move' 3Adventurefforks_Data4' TO’ c:\mssql\data\yukon\AdventurefforksCopy_Data.mdf’生成兩個程序后同步執(zhí)行,便可將兩個待移動子文件由相應(yīng)的原始存儲地址同步移動到第一目標(biāo)存儲地址。
[0219]在該實施例中,給出了移動單元210還可以包括還可包含的模塊組成:確定模塊42、第一獲取模塊44和第一移動模塊46。通過以上模塊,允許用戶自行指定目標(biāo)存儲地址,更加人性化地實現(xiàn)了備份文件中子文件的批量移動;同時,第一移動模塊46按照預(yù)設(shè)規(guī)則將多個子文件同步移動到目標(biāo)存儲地址,提高了文件移動效率,尤其適用于生產(chǎn)環(huán)境遷移時大量子文件的批量還原。
[0220]下面是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置的第四實施例的結(jié)構(gòu)框圖。該實施例可以作為圖7所示實施例的一種優(yōu)選實施方式。該用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置包括:
[0221]第一獲取單元22、第二獲取單元24、確定單元26、讀取單元28以及移動單元210,其中,第一獲取單元22、第二獲取單元24、確定單元26、讀取單元28和圖7中所述相同,這里不再贅述。移動單元210還可以包括:
[0222]第二獲取模塊,用于獲取第二目標(biāo)存儲地址,其中,第二目標(biāo)存儲地址是數(shù)據(jù)庫默認(rèn)的移動多個待移動子文件的目標(biāo)存儲地址。
[0223]在一些情況下,用戶出于工作效率的考慮,在不影響整體工作效果的前提下,用戶只關(guān)注將備份文件中的某些子文件移出進行還原,并不關(guān)注將上述子文件移到什么目標(biāo)存儲地址。這時,待移動子文件將會自動移動到服務(wù)器默認(rèn)的目標(biāo)存儲地址。這種目標(biāo)存儲地址的選擇,可以很大程度上提高子文件的移動速率,節(jié)省整個程序的運行時間。需要注意的是,對于不同的服務(wù)器,默認(rèn)目標(biāo)存儲地址可能不同;同一服務(wù)器,默認(rèn)目標(biāo)存儲地址是可以更改的。如果更改了默認(rèn)目標(biāo)存儲地址,則以后在不指定目標(biāo)存儲地址的情況下,所有文件還原之后都將保存在該默認(rèn)目標(biāo)存儲地址。
[0224]第三獲取模塊,用于獲取預(yù)設(shè)規(guī)則,其中,預(yù)設(shè)規(guī)則規(guī)定將多個待移動子文件由相應(yīng)的原始存儲地址移動到第二目標(biāo)存儲地址。
[0225]預(yù)設(shè)規(guī)則規(guī)定的是子文件移動過程的起始點和終止點,該規(guī)則可以體現(xiàn)在編寫的移動相應(yīng)子文件的程序中。比如,移動某子文件的程序為Move’ AdventureWorks_Data’ TO,則從程序中可以看到預(yù)設(shè)規(guī)則是將AdventureWorks_Data由AdventureWorks_Data的原始存儲地址移動到服務(wù)器默認(rèn)的目標(biāo)存儲地址。
[0226]第二移動模塊,用于按照預(yù)設(shè)規(guī)則將多個待移動子文件由相應(yīng)的原始存儲地址同步移動到第二目標(biāo)存儲地址。
[0227]例如,待移動子文件包含的特征信息是文件名中包含data四個連續(xù)字母,通過第一檢測模塊檢測得到了以下三個待移動子文件:’ Adventurefforks_Data I' > ' 3Adventurefforks_Data 2,和,AdventureWorks_Data 3,。 執(zhí)行程序 Move,AdventureWorks_Data I' TO ;Move'Adventurefforks_Data 2,TO ;Move’ Adventurefforks_Data 2’ TO,則第二移動模塊可以將三個待移動子文件同步移動到服務(wù)器默認(rèn)的目標(biāo)存儲地址。
[0228]在該實施例中,給出了移動單元210還可以包括的模塊組成:第二獲取模塊、第三獲取模塊和第二移動模塊。通過以上模塊,可以實現(xiàn)在用戶不特意指定目標(biāo)存儲地址的情況下實現(xiàn)子文件的移動,在對整體工作效果沒有影響的前提下,這種移動方式更加快捷高效,對于提高生產(chǎn)環(huán)境中批量文件還原的速度大有益處。
[0229]下面是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置的第五實施例的結(jié)構(gòu)框圖。該實施例可以作為用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置的第四實施例的一種優(yōu)選實施方式。該用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置包括:
[0230]第一獲取單元22、第二獲取單元24、確定單元26、讀取單元28以及移動單元210,其中,移動單元210還包括第二獲取模塊、第三獲取模塊和第二移動模塊。這里,除第二獲取模塊外,其他單元和模塊與裝置的第四實施例中所述相同,這里不再贅述。第二獲取模塊還可以包括:
[0231]第四獲取模塊,用于獲取數(shù)據(jù)庫的注冊表。
[0232]注冊表是windows操作系統(tǒng)中的一個核心數(shù)據(jù)庫,其中存放著各種參數(shù),直接控制著windows的啟動、硬件驅(qū)動程序的裝載以及一些windows應(yīng)用程序的運行,從而在整個系統(tǒng)中起著核心作用。這些作用包括了軟、硬件的相關(guān)配置和狀態(tài)信息,比如注冊表中保存有應(yīng)用程序和資源管理器外殼的初始條件、首選項和卸載數(shù)據(jù)等,聯(lián)網(wǎng)計算機的整個系統(tǒng)的設(shè)置和各種許可,文件擴展名與應(yīng)用程序的關(guān)聯(lián),硬件部件的描述、狀態(tài)和屬性,性能記錄和其他底層的系統(tǒng)狀態(tài)信息,以及其他數(shù)據(jù)等。
[0233]注冊表是為Windows NT和Windows95中所有32位硬件/驅(qū)動和32位應(yīng)用程序設(shè)計的數(shù)據(jù)文件。16位驅(qū)動在WinNT下無法工作,所以所有設(shè)備都通過注冊表來控制,一般這些是通過B1S來控制的。
[0234]在沒有注冊表的情況下,操作系統(tǒng)不會獲得必須的信息來運行和控制附屬的設(shè)備和應(yīng)用程序及正確響應(yīng)用戶的輸入。
[0235]第五獲取模塊,用于獲取注冊表中的鍵值信息。
[0236]注冊表存儲在一個層次結(jié)構(gòu)的格式中,存儲在其中的兀素都基于一定的邏輯順序。注冊表鍵值是注冊表中組織的基本單元。當(dāng)在注冊表中存儲信息時,基于要存儲的信息的類型選擇適當(dāng)?shù)奈恢谩?br>
[0237]注冊表由鍵(或稱“項”)、子鍵(子項)和值項構(gòu)成。一個鍵就是分支中的一個文件夾,而子鍵就是這個文件夾中的子文件夾,子鍵同樣是一個鍵。一個值項則是一個鍵的當(dāng)前定義,由名稱、數(shù)據(jù)類型以及分配的值組成。一個鍵可以有一個或多個值,每個值的名稱各不相同,如果一個值的名稱為空,則該值為該鍵的默認(rèn)值。
[0238]第六獲取模塊,用于從注冊表中的鍵值信息獲取第二目標(biāo)存儲地址。
[0239]第六獲取模塊可以通過查詢注冊表中的鍵值信息準(zhǔn)確地獲取SqlSever的當(dāng)前默認(rèn)的目標(biāo)存儲地址。
[0240]在該實施例中,給出了第二獲取模塊還可包含的模塊組成:第四獲取模塊、第五獲取模塊和第六獲取模塊。通過以上模塊,可以實現(xiàn)通過注冊表的鍵值信息準(zhǔn)確獲取當(dāng)前默認(rèn)的目標(biāo)存儲地址,從而更加準(zhǔn)確地將多個待移動子文件轉(zhuǎn)移到當(dāng)前默認(rèn)的目標(biāo)存儲地址,提高子文件移動效率。
[0241]下面是根據(jù)本發(fā)明的用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置的第六實施例的結(jié)構(gòu)框圖。該實施例可以作為圖7的一種優(yōu)選實施方式。該用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置包括:
[0242]第一獲取單元22、第二獲取單元24、確定單元26、讀取單元28以及移動單元210,其中,第一獲取單元22、第二獲取單元24、確定單元26、讀取單元28與圖7實施例中所述相同,這里不再贅述。移動單元210還可以包括:
[0243]第二檢測模塊,用于檢測備份文件中的多個子文件。
[0244]第二判斷模塊,用于判斷備份文件中的子文件是否是待移動子文件。
[0245]創(chuàng)建模塊,用于如果備份文件中的子文件是待移動子文件,則創(chuàng)建一個從待移動子文件的原始存儲地址到目標(biāo)存儲地址的映射并創(chuàng)建一個用于將待移動子文件從相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址的函數(shù)。
[0246]地址映射是指為了保證CPU執(zhí)行指令時可正確訪問存儲單元,需將用戶程序中的邏輯地址轉(zhuǎn)換為運行時由機器直接尋址的物理地址。例如:從待移動子文件的原始存儲地址到目標(biāo)存儲地址的映射的函數(shù)形式如下所示:
[0247]RESTORE DATABASE[AdventurefforksCopy]FROM DISK =
[0248]’ c:\mssql\backup\yukon\AW2K5_Full.bak’
[0249]WITH CHECKSUM,
[0250]MOVE’ AdventureWorks—Data’ TO
[0251]' c:\mssql\data\yukon\AdventurefforksCopy_Data.mdf',
[0252]MOVE’ AdventureWorks_Log’ TO
[0253]’ c:\mssql\log\yukon\AdventureWorksCopy_Log.ldf’ ,
[0254]RECOVERY, REPLACE, STATS = 10 ;
[0255]執(zhí)行模塊,用于同步執(zhí)行用于移動多個待移動子文件的函數(shù),將多個待移動子文件由相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址。
[0256]執(zhí)行模塊將數(shù)據(jù)庫備份文件頭信息里取到的所有待移動子文件的文件名和目標(biāo)存儲地址分別寫入Move語句,將所有Move語句同步執(zhí)行,實現(xiàn)了將多個待移動子文件由相應(yīng)的原始存儲地址移動到目標(biāo)存儲地址。
[0257]在該實施例中,給出了移動單元210還可包括的模塊組成:第二檢測模塊、第二判斷模塊和執(zhí)行模塊。通過以上模塊,可針對每一個待移動子文件建立相應(yīng)移動函數(shù)并同步執(zhí)行所有函數(shù)的方式,實現(xiàn)同步移動備份文件中多個待移動子文件的目的,從而簡化了子文件的移動過程,提高了子文件移動程序的執(zhí)行效率。
[0258]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0259]以上僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種用于備份數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,包括: 獲取數(shù)據(jù)庫中原始文件的備份文件,其中,所述備份文件包含多個子文件; 獲取所述備份文件的頭文件信息,其中,所述頭文件信息包含所述多個子文件對應(yīng)的原始存儲地址; 確定特征信息,其中所述特征信息是所述多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息; 從所述頭文件信息中分別讀取含有所述特征信息的所述多個待移動子文件對應(yīng)的原始存儲地址;以及 將所述多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,從所述頭文件信息中分別讀取含有所述特征信息的所述多個待移動子文件對應(yīng)的原始存儲地址包括: 檢測所述備份文件包含的多個子文件的信息; 判斷所述子文件是否包含所特征信息;以及 如果所述子文件包含所述特征信息,則讀取所述子文件的原始存儲地址。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址包括: 確定第一目標(biāo)存儲地址,其中,所述第一目標(biāo)存儲地址是預(yù)先設(shè)定的移動所述多個待移動子文件的目標(biāo)存儲地址; 獲取預(yù)設(shè)規(guī)則,其中,所述預(yù)設(shè)規(guī)則規(guī)定將所述多個待移動子文件由相應(yīng)的原始存儲地址移動到所述第一目標(biāo)存儲地址;以及 按照所述預(yù)設(shè)規(guī)則將所述多個待移動子文件由相應(yīng)的原始存儲地址同步移動到所述第一目標(biāo)存儲地址。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,將所述多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址包括: 獲取第二目標(biāo)存儲地址,其中,所述第二目標(biāo)存儲地址是所述數(shù)據(jù)庫默認(rèn)的移動所述多個待移動子文件的目標(biāo)存儲地址; 獲取預(yù)設(shè)規(guī)則,其中,所述預(yù)設(shè)規(guī)則規(guī)定將所述多個待移動子文件由相應(yīng)的原始存儲地址移動到所述第二目標(biāo)存儲地址;以及 按照所述預(yù)設(shè)規(guī)則將所述多個待移動子文件由相應(yīng)的原始存儲地址同步移動到所述第二目標(biāo)存儲地址。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,獲取所述第二目標(biāo)存儲地址包括: 獲取所述數(shù)據(jù)庫的注冊表; 獲取所述注冊表中的鍵值信息;以及 從所述注冊表中的鍵值信息獲取所述第二目標(biāo)存儲地址。
6.一種用于備份數(shù)據(jù)庫的數(shù)據(jù)處理裝置,其特征在于,包括: 第一獲取單元,用于獲取數(shù)據(jù)庫中原始文件的備份文件,其中,所述備份文件包含多個子文件; 第二獲取單元,用于獲取所述備份文件的頭文件信息,其中,所述頭文件信息包含所述多個子文件對應(yīng)的原始存儲地址; 確定單元,用于確定特征信息,其中所述特征信息是所述多個子文件中的多個待移動子文件共同含有的信息并且非待移動子文件沒有含有的信息; 讀取單元,用于從所述頭文件信息中分別讀取含有所述特征信息的所述多個待移動子文件對應(yīng)的原始存儲地址;以及 移動單元,用于將所述多個待移動子文件由相應(yīng)的原始存儲地址同步移動到目標(biāo)存儲地址。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述讀取單元包括: 第一檢測模塊,用于檢測所述備份文件包含的多個子文件的信息; 第一判斷模塊,用于判斷所述子文件是否包含所特征信息;以及 讀取模塊,用于如果所述子文件包含所述特征信息,則讀取所述子文件的原始存儲地址。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述移動單元包括: 確定模塊,用于確定第一目標(biāo)存儲地址,其中,所述第一目標(biāo)存儲地址是預(yù)先設(shè)定的移動所述多個待移動子文件的目標(biāo)存儲地址; 第一獲取模塊,用于獲取預(yù)設(shè)規(guī)則,其中,所述預(yù)設(shè)規(guī)則規(guī)定將所述多個待移動子文件由相應(yīng)的原始存儲地址移動到所述第一目標(biāo)存儲地址;以及 第一移動模塊,用于按照所述預(yù)設(shè)規(guī)則將所述多個待移動子文件由相應(yīng)的原始存儲地址同步移動到所述第一目標(biāo)存儲地址。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述移動單元包括: 第二獲取模塊,用于獲取第二目標(biāo)存儲地址,其中,所述第二目標(biāo)存儲地址是所述數(shù)據(jù)庫默認(rèn)的移動所述多個待移動子文件的目標(biāo)存儲地址; 第三獲取模塊,用于獲取預(yù)設(shè)規(guī)則,其中,所述預(yù)設(shè)規(guī)則規(guī)定將所述多個待移動子文件由相應(yīng)的原始存儲地址移動到所述第二目標(biāo)存儲地址;以及 第二移動模塊,用于按照所述預(yù)設(shè)規(guī)則將所述多個待移動子文件由相應(yīng)的原始存儲地址同步移動到所述第二目標(biāo)存儲地址。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第二獲取模塊包括: 第四獲取模塊,用于獲取所述數(shù)據(jù)庫的注冊表; 第五獲取模塊,用于獲取所述注冊表中的鍵值信息;以及 第六獲取模塊,用于從所述注冊表中的鍵值信息獲取所述第二目標(biāo)存儲地址。
【文檔編號】G06F17/30GK104166607SQ201410449646
【公開日】2014年11月26日 申請日期:2014年9月4日 優(yōu)先權(quán)日:2014年9月4日
【發(fā)明者】洪超 申請人:北京國雙科技有限公司