專利名稱:備份方法和備份裝置的制作方法
技術領域:
本發(fā)明實施例涉及數(shù)據(jù)存儲技術,尤其涉及一種備份方法和備份裝置。
背景技術:
隨著數(shù)字化程度的不斷加深,各企業(yè)、組織和個人對數(shù)據(jù)保護的重要性認識也不斷加深,數(shù)據(jù)備份是對數(shù)據(jù)保護的最常用的方法?,F(xiàn)有技術中,采用順序存儲的方式備份各個文件,需要讀取前一個文件的數(shù)據(jù)并完成前一個文件數(shù)據(jù)的備份后再對下一個文件進行備份。然而,現(xiàn)有的備份方法,備份效率不高。
發(fā)明內容
本發(fā)明實施例提供一種備份方法和備份裝置,以提高數(shù)據(jù)備份效率。本發(fā)明實施例第一方面,提供一種備份方法,包括采用至少兩個線程分別讀取至少兩個備份文件中的數(shù)據(jù);所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件。結合第一方面,所述線程的個數(shù)與所述備份文件的個數(shù)相匹配,一個所述線程用于讀取一個對應的備份文件中的數(shù)據(jù),并將所讀取的對應備份文件中的數(shù)據(jù)寫入所述備份映像文件。結合第一方面,每個所述備份文件包括多個數(shù)據(jù)塊;所述采用至少兩個線程分別讀取至少兩個備份文件中的數(shù)據(jù),包括采用每個所述線程依次讀取對應的備份文件中的數(shù)據(jù)塊;所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件,包括每個所述線程按照所述至少兩個線程完成讀取對應的備份文件中數(shù)據(jù)塊的時間先后順序,將讀取的對應備份文件中數(shù)據(jù)塊寫入所述備份映像文件。結合第一方面,所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,還包括將每個所述數(shù)據(jù)塊對應的備份文件標識,對應所述數(shù)據(jù)塊寫入所述備份映像文件。結合第一方面,所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,還包括將每個所述數(shù)據(jù)塊對應的數(shù)據(jù)類型標識和/或數(shù)據(jù)容量信息,對應所述數(shù)據(jù)塊寫入所述備份映像文件。結合第一方面,所述方法還包括判斷每個所述線程寫入所述備份映像文件中的數(shù)據(jù)塊是否為對應的備份文件中的最后一個數(shù)據(jù)塊;若為對應的備份文件中的最后一個數(shù)據(jù)塊,則所述線程在所述備份映像文件中對應所述最后一個數(shù)據(jù)塊寫入所述備份文件標識和寫入完成標識。結合第一方面,所述方法還包括判斷所述至少兩個備份文件中的所有數(shù)據(jù)塊是否均寫入所述備份映像文件,若均寫入所述備份映像文件,則采用對應的線程,在所述備份映像文件中對應所述至少兩個備份文件中最后一個數(shù)據(jù)塊寫入備份集結束標識。結合第一方面,所述方法還包括每個線程在所述備份映像文件中對應所述備份文件中的第一個數(shù)據(jù)塊寫入屬性標識。結合第一方面,所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,還包括根據(jù)每個所述數(shù)據(jù)塊對應的所述數(shù)據(jù)容量信息,判斷所述備份映像文件的剩余存儲空間是否能夠寫入對應的數(shù)據(jù)塊;若所述備份映像文件的剩余存儲空間不能寫入對應的數(shù)據(jù)塊,則在所述備份映像文件中對應最后一個數(shù)據(jù)塊寫入結束標識以及將要寫入對應的數(shù)據(jù)塊的下一個備份映像文件標識。結合第一方面,所述備份映像文件包含文件頭區(qū)域和數(shù)據(jù)區(qū)域,所述文件頭區(qū)域中包括所述備份映像文件所屬的備份集標識和備份映像文件標識。結合第一方面,所述備份映像文件的文件頭區(qū)域中還包括備份集類型,所述備份集類型為全備份類型或者增量備份類型,所述全備份類型表示所述備份映像文件中寫入所述至少兩個備份文件的全部數(shù)據(jù),所述增量備份類型表示所述備份映像文件中寫入所述至少兩個備份文件的更新數(shù)據(jù)以及所述至少兩個備份文件更新前存入的父備份集標識。結合第一方面,所述備份映像文件的文件頭區(qū)域中還包括備份標識,所述備份標識用于表示備份映像文件。結合第一方面,所述方法還包括生成備份集對應的索引信息,所述索引信息存儲于備份系統(tǒng)的數(shù)據(jù)庫中,以使備份文件恢復時,根據(jù)所述索引信息對備份文件進行恢復。本發(fā)明實施例第二方面提供一種備份裝置,包括讀取模塊,用于采用至少兩個線程分別讀取至少兩個備份文件中的數(shù)據(jù);寫入模塊,用于控制所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件。結合第二方面,所述線程的個數(shù)與所述備份文件的個數(shù)相匹配,一個所述線程用于讀取一個對應的備份文件中的數(shù)據(jù),并將所讀取的對應備份文件中的數(shù)據(jù)寫入所述備份映像文件。結合第二方面,每個所述備份文件包括多個數(shù)據(jù)塊;所述讀取模塊具體用于采用每個所述線程依次讀取對應的備份文件中的數(shù)據(jù)塊;所述寫入模塊具體用于控制每個所述線程按照所述至少兩個線程完成讀取對應的備份文件中數(shù)據(jù)塊的時間先后順序,將讀取的對應備份文件中數(shù)據(jù)塊寫入所述備份映像文件。結合第二方面,所述寫入模塊用于控制所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,還用于將每個所述數(shù)據(jù)塊對應的備份文件標識,對應所述數(shù)據(jù)塊寫入所述備份映像文件。結合第二方面,所述寫入模塊用于控制所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,還用于將每個所述數(shù)據(jù)塊對應的數(shù)據(jù)類型標識和/或數(shù)據(jù)容量信息,對應所述數(shù)據(jù)塊寫入所述備份映像文件。結合第二方面,所述裝置還包括判斷模塊,用于判斷每個所述線程寫入所述備份映像文件中的數(shù)據(jù)塊是否為對應的備份文件中的最后一個數(shù)據(jù)塊;若為對應的備份文件中的最后一個數(shù)據(jù)塊,則所述寫入模塊用于控制所述線程在所述備份映像文件中對應所述最后一個數(shù)據(jù)塊寫入所述備份文件標識和寫入完成標識。結合第二方面,所述判斷模塊還用于判斷所述至少兩個備份文件中的所有數(shù)據(jù)塊是否均寫入所述備份映像文件,若均寫入所述備份映像文件,則采用對應的線程,在所述備份映像文件中對應所述至少兩個備份文件中最后一個數(shù)據(jù)塊寫入備份集結束標識。結合第二方面,所述寫入模塊還用于控制每個線程在所述備份映像文件中對應所述備份文件中的第一個數(shù)據(jù)塊寫入屬性標識。結合第二方面,所述寫入模塊用于控制所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,所述判斷模塊還用于根據(jù)每個所述數(shù)據(jù)塊對應的所述數(shù)據(jù)容量信息,判斷所述備份映像文件的剩余存儲空間是否能夠寫入對應的數(shù)據(jù)塊;若所述備份映像文件的剩余存儲空間不能寫入對應的數(shù)據(jù)塊,則所述寫入模塊用于控制在所述備份映像文件中對應最后一個數(shù)據(jù)塊寫入結束標識以及將要寫入對應的數(shù)據(jù)塊的下一個備份映像文件標識。結合第二方面,所述備份映像文件包含文件頭區(qū)域和數(shù)據(jù)區(qū)域,所述文件頭區(qū)域中包括所述備份映像文件所屬的備份集標識和備份映像文件標識。結合第二方面,所述備份映像文件的文件頭區(qū)域中還包括備份集類型,所述備份集類型為全備份類型或者增量備份類型,所述全備份類型表示所述備份映像文件中寫入所述至少兩個備份文件的全部數(shù)據(jù),所述增量備份類型表示所述備份映像文件中寫入所述至少兩個備份文件的更新數(shù)據(jù)以及所述至少兩個備份文件更新前存入的父備份集標識。結合第二方面,所述備份映像文件的文件頭區(qū)域中還包括備份標識,所述備份標識用于表示備份映像文件。結合第二方面,所述裝置還包括生成模塊,用于生成備份集對應的索引信息,所述索引信息存儲于備份系統(tǒng)的數(shù)據(jù)庫中,以使備份文件恢復時,根據(jù)所述索引信息對備份文件進行恢復。本發(fā)明實施例提供的備份方法和備份裝置,采用至少兩個線程來讀取至少兩個備份文件中的數(shù)據(jù),按照至少兩個線程完成讀取備份文件中的數(shù)據(jù)的時間先后順序,將讀取的備份文件中的數(shù)據(jù)寫入備份映像文件,提高了數(shù)據(jù)的備份效率。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明備份方法實施例一的流程示意圖;圖2為本發(fā)明備份方法實施例二的流程示意圖;圖3為本發(fā)明備份方法實施例三的流程示意圖;圖4為本發(fā)明備份方法實施例的備份映像文件格式示意圖;圖5為本發(fā)明備份方法實施例多線程并發(fā)備份示意圖;圖6為本發(fā)明備份方法實施例四的流程示意圖;圖7為本發(fā)明備份方法實施例多線程并發(fā)恢復示意圖;圖8為本發(fā)明備份方法實施五的流程示意圖;圖9為本發(fā)明備份裝置實施例一的結構示意圖;圖10為本發(fā)明備份裝置實施例二的結構示意圖;圖11是本發(fā)明備份裝置實施例三的結構示意圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。為了提高數(shù)據(jù)備份的效率,本發(fā)明各實施例采用至少兩個線程的多線程并發(fā)備份的方法來實現(xiàn)提高數(shù)據(jù)備份的效率。在對數(shù)據(jù)進行備份時,存儲備份文件的文件稱為備份映像文件,一個備份映像文件可以存儲多個備份文件,將一次備份過程中涉及到的所有備份映像文件的集合作為一個備份集。圖1為本發(fā)明備份方法實施例一的流程示意圖,如圖1所示,本發(fā)明實施例的執(zhí)行主體可以為手機、個人計算機(Personal computer,以下簡稱PC)、平板電腦(PAD)等各種類型的終端設備,具體可以是各種終端設備中具有數(shù)據(jù)讀取和寫入功能的模塊,例如中央處理器(Central Processing Unit,以下簡稱CPU)等。本實施例的方法包括SlOl :采用至少兩個線程分別讀取至少兩個備份文件中的數(shù)據(jù)。備份文件包括文件系統(tǒng)中的文件,數(shù)據(jù)庫數(shù)據(jù),郵件系統(tǒng)數(shù)據(jù),虛擬機數(shù)據(jù)和其他各種應用數(shù)據(jù)等等,任何需要備份的文件都可以作為備份文件,本發(fā)明對備份文件的具體格式不做限制。當在一次備份中存在兩個或者兩個以上的備份映像文件時,采用兩個或兩個以上的線程分別讀取兩個或兩個以上的備份文件中的數(shù)據(jù)??蛇x的,線程的個數(shù)與備份文件的個數(shù)相匹配,一個線程用于讀取一個對應的備份文件中的數(shù)據(jù),并將所讀取的對應備份文件中的數(shù)據(jù)寫入備份映像文件。例如,在一次備份中需要備份兩個備份文件,分別為備份文件A和備份文件B,兩個線程分別為線程I和線程2,線程I用于讀取備份文件A的數(shù)據(jù),線程2用于讀取備份文件B的數(shù)據(jù)。S102:至少兩個線程按照完成讀取備份文件中的數(shù)據(jù)的時間先后順序,將讀取的備份文件中的數(shù)據(jù)寫入備份映像文件。由于采用至少兩個線程分別讀取至少兩個備份文件中的數(shù)據(jù),每個線程讀取各自對應的備份文件中的數(shù)據(jù)可以是相互獨立的,因此,每個線程完成讀取備份文件的時間會有先后順序,每個線程完成讀取備份文件中的數(shù)據(jù)的時間長短與備份文件中數(shù)據(jù)的大小有關系,例如,在一次備份中,存在備份文件A和備份文件B,備份文件A中的數(shù)據(jù)的大小為10K,備份文件B中的數(shù)據(jù)的大小為8K,假設線程I與線程2的讀取速度相同的條件下,則用于讀取備份文件B的線程2比用于讀取備份文件A的線程I先完成備份文件中數(shù)據(jù)的讀取。至少兩個線程按照完成讀取備份文件中的數(shù)據(jù)的時間先后順序,將讀取的備份文件中的數(shù)據(jù)寫入備份映像文件,如前面的例子所述,線程2比線程I先完成備份文件中數(shù)據(jù)的讀取,因此,線程2讀完備份文件B之后,則將備份文件B寫入備份映像文件,然后線程I再將備份文件I寫入備份映像文件。而現(xiàn)有技術中,采用單線程讀取的方式對多個備份文件進行備份,需要讀取完前一個備份文件中的數(shù)據(jù)并完成備份后再對下一個文件進行備份,例如,在一次備份中,存在備份文件A和備份文件B,備份文件A中的數(shù)據(jù)的大小為10K,備份文件B中的數(shù)據(jù)的大小為8K,假設線程的讀取速度為1K/S,寫入速度為2K/S,則完成一次備份需要的時間為10/l+10/2+8/l+8/2=27S,而采用本發(fā)明實施例的技術方案,采用線程I讀取備份文件A、采用線程2讀取備份文件B,假設線程I與線程2的讀取速率相同為1K/S,寫入速率為2K/S,由于線程I讀取備份文件A和線程2讀取備份文件B是相互獨立的過程,線程2讀取備份文件B的時間為8S,線程I讀取備份文件A的時間為10S,線程2寫入備份文件B的時間為4S,線程I寫入備份文件A的時間為5S,在線程2讀取備份文件B和寫入備份文件B的過程的同時,線程I在讀取備份文件A,因此,線程I讀取備份文件A的時間為節(jié)約的時間,采用本發(fā)明實施例的技術方案,完成一次備份需要的時間為8+4+10+5-10=17S,顯然,采用本發(fā)明實施例的技術方案,能夠在一定程度上提高數(shù)據(jù)的備份效率。本實施例中,采用至少兩個線程來讀取至少兩個備份文件中的數(shù)據(jù),按照至少兩個線程完成讀取備份文件中的數(shù)據(jù)的時間先后順序,將讀取的備份文件中的數(shù)據(jù)寫入備份映像文件,提高了數(shù)據(jù)的備份效率。圖2為本發(fā)明備份方法實施例二的流程示意圖,與圖1所示實施例不同的是,圖2所示實施例中每個備份文件中包括多個數(shù)據(jù)塊,如圖2所示,本實施例的方法包括S201 :采用每個線程依次讀取對應的備份文件中的數(shù)據(jù)塊。一個備份文件中包括多個數(shù)據(jù)塊,每個線程依次讀取對應的備份文件中的數(shù)據(jù)塊,備份文件中數(shù)據(jù)塊的大小依據(jù)實際應用環(huán)境而定,本發(fā)明對此不作限制。S202 :將每個數(shù)據(jù)塊對應的備份文件標識,對應數(shù)據(jù)塊寫入備份映像文件。同一備份文件中的所有數(shù)據(jù)塊具有相同的備份文件標識,不同備份文件中的數(shù)據(jù)塊具有不同的備份文件標識,例如,備份文件A包括數(shù)據(jù)塊Al和數(shù)據(jù)塊A2,則數(shù)據(jù)塊Al和數(shù)據(jù)塊A2具有相同的備份文件標識A,備份文件B包括數(shù)據(jù)塊B1、數(shù)據(jù)塊B2和數(shù)據(jù)塊B3,則數(shù)據(jù)塊B1、數(shù)據(jù)塊B2和數(shù)據(jù)塊B3具有相同的備份文件標識B,備份文件標識能夠唯一標識數(shù)據(jù)塊所屬的備份文件,常用備份對象身份標識(Object identification,以下簡稱objID)來表示備份文件標識。在對備份文件進行恢復時,可根據(jù)備份文件標識識別數(shù)據(jù)塊所屬的備份文件,以保證備份文件的準確恢復。線程在讀取完備份文件的一個數(shù)據(jù)塊之后,將該數(shù)據(jù)塊對應的備份文件標識,對應數(shù)據(jù)塊寫入備份映像文件。通常將該數(shù)據(jù)塊對應的備份文件標識寫在該數(shù)據(jù)塊的頭部中,每個數(shù)據(jù)塊都對應有一個頭部,用于存儲數(shù)據(jù)塊對應的備份文件標識等信息。可選地,在本步驟中,還可以將該數(shù)據(jù)塊對應的數(shù)據(jù)類型標識和/或數(shù)據(jù)容量信息,對應數(shù)據(jù)塊寫入備份映像文件。其中,數(shù)據(jù)塊對應的數(shù)據(jù)類型標識可以為屬性標識或數(shù)據(jù)標識。屬性標識用于表示對應的數(shù)據(jù)塊中的內容為備份文件的屬性信息,該屬性信息為該備份文件的第一個數(shù)據(jù)塊,每個線程在備份映像文件中對應備份文件中的第一個數(shù)據(jù)塊寫入屬性標識。屬性信息一般包括備份文件名稱、權限、用戶ID (user ID,以下簡稱uID)、對文件的訪問時間(access time,以下簡稱atime),對文件內容的修改時間(modificationtime,以下簡稱文件屬性修改的時間(changetime,以下簡稱ctime)等信息。數(shù)據(jù)標識用于表示對應的數(shù)據(jù)塊中的內容為備份文件的數(shù)據(jù)信息。數(shù)據(jù)塊對應的數(shù)據(jù)容量信息,代表數(shù)據(jù)塊中數(shù)據(jù)的大小。上述數(shù)據(jù)塊對應的數(shù)據(jù)類型標識或數(shù)據(jù)容量信息都可以寫在數(shù)據(jù)塊的對應的頭部中。在對備份文件進行恢復時,可根據(jù)數(shù)據(jù)塊對應的數(shù)據(jù)類型標識獲知數(shù)據(jù)塊中存儲的為備份文件的何種信息,可根據(jù)數(shù)據(jù)塊對應的數(shù)據(jù)容量信息,獲知哪些數(shù)據(jù)屬于該數(shù)據(jù)塊對應的數(shù)據(jù),以防止多讀或者少讀該數(shù)據(jù)塊對應的數(shù)據(jù),進一步地保證備份數(shù)據(jù)的準確恢復??蛇x地,當備份映像文件的大小一定,在一次備份中需要用到至少兩個備份映像文件時,還執(zhí)行S203。S203:根據(jù)每個數(shù)據(jù)塊對應的數(shù)據(jù)容量信息,判斷備份映像文件的剩余存儲空間是否能夠寫入對應的數(shù)據(jù)塊;若備份映像文件的剩余存儲空間不能寫入對應的數(shù)據(jù)塊,則在備份映像文件中對應最后一個數(shù)據(jù)塊寫入結束標識以及將要寫入對應的數(shù)據(jù)塊的下一個備份映像文件標識。結束標識用于表示一個備份映像文件存儲空間已滿,下一個備份映像文件標識用于表示下一個數(shù)據(jù)塊所存儲的備份映像文件。也就是,當一個備份映像文件剩余的存儲空間不夠存儲對應的數(shù)據(jù)塊時,則在備份映像文件剩余的存儲空間中存儲用于指示數(shù)據(jù)塊應當存儲的下一個備份映像文件的位置。結束標識通常用(End Of Continue,以下簡稱E0C)表示,下一個備份映像文件標識通常用備份映像文件ID來表示,也可以用分段編號來表示,分段編號用于表示該備份映像文件是所屬備份集中的第幾個備份映像文件,分段編號一般從0開始,在同一備份集中遞增,分段編號在一個備份集中能夠唯一標識一個備份映像文件,也可以用備份映像文件ID和分段編號一起表示,只要能夠在一個備份集中唯一標識備份映像文件的標識都可以,本發(fā)明對此不做限制。在對備份文件恢復時,當讀取到數(shù)據(jù)塊備份集結束標識后,可根據(jù)下一個備份映像文件標識獲知下一個數(shù)據(jù)塊的存儲位置。
S204:每個線程按照至少兩個線程完成讀取對應的備份文件中數(shù)據(jù)塊的時間先后順序,將讀取的對應備份文件中數(shù)據(jù)塊寫入備份映像文件。具體地,以線程I和線程2分別讀取備份文件A和備份文件B為例,備份文件A包括數(shù)據(jù)塊Al、數(shù)據(jù)塊A2,備份文件B包括數(shù)據(jù)塊B1、數(shù)據(jù)塊B2和數(shù)據(jù)塊B3,本發(fā)明對數(shù)據(jù)塊的大小不做限制,每個數(shù)據(jù)塊的大小可以是相同的,也可以是不相同的,如果線程I和線程2完成讀取備份文件A和備份文件B中數(shù)據(jù)塊的時間先后順序為數(shù)據(jù)塊B1、數(shù)據(jù)塊Al、數(shù)據(jù)塊B2、數(shù)據(jù)塊A2和數(shù)據(jù)塊B3,則將備份文件A和B寫入備份映像文件的順序依次為線程2在完成讀取數(shù)據(jù)塊BI之后,執(zhí)行S202,然后將數(shù)據(jù)塊BI寫入備份映像文件,線程I在完成讀取數(shù)據(jù)塊Al之后,執(zhí)行S202,然后將數(shù)據(jù)塊Al寫入備份映像文件,線程2在完成讀取數(shù)據(jù)塊B2之后,執(zhí)行S202,然后將數(shù)據(jù)塊B2寫入備份映像文件,線程I在完成讀取數(shù)據(jù)塊A2之后,執(zhí)行S202,然后將數(shù)據(jù)塊A2寫入備份映像文件,線程2在完成讀取數(shù)據(jù)塊B3之后,執(zhí)行S202,然后將數(shù)據(jù)塊B3寫入備份映像文件,完成備份文件A和備份文件B的數(shù)據(jù)備份。與實施例一的技術方案相比,假設,備份文件A的大小為10K,數(shù)據(jù)塊Al為6K、數(shù)據(jù)塊A2為4K、備份文件B的大小為8K,數(shù)據(jù)塊BI為4K,數(shù)據(jù)塊B2為3K、數(shù)據(jù)塊B3為1K,線程I與線程2的讀取速率相同為1K/S,寫入速率為2K/S,假設線程A和線程B同時讀取備份文件A和備份文件B,線程完成讀取備份文件中數(shù)據(jù)塊的先后順序為B1、Al、B2、A2、B3,采用實施例一的技術方案需要17S,而采用本實施例的技術方案需要16S,顯然,進行分塊后,進一步地提高了數(shù)據(jù)備份的效率。在S202中在數(shù)據(jù)塊頭部寫入的備份文件標識等信息耗費時間非常少,因此可以忽略不計。可選地,在執(zhí)行完S204之后,還可以執(zhí)行S205 S206S205:判斷每個線程寫入備份映像文件中的數(shù)據(jù)塊是否為對應的備份文件中的最后一個數(shù)據(jù)塊,若是,執(zhí)行S206,若否,返回執(zhí)行S201。S206:在備份映像文件中對應最后一個數(shù)據(jù)塊寫入備份文件標識和寫入完成標識。 備份文件標識和寫入完成標識一起用于表示備份文件標識對應的備份文件備份完成。一般將備份文件標識和寫入完成標識寫在備份映像文件中對應最后一個數(shù)據(jù)塊之后。在對備份文件進行恢復時,當讀取到備份文件標識和寫入完成標識時,表示對該備份文件標識對應的備份文件恢復完成。寫入完成標識通常用(Endof Object,以下簡稱E00)表示??蛇x地,在執(zhí)彳了完S206之后,還可以執(zhí)彳了 S207。S207:判斷至少兩個備份文件中的所有數(shù)據(jù)是否均寫入備份映像文件,若均寫入備份映像文件,若是,執(zhí)行S208,若否,返回執(zhí)行S201。S208 :采用對應的線程,在備份映像文件中對應至少兩個備份文件中最后一個數(shù)據(jù)塊寫入備份集結束標識。備份集結束標識用于表示在一次備份中,所有的備份文件都已備份完成,一次備份結束,也可以表不一個備份集備份完成。作為一種可行的實施方式,在最后一個備份文件的寫入完成標識之后寫入備份集結束標識,備份集結束標識通常用在數(shù)據(jù)塊中寫入EOC和空(NULL)來表示,本發(fā)明對備份集結束標識的具體形式不做限制。
在對備份文件進行恢復時,可通過備份集結束標識和寫入完成標識來判斷備份文件的恢復是否成功,如果已經(jīng)讀取到備份集結束標識但還未讀取到備份文件對應的寫入完成標識,表示備份文件的恢復失敗。本實施例中,通過每個線程依次讀取對應的備份文件中的數(shù)據(jù)塊,每個線程按照至少兩個線程完成讀取對應備份文件中數(shù)據(jù)塊的時間先后順序,將讀取的對應備份文件中數(shù)據(jù)塊寫入備份映像文件中,更進一步地節(jié)約了讀取時間,提高了備份效率,在讀取的備份文件中的數(shù)據(jù)寫入備份映像文件之前,還將每個數(shù)據(jù)塊對應的備份文件標識,對應數(shù)據(jù)塊寫入備份映像文件,以使在文件恢復時,根據(jù)備份文件標識識別數(shù)據(jù)塊所屬的備份文件,通過增加結束標識、寫入完成標識和備份集結束標識,提高對備份文件恢復的準確性。在上述實施例中,備份映像文件包含頭部區(qū)域和數(shù)據(jù)區(qū)域,頭部區(qū)域包括備份映像文件所屬的備份集標識和備份映像文件標識。具體地,備份集標識可由作業(yè)ID、客戶端名稱和備份時間唯一標識。作業(yè)ID表示備份集文件是由ID為上述作業(yè)ID值的作業(yè)創(chuàng)建的,客戶端名稱為表示備份映像文件中的數(shù)據(jù)所屬的客戶機的名稱。在上述實施例中,備份映像文件的文件頭區(qū)域還可以包括備份集類型,備份集類型為全備份類型或者增量備份類型,全備份類型表示備份映像文件中寫入至少兩個備份文件的全部數(shù)據(jù),增量備份類型表示備份映像文件中寫入至少兩個備份文件的更新數(shù)據(jù)以及至少兩個備份文件更新前存入的父備份集標識。在上述實施例中,備份映像文件頭區(qū)域中還可以包括備份標識,用于表示文件為備份映像文件,通常用“魔數(shù)”表示。在對備份文件進行恢復時,當備份系統(tǒng)中的數(shù)據(jù)庫損毀時,可根據(jù)備份映像文件頭部區(qū)域中的信息及備份映像文件數(shù)據(jù)區(qū)域中有數(shù)據(jù)類型為屬性標識的數(shù)據(jù)塊重建備份集的索引信息,對備份文件進行恢復,提高備份系統(tǒng)的可靠性。圖3為本發(fā)明備份方法實施例三的流程示意圖,本實施例主要是對采用至少兩個線程將至少兩個備份文件并發(fā)寫入備份映像文件方法的描述,如圖3所示,本實施例的步驟包括S301 :創(chuàng)建備份映像文件。圖4為本發(fā)明備份方法實施例的備份映像文件格式示意圖,如圖4所示,在備份映像文件的頭部區(qū)域中寫入備份映像文件的索引信息,該信息具體包括備份集標識、備份映像文件標識、備份集類型和備份標識等信息。頭部區(qū)域中的具體信息可參見表I。表I備份映像文件頭部區(qū)域中的信息
權利要求
1.一種備份方法,其特征在于,包括 采用至少兩個線程分別讀取至少兩個備份文件中的數(shù)據(jù); 所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件。
2.根據(jù)權利要求1所述的方法,其特征在于,所述線程的個數(shù)與所述備份文件的個數(shù)相匹配,一個所述線程用于讀取一個對應的備份文件中的數(shù)據(jù),并將所讀取的對應備份文件中的數(shù)據(jù)寫入所述備份映像文件。
3.根據(jù)權利要求2所述的方法,其特征在于,每個所述備份文件包括多個數(shù)據(jù)塊; 所述采用至少兩個線程分別讀取至少兩個備份文件中的數(shù)據(jù),包括 采用每個所述線程依次讀取對應的備份文件中的數(shù)據(jù)塊; 所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件,包括 每個所述線程按照所述至少兩個線程完成讀取對應的備份文件中數(shù)據(jù)塊的時間先后順序,將讀取的對應備份文件中數(shù)據(jù)塊寫入所述備份映像文件。
4.根據(jù)權利要求3所述的方法,其特征在于,所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,還包括 將每個所述數(shù)據(jù)塊對應的備份文件標識,對應所述數(shù)據(jù)塊寫入所述備份映像文件。
5.根據(jù)權利要求3或4所述的方法,其特征在于,所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,還包括 將每個所述數(shù)據(jù)塊對應的數(shù)據(jù)類型標識和/或數(shù)據(jù)容量信息,對應所述數(shù)據(jù)塊寫入所述備份映像文件。
6.根據(jù)權利要求3-5任一項所述的方法,其特征在于,還包括 判斷每個所述線程寫入所述備份映像文件中的數(shù)據(jù)塊是否為對應的備份文件中的最后一個數(shù)據(jù)塊; 若為對應的備份文件中的最后一個數(shù)據(jù)塊,則所述線程在所述備份映像文件中對應所述最后一個數(shù)據(jù)塊寫入所述備份文件標識和寫入完成標識。
7.根據(jù)權利要求3-6任一項所述的方法,其特征在于,還包括 判斷所述至少兩個備份文件中的所有數(shù)據(jù)塊是否均寫入所述備份映像文件,若均寫入所述備份映像文件,則采用對應的線程,在所述備份映像文件中對應所述至少兩個備份文件中最后一個數(shù)據(jù)塊寫入備份集結束標識。
8.根據(jù)權利要求3-5任一項所述的方法,其特征在于,還包括 每個線程在所述備份映像文件中對應所述備份文件中的第一個數(shù)據(jù)塊寫入屬性標識。
9.根據(jù)權利要求5所述的方法,其特征在于,所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,還包括 根據(jù)每個所述數(shù)據(jù)塊對應的所述數(shù)據(jù)容量信息,判斷所述備份映像文件的剩余存儲空間是否能夠寫入對應的數(shù)據(jù)塊;若所述備份映像文件的剩余存儲空間不能寫入對應的數(shù)據(jù)塊,則在所述備份映像文件中對應最后一個數(shù)據(jù)塊寫入結束標識以及將要寫入對應的數(shù)據(jù)塊的下一個備份映像文件標識。
10.根據(jù)權利要求1、任一項所述的方法,其特征在于,所述備份映像文件包含文件頭區(qū)域和數(shù)據(jù)區(qū)域,所述文件頭區(qū)域中包括所述備份映像文件所屬的備份集標識和備份映像文件標識。
11.根據(jù)權利要求10所述的方法,其特征在于,所述備份映像文件的文件頭區(qū)域中還包括備份集類型,所述備份集類型為全備份類型或者增量備份類型,所述全備份類型表示所述備份映像文件中寫入所述至少兩個備份文件的全部數(shù)據(jù),所述增量備份類型表示所述備份映像文件中寫入所述至少兩個備份文件的更新數(shù)據(jù)以及所述至少兩個備份文件更新前存入的父備份集標識。
12.根據(jù)權利要求10或11所述的方法,其特征在于,所述備份映像文件的文件頭區(qū)域中還包括備份標識,所述備份標識用于表示備份映像文件。
13.根據(jù)權利要求f12任一項所述的方法,其特征在于,還包括 生成備份集對應的索引信息,所述索引信息存儲于備份系統(tǒng)的數(shù)據(jù)庫中,以使備份文件恢復時,根據(jù)所述索引信息對備份文件進行恢復。
14.一種備份裝置,其特征在于,包括 讀取模塊,用于采用至少兩個線程分別讀取至少兩個備份文件中的數(shù)據(jù); 寫入模塊,用于控制所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件。
15.根據(jù)權利要求14所述的裝置,其特征在于,所述線程的個數(shù)與所述備份文件的個數(shù)相匹配,一個所述線程用于讀取一個對應的備份文件中的數(shù)據(jù),并將所讀取的對應備份文件中的數(shù)據(jù)寫入所述備份映像文件。
16.根據(jù)權利要求15所述的裝置,其特征在于,每個所述備份文件包括多個數(shù)據(jù)塊; 所述讀取模塊具體用于采用每個所述線程依次讀取對應的備份文件中的數(shù)據(jù)塊; 所述寫入模塊具體用于控制每個所述線程按照所述至少兩個線程完成讀取對應的備份文件中數(shù)據(jù)塊的時間先后順序,將讀取的對應備份文件中數(shù)據(jù)塊寫入所述備份映像文件。
17.根據(jù)權利要求16所述的裝置,其特征在于,所述寫入模塊用于控制所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,還用于將每個所述數(shù)據(jù)塊對應的備份文件標識,對應所述數(shù)據(jù)塊寫入所述備份映像文件。
18.根據(jù)權利要求16或17所述的裝置,其特征在于,所述寫入模塊用于控制所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,還用于將每個所述數(shù)據(jù)塊對應的數(shù)據(jù)類型標識和/或數(shù)據(jù)容量信息,對應所述數(shù)據(jù)塊寫入所述備份映像文件。
19.根據(jù)權利要求16-18任一項所述的裝置,其特征在于,還包括 判斷模塊,用于判斷每個所述線程寫入所述備份映像文件中的數(shù)據(jù)塊是否為對應的備份文件中的最后一個數(shù)據(jù)塊;若為對應的備份文件中的最后一個數(shù)據(jù)塊,則所述寫入模塊用于控制所述線程在所述備份映像文件中對應所述最后一個數(shù)據(jù)塊寫入所述備份文件標識和寫入完成標識。
20.根據(jù)權利要求16-19任一項所述的裝置,其特征在于,所述判斷模塊還用于判斷所述至少兩個備份文件中的所有數(shù)據(jù)塊是否均寫入所述備份映像文件,若均寫入所述備份映像文件,則采用對應的線程,在所述備份映像文件中對應所述至少兩個備份文件中最后一個數(shù)據(jù)塊寫入備份集結束標識。
21.根據(jù)權利要求16-18任一項所述的裝置,其特征在于,所述寫入模塊還用于控制每個線程在所述備份映像文件中對應所述備份文件中的第一個數(shù)據(jù)塊寫入屬性標識。
22.根據(jù)權利要求18所述的裝置,其特征在于,所述寫入模塊用于控制所述至少兩個線程按照完成讀取所述備份文件中的數(shù)據(jù)的時間先后順序,將讀取的所述備份文件中的數(shù)據(jù)寫入備份映像文件之前,所述判斷模塊還用于根據(jù)每個所述數(shù)據(jù)塊對應的所述數(shù)據(jù)容量信息,判斷所述備份映像文件的剩余存儲空間是否能夠寫入對應的數(shù)據(jù)塊;若所述備份映像文件的剩余存儲空間不能寫入對應的數(shù)據(jù)塊,則所述寫入模塊用于控制在所述備份映像文件中對應最后一個數(shù)據(jù)塊寫入結束標識以及將要寫入對應的數(shù)據(jù)塊的下一個備份映像文件標識。
23.根據(jù)權利要求14 22任一項所述的裝置,其特征在于,所述備份映像文件包含文件頭區(qū)域和數(shù)據(jù)區(qū)域,所述文件頭區(qū)域中包括所述備份映像文件所屬的備份集標識和備份映像文件標識。
24.根據(jù)權利要求23所述的裝置,其特征在于,所述備份映像文件的文件頭區(qū)域中還包括備份集類型,所述備份集類型為全備份類型或者增量備份類型,所述全備份類型表示所述備份映像文件中寫入所述至少兩個備份文件的全部數(shù)據(jù),所述增量備份類型表示所述備份映像文件中寫入所述至少兩個備份文件的更新數(shù)據(jù)以及所述至少兩個備份文件更新前存入的父備份集標識。
25.根據(jù)權利要求23或24所述的裝置,其特征在于,所述備份映像文件的文件頭區(qū)域中還包括備份標識,所述備份標識用于表示備份映像文件。
26.根據(jù)權利要求14 15任一項所述的裝置,其特征在于,還包括 生成模塊,用于生成備份集對應的索引信息,所述索引信息存儲于備份系統(tǒng)的數(shù)據(jù)庫中,以使備份文件恢復時,根據(jù)所述索引信息對備份文件進行恢復。
全文摘要
本發(fā)明實施例提供一種備份方法和備份裝置,該備份方法包括采用至少兩個線程分別讀取至少兩個備份文件中的數(shù)據(jù);至少兩個線程按照完成讀取備份文件中的數(shù)據(jù)的時間先后順序,將讀取的備份文件中的數(shù)據(jù)寫入備份映像文件,在一定程度上提高了數(shù)據(jù)的備份效率。
文檔編號G06F11/14GK103064760SQ20121055458
公開日2013年4月24日 申請日期2012年12月19日 優(yōu)先權日2012年12月19日
發(fā)明者陳炯, 曾蜀芳 申請人:華為技術有限公司