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