发明内容
本申请提供一种数据备份的方法和数据处理***,通过记录数据备份的时间点,确定备份增量数据,缩短了增量数据备份的时间,减少了增量数据备份对网络和磁盘资源的消耗。
一方面,本申请提供了一种数据备份的方法,该方法包括:
在第一时间点备份存储在第一存储介质上的第一存储文件,并记录第一时间点;当第一存储介质上的第二存储文件数量达到预设阈值时,以记录的第一时间点分界点,将第二存储文件合并为至少两个第三存储文件,其中,第二存储包括第一存储文件和第一时间点之后到当前时间点新生成的存储文件;对第一时间点之后的至少一个第三存储文件进行增量备份。
在一个可能的设计中,对第一时间点之后的至少一个第三存储文件进行增量备份,具体包括:获取合并后的至少两个第三存储文件的时间戳范围;根据每个第三存储文件的时间戳范围,以第一时间点为分界点,确定第一时间点之后的第三存储文件,并进行增量备份。
在一个可能的设计中,根据预设规则,备份第一存储文件。
在另一个可能的设计中,获取至少两个第三存储文件的时间戳范围,包括:从每个第三存储文件的元数据块中获取时间戳范围。
在又一个可能的设计中,在所述根据所述第一时间点,对至少两个第三存储文件进行增量备份之后,方法还包括:记录增量备份操作的第二时间点,以用于根据第二时间点合并或备份新生成的存储文件。
一方面,本申请提供了一种数据处理***,该***包括:
备份模块,用于在第一时间点备份存储在第一存储介质上的第一存储文件,并记录备份操作的第一时间点;合并模块,用于当第一存储介质上的第二存储文件的数量满足预设阈值时,以记录的第一时间点分界点,将第二存储文件合并为至少两个第三存储文件,其中,第二存储包括第一存储文件和第一时间点之后到当前时间点新生成的存储文件;备份模块还用于,备份第一时间点之后的至少一个第三存储文件。
在一个可能的设计中,数据处理***还包括:获取模块,用于获取合并后的至少两个第三存储文件的时间戳范围;确定模块,用于每个第三存储文件的时间戳范围,以第一时间点为分界点,确定第一时间点之后的第三存储文件,备份模块对确定模块确定的第一时间点后的第三存储文件进行增量备份。
在一个可能的设计中,备份模块具体用于,根据预设条件,备份第一存储文件。
在另一个可能的设计中,获取模块具体用于,从每个第三存储文件的元数据块中获取时间戳范围。
在又一个可能的设计中,备份模块还用于,记录增量备份操作的第二时间点,以用于根据第二时间点合并或备份新生成的存储文件。
一方面,本申请提供了一种数据处理***,该数据处理***包括处理器和存储器,处理器用于根据存储器存储的预设规则备份存储在存储器中的第一存储文件,并记录进行备份操作的第一时间点;当存储器中的第二存储文件数量超过预设阈值时,以记录的第一时间点为分界点,将第二存储文件合并为至少两个第三存储文件,其中,第二存储包括第一存储文件和第一时间点之后到当前时间点新生成的存储文件;以记录的第一时间点为分界点,备份第一时间点之后的第三存储文件。
在一个可能的设计中,处理器获取合并后的至少两个第三存储文件的时间戳范围;并以第一时间点为分界点,确定第一时间点之后的第三存储文件,并进行增量备份。
在另一个可能的设计中,处理器从每个第三存储文件的元数据块中获取时间戳范围。
在又一个可能的设计中,处理器记录增量备份操作的第二时间点,以用于根据第二时间点合并或备份新生成的存储文件。
本申请提供的数据备份的方法和数据处理***,通过记录数据备份的时间点,确定备份增量数据,避免了增量数据存储读取全表数据的过程,缩短了增量数据备份的时间,减少了增量数据备份对网络和磁盘资源的消耗。
具体实施方式
本发明实施例适用于以键-值(KeyValue)类型的存储方式进行存储的数据库,即,将用户需要存储的数据存放在Value部分,构建与Value对应的Key,当用户需要查找Value时,通过Key索引查找对应的Value,其中,数据的存储是按照Key的字典顺序自然排序的。
当用户需要在分布式数据库中存储数据时,创建相应的用户表(Table)。一个Table中可以存储大量的数据,为了方便管理和维护,可以按照记录的Key值得字典顺序切割生成一个或多个子表(Region)。每个Region是一个Key区间数据的集合,也可以说是连续行数据的集合。每个KeyValue所对应的Key只包括在一个Region区间,也就是说多个Region之间没有交集,如图1所示,图1为一个用户表中子表的示意图,其中,图1中Region-1中的Key-A代表着在字典顺序上一个无穷小的值,Region-M中的Key-Y代表着在字典顺序上一个无穷大的值。
当分布式数据库在写数据时,数据可以同时写入WAL和Region的内存中。当Region内存中的数据满足预设的内存阈值时,将Region中的数据固化到磁盘上,同时在磁盘上生成存储文件Hfile,Hfile文件的元数据块中存储有该Region中数据记录的时间戳范围。
为避免影响数据库读数据的性能,当磁盘上存储文件Hfile的数量满足预设的数量阈值时,对磁盘上多个存储文件Hfile进行合并(Compaction),得到至少一个存储文件Hfile。
为防止***出现操作失误或者***故障导致的数据丢失,需要将***中的全部数据或者部分数据集合从应用主机的硬盘或者阵列复制到本地或者其他的安全存储介质中。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
为便于说明,结合图2对本发明实施例的技术方案进行详细的说明。应理解,这仅是用以说明本发明实施例的技术方案的一个例子,并不对本发明实施例构成任何的限定。
图2为本发明实施例提供的一种数据备份的方法的流程图,如图2所示,该方法100的执行主体为数据处理***,该方法100包括:
110,备份第一存储文件,并记录备份操作的第一时间点,其中,第一存储文件为在第一时间点之前,存储在第一存储介质上的多个存储文件;
120,当第一存储介质上的第二存储文件的数量满足预设阈值时,根据第一时间点,合并第二存储文件,得到至少两个第三存储文件;
130,根据第一时间点,对至少两个第三存储文件进行增量备份,增量备份为备份第一时间点之后的至少一个第三存储文件。
具体的,为保证数据库中的数据安全,将数据库中的全部数据或者部分数据进行备份。数据处理***可以包括多个终端,每个终端包括第一存储介质。
在110中,第一存储介质可以具体为磁盘。第一存储文件可以为一个或者多个终端的磁盘上的全部或者部分存储文件。在第一时间点,备份磁盘上的全部或者部分存储文件,记录当前备份文件的时间点。
可选地,在本发明实施例中,可以根据预设规则,备份第一存储文件。该预设规则可以为根据用户需求制定的数据备份的条件。例如,用户需要在每月的第一天进行一次全量备份,每天进行一次增量备份,该预设规则可以通过计时器或者其他实现用户需求的逻辑方法实现规则的制定。通过预设规则进行数据备份,既方便了用户的使用,又可以保证数据的可靠性。
应理解,在本发明实施例中,备份第一存储文件也可以为人为的主观行事。
在120中,第二存储文件为当前时间点第一存储介质上存储的存储文件,第二存储文件中包括备份过的第一存储文件和第一时间点到当前时间点之间新生成的存储文件。第三存储文件为将第二存储文件合并后生成的新的存储文件。当磁盘上的存储文件数量达到预设的数量阈值时,根据第一时间点,将第一时间点之前的存储文件和第一时间点之后的存储文件分别合成为至少一个存储文件。
在130中,将第一时间点之后的存储文件进行增量备份,读取所有存储文件的时间戳范围,查询第一时间点之后的存储文件,根据查询结果增量备份存储文件中数据。
可选地,在本发明实施例中,获取合并后的至少两个第三存储文件的时间戳范围,可以从每个第三存储文件的元数据块中获取时间戳范围。
在本发明实施例中,在根据所述第一时间点,对至少两个第三存储文件进行增量备份之后,该方法100还包括:记录增量备份操作的第二时间点,以用于根据所述第二时间点合并或备份新生成的存储文件。
具体的,数据处理***在对数据进行增量备份之后,记录当前增量备份操作的时间点,以便于在该时间点之后的时间段内,磁盘上的存储文件数量达到预设阈值时,数据处理***根据记录的该时间点合并存储文件,并将对合并后的增量数据进行备份。
采用本发明实施例提供的分布式数据库数据备份的方法,通过记录上一次备份的时间点,确定增量备份的文件,进行增量备份,避免了增量数据备份读取全表数据的过程,缩短了增量数据备份的时间,减少了增量数据备份对网络和磁盘资源的消耗。
优选地,在本发明另一实施例中,如图3所示,根据第一时间点,对至少两个第三存储文件进行增量备份,包括:
131,获取至少两个第三存储文件的时间戳范围;
132,根据至少两个第三存储文件的时间戳范围和所述第一时间点,确定增量备份的至少一个第三存储文件;
133,备份至少一个第三存储文件。
具体的,数据处理***读取合并后的所有存储文件的时间戳范围,根据每个存储文件的时间戳范围,确定属于时间戳范围在第一时间点之后的第三存储文件,备份确定的第一时间点之后的第三存储文件。
采用本发明实施例提供的分布式数据库数据备份的方法,通过记录上一次备份的时间点,确定增量备份的文件,进行增量备份,避免了增量数据备份读取全表数据的过程,缩短了增量数据备份的时间,减少了增量数据备份对网络和磁盘资源的消耗。
为便于说明,以第一存储介质为磁盘,磁盘上的存储文件满足5个存储文件时执行合并操作流程为例,对本发明实施例的技术方案进行详细的说明。应理解,这仅是用以说明本发明实施例的技术方案的一个例子,并不对本发明实施例构成任何的限定。
在时间点T1之前备份磁盘上存储的3个存储文件,分别为Hfile1、Hfile2和Hfile3,终端并记录备份操作的时间点T1;在时间点T1到时间点T2的时间内,磁盘上新生成2个存储文件Hfile4和Hfile5,此时,磁盘上的存储文件满足预设的数量阈值,根据记录的时间点T1,将时间点T1之前的3个存储文件Hfile1、Hfile2和Hfile3合并为一个存储文件Hfile6,将时间点T1之后的2个存储文件合并为一个存储文件Hfile7;在时间点T3时,终端读取合并后的2个存储文件Hfile6和Hfile7的时间戳范围,确定时间点T1后的存储文件Hfile7,备份确定的存储文件Hfile7,该存储文件中的数据为时间点T1后的增量数据,该备份过程称为增量备份。
应理解,在本发明实施例中,时间点T1、时间点T2和时间点T3是按照时间顺序排列的三个时间点。
在本发明实施例中,为存储文件Hfile以数字1-7的数字表示不同的存储文件,只是为了清楚描述本发明实施例的技术方案,在本发明实施例中,存储文件的区分依据每个存储文件的元数据块内容进行区分。
还应理解,在本发明实施例中,依第一存储介质上的存储文件数量满足预设阈值,执行存储文件的合并流程,只是为了详细描述本发明实施例的技术方案,在本发明实施例中,触发第一存储进行存储文件合并的条件还可以采用其他条件,在本发明的实施例中不作任何限制。
上文中结合图1至图3,详细描述了根据本发明实施例的数据备份的方法,下面将结合图4至图6,详细描述根据本发明实施例的数据处理***。
图4为本发明实施例提供的一种数据处理***的示意性框图。如图5所示的数据处理***400包括:备份模块410和合并模块420。
备份模块410,用于备份第一存储文件,并记录备份操作的第一时间点,其中,第一存储文件为在第一时间点之前,存储在第一存储介质上的多个存储文件;
合并模块420,用于当第一存储介质上的第二存储文件的数量满足预设阈值时,根据第一时间点,合并第二存储文件,得到至少两个第三存储文件;
备份模块410还用于,根据第一时间点,对至少两个第三存储文件进行增量备份,增量备份为备份第一时间点之后的至少一个第三存储文件。
具体的,第一存储介质可以具体为磁盘。第一存储文件可以为一个或者多个终端的磁盘上的全部或者部分存储文件。在第一时间点,备份模块410备份磁盘上的全部或者部分存储文件,记录当前备份文件的时间点。
可选地,在本发明实施例中,备份模块410可以根据预设规则,备份第一存储文件。该预设规则可以为根据用户需求制定的数据备份的条件。通过预设规则进行数据备份,既方便了用户的使用,又可以保证数据的可靠性。
应理解,在本发明实施例中,备份第一存储文件也可以为人为的主观行事。
第二存储文件为当前时间点第一存储介质上存储的存储文件,第二存储文件中包括备份过的第一存储文件和第一时间点到当前时间点之间新生成的存储文件。。第三存储文件为将第二存储文件合并后生成的新的存储文件。当磁盘上的存储文件数量达到预设的数量阈值时,合并模块420根据第一时间点,将第一时间点之前的存储文件和第一时间点之后的存储文件分别合成为至少一个存储文件。
备份模块410将第一时间点之后的存储文件进行增量备份,读取所有存储文件的时间戳范围,查询第一时间点之后的存储文件,根据查询结果增量备份存储文件中数据。
采用本发明实施例提供的分布式数据库数据备份的方法,通过记录上一次备份的时间点,确定增量备份的文件,进行增量备份,避免了增量数据备份读取全表数据的过程,缩短了增量数据备份的时间,减少了增量数据备份对网络和磁盘资源的消耗。
优选地,作为本发明的另一实施例,如图5所示,数据处理***还包括获取模块430和确定模块440,
获取模块430,用于获取至少两个第三存储文件的时间戳范围;
确定模块440,用于根据至少两个所述第三存储文件的时间戳范围和第一时间点,确定增量备份的至少一个第三存储文件;
备份模块410用于备份至少一个所述第三存储文件。
具体的,获取模块430读取合并后的所有存储文件的时间戳范围,根据每个存储文件的时间戳范围,确定模块440确定属于时间戳范围在第一时间点之后的第三存储文件,备份模块410备份确定的第一时间点之后的第三存储文件。
可选地,在本发明实施例中,获取模块430可以从每个第三存储文件的元数据块中获取时间戳范围。
在本发明实施例中,备份模块410还用于,记录增量备份操作的第二时间点,以用于根据所述第二时间点合并或备份新生成的存储文件。
具体的,备份模块410对数据进行增量备份之后,记录当前增量备份操作的时间点,以便于在该时间点之后的时间段内,磁盘上的存储文件数量达到预设阈值时,合并模块420根据记录的该时间点合并存储文件,备份模块410对该时间点之后的合并后的存储文件进行增量备份。
采用本发明实施例提供的分布式数据库数据备份的方法,通过记录上一次备份的时间点,确定增量备份的文件,进行增量备份,避免了增量数据备份读取全表数据的过程,缩短了增量数据备份的时间,减少了增量数据备份对网络和磁盘资源的消耗。
需要说明的是,在本发明实施例中,根据本发明实施例的数据处理***对应根据本发明实施例的方法100的执行主体,并且数据处理***中的各个模块的上述和其他操作和/或功能分别为了实现图2和图3中的各个方法的相应流程,为了简洁,在这里不再赘述。
图6为本发明实施例提供的又一数据处理***的示意图,如图6所示,该数据处理***600包括:处理器610和存储器620和通信总线***630,其中,处理器610和存储器620通过通信总线***630相连接。其中,
处理器610,用于备份第一存储文件,并记录备份操作的第一时间点,其中,第一存储文件为在第一时间点之前,存储在第一存储介质上的多个存储文件;
处理器610,用于当第一存储介质上的第二存储文件的数量满足预设阈值时,根据第一时间点,合并第二存储文件,得到至少两个第三存储文件;
处理器610还用于,根据第一时间点,对至少两个第三存储文件进行增量备份,增量备份为备份第一时间点之后的至少一个第三存储文件。
具体的,第一存储介质可以具体为磁盘。第一存储文件可以为一个或者多个终端的磁盘上的全部或者部分存储文件。在第一时间点,处理器610备份磁盘上的全部或者部分存储文件,记录当前备份文件的时间点。
在本发明实施例中,处理器610可以根据预设规则备份第一存储文件,该预设规则可以为根据用户的需求设定的数据备份的条件。在本发明实施例中,处理器610也可以通过用户个人的需求,主观执行数据备份时下发的指令进行第一存储文件的备份。
第二存储文件为当前时间点第一存储介质上存储的存储文件,第二存储文件可以包括备份过的第一存储文件和第一时间点到当前时间点新生成的存储文件。第三存储文件为将第二存储文件合并后生成的新的存储文件。当磁盘上的存储文件数量达到预设的数量阈值时,处理器610根据第一时间点,将第一时间点之前的存储文件和第一时间点之后的存储文件分别合成为至少一个存储文件。
处理器610将第一时间点之后的存储文件进行增量备份,读取所有存储文件的时间戳范围,查询第一时间点之后的存储文件,根据查询结果增量备份存储文件中数据。
采用本发明实施例提供的分布式数据库数据备份的方法,通过记录上一次备份的时间点,确定增量备份的文件,进行增量备份,避免了增量数据备份读取全表数据的过程,缩短了增量数据备份的时间,减少了增量数据备份对网络和磁盘资源的消耗。
应理解,在本发明实施例中,该处理器610可以是中央处理单元(CentralProcessing Unit,CPU),该处理器610还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该总线***630除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***630。
在实现过程中,上述方法的各步骤可以通过处理器610中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器610读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
存储器,该存储器可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
处理器610,用于获取至少两个第三存储文件的时间戳范围;
处理器610,用于根据至少两个所述第三存储文件的时间戳范围和第一时间点,确定增量备份的至少一个第三存储文件;
处理器610用于备份至少一个所述第三存储文件。
具体的,处理器610读取合并后的所有存储文件的时间戳范围,根据每个存储文件元数据块中的时间戳范围,处理器610确定属于时间戳范围在第一时间点之后的第三存储文件,处理器610备份确定的第一时间点之后的第三存储文件。
需要说明的是,在本发明实施例中,根据本发明实施例的数据处理***700对应根据本发明实施例的数据处理***400,并且数据处理***700中的各个模块的上述和其他操作和/或功能分别为了实现图2和图3中的各个方法的相应流程,为了简洁,在这里不再赘述。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。