數(shù)據(jù)備份的方法和數(shù)據(jù)處理系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,尤其涉及一種數(shù)據(jù)備份的方法和數(shù)據(jù)處理系統(tǒng)。
【背景技術(shù)】
[0002]分布式數(shù)據(jù)庫在寫數(shù)據(jù)時(shí),數(shù)據(jù)會(huì)存儲(chǔ)到用戶表的一個(gè)或多個(gè)子表中,當(dāng)滿足一定的條件時(shí),將數(shù)據(jù)進(jìn)行備份,以保證數(shù)據(jù)的可靠性。
[0003]但目前分布式數(shù)據(jù)庫將數(shù)據(jù)備份消耗的時(shí)間長,且備份時(shí)對(duì)網(wǎng)絡(luò)和磁盤資源的消耗較大。
【發(fā)明內(nèi)容】
[0004]本申請?zhí)峁┮环N數(shù)據(jù)備份的方法和數(shù)據(jù)處理系統(tǒng),通過記錄數(shù)據(jù)備份的時(shí)間點(diǎn),確定備份增量數(shù)據(jù),縮短了增量數(shù)據(jù)備份的時(shí)間,減少了增量數(shù)據(jù)備份對(duì)網(wǎng)絡(luò)和磁盤資源的消耗。
[0005]—方面,本申請?zhí)峁┝艘环N數(shù)據(jù)備份的方法,該方法包括:
[0006]在第一時(shí)間點(diǎn)備份存儲(chǔ)在第一存儲(chǔ)介質(zhì)上的第一存儲(chǔ)文件,并記錄第一時(shí)間點(diǎn);當(dāng)?shù)谝淮鎯?chǔ)介質(zhì)上的第二存儲(chǔ)文件數(shù)量達(dá)到預(yù)設(shè)閾值時(shí),以記錄的第一時(shí)間點(diǎn)分界點(diǎn),將第二存儲(chǔ)文件合并為至少兩個(gè)第三存儲(chǔ)文件,其中,第二存儲(chǔ)包括第一存儲(chǔ)文件和第一時(shí)間點(diǎn)之后到當(dāng)前時(shí)間點(diǎn)新生成的存儲(chǔ)文件;對(duì)第一時(shí)間點(diǎn)之后的至少一個(gè)第三存儲(chǔ)文件進(jìn)行增量備份。
[0007]在一個(gè)可能的設(shè)計(jì)中,對(duì)第一時(shí)間點(diǎn)之后的至少一個(gè)第三存儲(chǔ)文件進(jìn)行增量備份,具體包括:獲取合并后的至少兩個(gè)第三存儲(chǔ)文件的時(shí)間戳范圍;根據(jù)每個(gè)第三存儲(chǔ)文件的時(shí)間戳范圍,以第一時(shí)間點(diǎn)為分界點(diǎn),確定第一時(shí)間點(diǎn)之后的第三存儲(chǔ)文件,并進(jìn)行增量備份。
[0008]在一個(gè)可能的設(shè)計(jì)中,根據(jù)預(yù)設(shè)規(guī)則,備份第一存儲(chǔ)文件。
[0009]在另一個(gè)可能的設(shè)計(jì)中,獲取至少兩個(gè)第三存儲(chǔ)文件的時(shí)間戳范圍,包括:從每個(gè)第三存儲(chǔ)文件的元數(shù)據(jù)塊中獲取時(shí)間戳范圍。
[0010]在又一個(gè)可能的設(shè)計(jì)中,在所述根據(jù)所述第一時(shí)間點(diǎn),對(duì)至少兩個(gè)第三存儲(chǔ)文件進(jìn)行增量備份之后,方法還包括:記錄增量備份操作的第二時(shí)間點(diǎn),以用于根據(jù)第二時(shí)間點(diǎn)合并或備份新生成的存儲(chǔ)文件。
[0011]—方面,本申請?zhí)峁┝艘环N數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括:
[0012]備份模塊,用于在第一時(shí)間點(diǎn)備份存儲(chǔ)在第一存儲(chǔ)介質(zhì)上的第一存儲(chǔ)文件,并記錄備份操作的第一時(shí)間點(diǎn);合并模塊,用于當(dāng)?shù)谝淮鎯?chǔ)介質(zhì)上的第二存儲(chǔ)文件的數(shù)量滿足預(yù)設(shè)閾值時(shí),以記錄的第一時(shí)間點(diǎn)分界點(diǎn),將第二存儲(chǔ)文件合并為至少兩個(gè)第三存儲(chǔ)文件,其中,第二存儲(chǔ)包括第一存儲(chǔ)文件和第一時(shí)間點(diǎn)之后到當(dāng)前時(shí)間點(diǎn)新生成的存儲(chǔ)文件;備份模塊還用于,備份第一時(shí)間點(diǎn)之后的至少一個(gè)第三存儲(chǔ)文件。
[0013]在一個(gè)可能的設(shè)計(jì)中,數(shù)據(jù)處理系統(tǒng)還包括:獲取模塊,用于獲取合并后的至少兩個(gè)第三存儲(chǔ)文件的時(shí)間戳范圍;確定模塊,用于每個(gè)第三存儲(chǔ)文件的時(shí)間戳范圍,以第一時(shí)間點(diǎn)為分界點(diǎn),確定第一時(shí)間點(diǎn)之后的第三存儲(chǔ)文件,備份模塊對(duì)確定模塊確定的第一時(shí)間點(diǎn)后的第三存儲(chǔ)文件進(jìn)行增量備份。
[0014]在一個(gè)可能的設(shè)計(jì)中,備份模塊具體用于,根據(jù)預(yù)設(shè)條件,備份第一存儲(chǔ)文件。
[0015]在另一個(gè)可能的設(shè)計(jì)中,獲取模塊具體用于,從每個(gè)第三存儲(chǔ)文件的元數(shù)據(jù)塊中獲取時(shí)間戳范圍。
[0016]在又一個(gè)可能的設(shè)計(jì)中,備份模塊還用于,記錄增量備份操作的第二時(shí)間點(diǎn),以用于根據(jù)第二時(shí)間點(diǎn)合并或備份新生成的存儲(chǔ)文件。
[0017]—方面,本申請?zhí)峁┝艘环N數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)包括處理器和存儲(chǔ)器,處理器用于根據(jù)存儲(chǔ)器存儲(chǔ)的預(yù)設(shè)規(guī)則備份存儲(chǔ)在存儲(chǔ)器中的第一存儲(chǔ)文件,并記錄進(jìn)行備份操作的第一時(shí)間點(diǎn);當(dāng)存儲(chǔ)器中的第二存儲(chǔ)文件數(shù)量超過預(yù)設(shè)閾值時(shí),以記錄的第一時(shí)間點(diǎn)為分界點(diǎn),將第二存儲(chǔ)文件合并為至少兩個(gè)第三存儲(chǔ)文件,其中,第二存儲(chǔ)包括第一存儲(chǔ)文件和第一時(shí)間點(diǎn)之后到當(dāng)前時(shí)間點(diǎn)新生成的存儲(chǔ)文件;以記錄的第一時(shí)間點(diǎn)為分界點(diǎn),備份第一時(shí)間點(diǎn)之后的第三存儲(chǔ)文件。
[0018]在一個(gè)可能的設(shè)計(jì)中,處理器獲取合并后的至少兩個(gè)第三存儲(chǔ)文件的時(shí)間戳范圍;并以第一時(shí)間點(diǎn)為分界點(diǎn),確定第一時(shí)間點(diǎn)之后的第三存儲(chǔ)文件,并進(jìn)行增量備份。
[0019]在另一個(gè)可能的設(shè)計(jì)中,處理器從每個(gè)第三存儲(chǔ)文件的元數(shù)據(jù)塊中獲取時(shí)間戳范圍。
[0020]在又一個(gè)可能的設(shè)計(jì)中,處理器記錄增量備份操作的第二時(shí)間點(diǎn),以用于根據(jù)第二時(shí)間點(diǎn)合并或備份新生成的存儲(chǔ)文件。
[0021]本申請?zhí)峁┑臄?shù)據(jù)備份的方法和數(shù)據(jù)處理系統(tǒng),通過記錄數(shù)據(jù)備份的時(shí)間點(diǎn),確定備份增量數(shù)據(jù),避免了增量數(shù)據(jù)存儲(chǔ)讀取全表數(shù)據(jù)的過程,縮短了增量數(shù)據(jù)備份的時(shí)間,減少了增量數(shù)據(jù)備份對(duì)網(wǎng)絡(luò)和磁盤資源的消耗。
【附圖說明】
[0022]圖1為一個(gè)用戶表中子表的不意圖;
[0023]圖2為本發(fā)明實(shí)施例提供的一種分布式數(shù)據(jù)庫數(shù)據(jù)備份的方法的流程圖;
[0024]圖3為本發(fā)明實(shí)施例提供的另一種分布式數(shù)據(jù)庫數(shù)據(jù)備份的方法的流程圖;
[0025]圖4為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理系統(tǒng)的示意圖;
[0026]圖5為本發(fā)明實(shí)施例提供的另一數(shù)據(jù)處理系統(tǒng)的示意圖;
[0027]圖6為本發(fā)明實(shí)施例提供的又一數(shù)據(jù)處理系統(tǒng)的示意圖。
【具體實(shí)施方式】
[0028]本發(fā)明實(shí)施例適用于以鍵-值(KeyValue)類型的存儲(chǔ)方式進(jìn)行存儲(chǔ)的數(shù)據(jù)庫,即,將用戶需要存儲(chǔ)的數(shù)據(jù)存放在Value部分,構(gòu)建與Value對(duì)應(yīng)的Key,當(dāng)用戶需要查找Value時(shí),通過Key索引查找對(duì)應(yīng)的Value,其中,數(shù)據(jù)的存儲(chǔ)是按照Key的字典順序自然排序的。
[0029]當(dāng)用戶需要在分布式數(shù)據(jù)庫中存儲(chǔ)數(shù)據(jù)時(shí),創(chuàng)建相應(yīng)的用戶表(Table)。一個(gè)Table中可以存儲(chǔ)大量的數(shù)據(jù),為了方便管理和維護(hù),可以按照記錄的Key值得字典順序切割生成一個(gè)或多個(gè)子表(Reg1n)。每個(gè)Reg1n是一個(gè)Key區(qū)間數(shù)據(jù)的集合,也可以說是連續(xù)行數(shù)據(jù)的集合。每個(gè)KeyValue所對(duì)應(yīng)的Key只包括在一個(gè)Reg1n區(qū)間,也就是說多個(gè)Reg1n之間沒有交集,如圖1所不,圖1為一個(gè)用戶表中子表的不意圖,其中,圖1中Reg1n-Ι中的Key-A代表著在字典順序上一個(gè)無窮小的值,Reg1n-M中的Key-Υ代表著在字典順序上一個(gè)無窮大的值。
[0030]當(dāng)分布式數(shù)據(jù)庫在寫數(shù)據(jù)時(shí),數(shù)據(jù)可以同時(shí)寫入WAL和Reg1n的內(nèi)存中。當(dāng)Reg1n內(nèi)存中的數(shù)據(jù)滿足預(yù)設(shè)的內(nèi)存閾值時(shí),將Reg1n中的數(shù)據(jù)固化到磁盤上,同時(shí)在磁盤上生成存儲(chǔ)文件Hfile,Hfile文件的元數(shù)據(jù)塊中存儲(chǔ)有該Reg1n中數(shù)據(jù)記錄的時(shí)間戳范圍。
[0031]為避免影響數(shù)據(jù)庫讀數(shù)據(jù)的性能,當(dāng)磁盤上存儲(chǔ)文件Hfile的數(shù)量滿足預(yù)設(shè)的數(shù)量閾值時(shí),對(duì)磁盤上多個(gè)存儲(chǔ)文件Hfile進(jìn)行合并(Compact1n),得到至少一個(gè)存儲(chǔ)文件Hfile。
[0032]為防止系統(tǒng)出現(xiàn)操作失誤或者系統(tǒng)故障導(dǎo)致的數(shù)據(jù)丟失,需要將系統(tǒng)中的全部數(shù)據(jù)或者部分?jǐn)?shù)據(jù)集合從應(yīng)用主機(jī)的硬盤或者陣列復(fù)制到本地或者其他的安全存儲(chǔ)介質(zhì)中。