CN115269270B - 备份合并的方法、装置和设备 - Google Patents

备份合并的方法、装置和设备 Download PDF

Info

Publication number
CN115269270B
CN115269270B CN202210922188.XA CN202210922188A CN115269270B CN 115269270 B CN115269270 B CN 115269270B CN 202210922188 A CN202210922188 A CN 202210922188A CN 115269270 B CN115269270 B CN 115269270B
Authority
CN
China
Prior art keywords
backup
bitmap
time
moment
incremental backup
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210922188.XA
Other languages
English (en)
Other versions
CN115269270A (zh
Inventor
杨海锋
范华
马立珂
王子骏
王贤达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Dingjia Computer Technology Co ltd
Original Assignee
Guangzhou Dingjia Computer Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Dingjia Computer Technology Co ltd filed Critical Guangzhou Dingjia Computer Technology Co ltd
Priority to CN202210922188.XA priority Critical patent/CN115269270B/zh
Publication of CN115269270A publication Critical patent/CN115269270A/zh
Application granted granted Critical
Publication of CN115269270B publication Critical patent/CN115269270B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种备份合并的方法、装置和设备,可以确定对应位置最终发生变化的数据块可由哪一次增量备份得到。该方法包括:获取各时刻的备份对应的异化位图;根据每个时刻的增量备份对应的异化位图的比特位的标志值是否为1,确定每个时刻的增量备份上最终变化的数据块;根据第1时刻的全量备份对应的异化位图的比特位的标志值是否为1,确定第1时刻的全量备份上未变化的数据块;将每个时刻的增量备份上最终变化的数据块,与第1时刻的全量备份上未变化的数据块进行合并,得到新的全量备份。

Description

备份合并的方法、装置和设备
技术领域
本申请涉及备份处理技术领域,特别是涉及一种备份合并的方法、装置、计算机设备。
背景技术
当今是一个信息化的大数据时代,因此对于数据信息的保护就尤为重要。其中对于重要的数据信息进行备份是对进行数据保护的一种重要手段。
目前对于数据的备份一般分为全量备份与增量备份,全量备份是指对于某个时间点上的所有数据或应用进行一个完全拷贝,但是此种方式备份时间极长,并且备份数据中存在大量的重复数据;增量备份是指针对上一次备份(可以是全量备份也可以是增量备份)只备份改变的数据,它的优点是数据量小,备份快,但是增量备份数据的恢复非常的麻烦,因为在数据的恢复过程中需要从上一次全量备份依次利用增量备份恢复,这不仅恢复时间长而且只要有一份备份数据发生损坏或者丢失恢复就会失败,同时无法对备份数据进行回收删除管理。因此,在实际处理中,在得到多个增量备份后,可以将全量备份和多个增量备份进行合并。
将多个增量备份与全量备份合并的过程中,而每一个增量备份都是以上一次备份为基础的,在经过多次增量备份后,对应位置数据块可能发生多次变化,所以有必要确定对应位置最终发生变化的数据块可由哪一次增量备份得到,将最终变化的数据块与全量备份未变化的数据块合并生成新的全量备份。但目前还没有可行的方案可以解决这个问题。
发明内容
基于此,有必要针对上述技术问题,提供一种备份合并的方法、装置、计算机设备。
本申请提供一种备份合并的方法,所述方法包括:
将数据文件分片为固定大小的数据块,对数据文件的数据块进行连续N个时刻的备份;其中,第1时刻的备份为全量备份,第2时刻到第N时刻的备份为增量备份;
获取各时刻的备份对应的位图;位图的每一比特位与数据文件的数据块一一对应;其中,下一时刻的备份对应的位图的比特位的标志值被设为1,以表示与该比特位对应的数据块从上一时刻到下一时刻发生变化;
将第2时刻到第N时刻的增量备份对应的位图相加,得到第N时刻对应的累积增量备份位图;
对第N时刻对应的累积增量备份位图的比特位进行取反,得到第1时刻的全量备份对应的异化位图;
将第N时刻的增量备份对应的位图作为其自身的异化位图;
获取第N-1时刻到第2时刻之间各时刻的增量备份对应的异化位图;
根据每个时刻的增量备份对应的异化位图的比特位的标志值是否为1,确定每个时刻的增量备份上最终变化的数据块;
根据第1时刻的全量备份对应的异化位图的比特位的标志值是否为1,确定第1时刻的全量备份上未变化的数据块;
将每个时刻的增量备份上最终变化的数据块,与第1时刻的全量备份上未变化的数据块进行合并,得到新的全量备份;
其中,第N-1时刻到第2时刻的增量备份对应的异化位图的获取方式为:将第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图相减,得到第N-1时刻对应的累积增量备份位图,将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份对应的位图做掩膜操作,得到第N-1时刻的增量备份对应的异化位图;将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份的异化位图相减,得到第N-2时刻对应的累积增量备份位图,将第N-2时刻对应的累积增量备份位图和第N-2时刻对应的增量备份的位图做掩膜操作,得到第N-2时刻对应增量备份对应的异化位图;重复上述过程直至得到第2时刻的增量备份对应的异化位图。
本申请还提供一种备份合并的装置,所述装置包括:
分片模块,用于将数据文件分片为固定大小的数据块;
备份模块,用于对数据文件的数据块进行连续N个时刻的备份;其中,第1时刻的备份为全量备份,第2时刻到第N时刻的备份为增量备份;
位图获取模块,用于获取各时刻的备份对应的位图;位图的每一比特位与数据文件的数据块一一对应;其中,下一时刻的备份对应的位图的比特位的标志值被设为1,以表示与该比特位对应的数据块从上一时刻到下一时刻发生变化;
位图相加模块,用于将第2时刻到第N时刻的增量备份对应的位图相加,得到第N时刻对应的累积增量备份位图;
异化位图获取模块,用于对第N时刻对应的累积增量备份位图的比特位进行取反,得到第1时刻的全量备份对应的异化位图;将第N时刻的增量备份对应的位图作为其自身的异化位图;获取第N-1时刻到第2时刻之间各时刻的增量备份对应的异化位图;其中,第N-1时刻到第2时刻的增量备份对应的异化位图的获取方式为:将第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图相减,得到第N-1时刻对应的累积增量备份位图,将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份对应的位图做掩膜操作,得到第N-1时刻的增量备份对应的异化位图;将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份的异化位图相减,得到第N-2时刻对应的累积增量备份位图,将第N-2时刻对应的累积增量备份位图和第N-2时刻对应的增量备份的位图做掩膜操作,得到第N-2时刻对应增量备份对应的异化位图;重复上述过程直至得到第2时刻的增量备份对应的异化位图;
最终变化数据块确定模块,用于根据每个时刻的增量备份对应的异化位图的比特位的标志值是否为1,确定每个时刻的增量备份上最终变化的数据块;
最终未变化数据块确定模块,用于根据第1时刻的全量备份对应的异化位图的比特位的标志值是否为1,确定第1时刻的全量备份上未变化的数据块;
备份合并模块,用于将每个时刻的增量备份上最终变化的数据块,与第1时刻的全量备份上未变化的数据块进行合并,得到新的全量备份。
本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行上述方法。
本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行上述方法。
本申请提供一种计算机程序产品,其上存储有计算机程序,所述计算机程序被处理器执行上述方法。
上述备份合并的方法、装置、计算机设备、存储介质和计算机程序产品,在对数据文件的数据块进行连续N个时刻的备份之后,在备份合并的过程中,第1时刻的全量备份对应的异化位图是通过对第N时刻对应的累积增量备份位图的比特位进行取反得到的,第N时刻的增量备份的异化位图是该时刻的增量备份对应的位图,至于第N-1时刻到第2时刻的增量备份的异化位图的获取方式,为:通过利用第N时刻的累积增量备份位图与第N时刻的增量备份的异化位图相减得到第N-1时刻的累积增量备份位图,将第N-1时刻累积增量备份位图与第N-1时刻的增量备份的位图做掩膜操作得到第N-1时刻增量备份的异化位图,按照该方式,依次得到第N-2时刻到第2时刻的增量备份的异化位图;在得到各时刻的增量备份对应的异化位图后,根据每个时刻的增量备份对应的异化位图的比特位的标志值是否为1,确定每个时刻的增量备份上最终变化的数据块,也即确定了对应位置最终发生变化的数据块可由哪一次增量备份得到,另外,在得到第1时刻的全量备份对应的异化位图后,根据第1时刻的全量备份对应的异化位图的比特位的标志值是否为1,确定第1时刻的全量备份上未变化的数据块,这样,无论数据文件进行多少次备份,只需合并增量备份上最终变化的数据块与第1时刻的全量备份上未变化的数据块,实现了快速合并;通过将多个增量备份与全量备份合并生成新时刻的全量备份,那么待合并完成后可以对已经合并过的备份进行回收删除管理,节约了资源,同时,若数据发生了损坏,也可以加速恢复的进程。
附图说明
图1为一个实施例中备份合并的方法的应用环境图;
图2为一个实施例中备份合并的方法的流程示意图;
图3为一个实施例中备份合并的方法的流程示意图;
图4为一个实施例中备份合并的方法的流程示意图;
图5为一个实施例中备份合并的装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请提供的备份合并的方法,可以应用于如图1所示的应用环境中。
如图1所示,分布式数据库(可以但不限于是TDSQL-PG数据库)包括多个数据库节点,每个数据库节点都有对应的备份客户端,一个数据库节点及其对应的备份客户端视为一个备份节点;例如,GTM和备份客户端a视为备份节点1。当启动备份流程时,备份管理系统向各备份客户端发送指令,备份客户端接收到指令后,对相应的数据库节点的数据文件进行备份,例如,备份客户端a对GTM的数据文件进行备份,备份客户端b对CN的数据文件进行备份。
对数据文件进行多次备份后,将各次备份得到的相关数据存储到备份存储系统中,通过永久增量备份合并单元进行合并。
在一个实施例中,如图2所示,提供了一种备份合并的方法,该方法可以由计算机设备执行,包括以下步骤:
步骤S201,将数据文件分片为固定大小的数据块,对数据文件的数据块进行连续N个时刻的备份。
在进行连续N个时刻的备份过程中,第1时刻的备份为全量备份,第2时刻到第N时刻的备份为增量备份。
全量备份是指对某一个时间点上的所有数据文件进行一个完全拷贝,增量备份是指备份上一次备份后所有发生变化的数据文件。
步骤S202,获取各时刻的备份对应的位图。
位图的每一比特位与数据文件的数据块一一对应,示例:有个n×m的位图,以及一个n×m的数据文件,那么位图第n行第m列的比特位和数据文件第n行第m列的数据块一一对应。
其中,下一时刻的备份对应的位图的比特位的标志值被设为1,以表示与该比特位对应的数据块从上一时刻到下一时刻发生变化;例如:数据文件第n行第m列数据块从上一时刻到下一个时刻发生了变化,那么下一时刻的位图的第n行第m列比特位标志值被设为1。
下一时刻的备份对应的位图的比特位的标志值被设为0,以表示与该比特位对应的数据块从上一时刻到下一时刻未发生变化。
第1时刻的全量备份初始bit为全部设为1,表示每个数据块都备份到了。
步骤S203,将第2时刻到第N时刻的增量备份对应的位图相加,得到第N时刻对应的累积增量备份位图。
上述相加的具体操作:若第2时刻到第N时刻的增量备份对应的位图的对应比特位的标志值不都为0,将对应比特位的标志值设为1;若第2时刻到第N时刻的增量备份对应的位图的对应比特位的标志值都为0,将对应比特位的标志值设为0;根据各比特位的标志值形成第N时刻对应的累积增量备份位图。
以N=5为例,结合图3介绍:
同一位图中,灰度较深的单元格表示对应比特位的标志值为1,较浅的单元格表示对应比特位的标志值为0。示例性的,第1时刻的全量备份的位图中,全部单元格的灰度较深,表示该位图的各比特位的标志值都为1;第2时刻的增量备份的第1行至第3行单元格灰度较浅,表示该位图第1行至第3行的比特位的标志值都为0。
在对第2时刻到第5时刻的增量备份的位图进行相加的时候,各位图的第4行第1列比特位的标志值不都为0,则在第5时刻对应的累积增量备份位图中,第4行第1列的比特位的标志值设为1。在对第2时刻到第5时刻的增量备份的位图进行相加的时候,各位图的第1行第1列比特位的标志值都为0,则在第5时刻对应的累积增量备份位图中,第1行第1列的比特位的标志值设为0。最后,根据得到各比特位的标志值形成第5时刻对应的累积增量备份位图。
步骤S204,对第N时刻对应的累积增量备份位图的比特位进行取反,得到第1时刻的全量备份对应的异化位图。
其中,取反的具体操作是将累积增量备份位图中比特位的标志值为1的置为0,比特位标志值为0的置为1。
步骤S205,将第N时刻的增量备份对应的位图作为其自身的异化位图。
因为在第N时刻进行合并,那么第N时刻的增量备份对应的位图所对应的数据块就是最终变化的数据块,所以,第N时刻的增量备份对应的位图就是第N时刻的增量备份的异化位图。
示例性的,以N=5为例,如图3所示,第5时刻增量备份的异化位图就是第5时刻的增量备份对应的位图。
步骤S206,获取第N-1时刻到第2时刻之间各时刻的增量备份对应的异化位图。
其中,第N-1时刻到第2时刻的增量备份对应的异化位图的获取方式为:将第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图相减,得到第N-1时刻对应的累积增量备份位图,将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份对应的位图做掩膜操作,得到第N-1时刻的增量备份对应的异化位图;将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份的异化位图相减,得到第N-2时刻对应的累积增量备份位图,将第N-2时刻对应的累积增量备份位图和第N-2时刻对应的增量备份的位图做掩膜操作,得到第N-2时刻对应增量备份对应的异化位图;重复上述过程直至得到第2时刻的增量备份对应的异化位图。
上述相减的具体操作为(以第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图进行相减为例,其他时刻对应的相减操作可以参照该方式):若第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图对应比特位的标志值都为1,将对应比特位的标志值设为0;若第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图对应的比特位的标志值分别为1和0,将对应比特位的标志值设为1;根据各比特位的标志值形成第N-1时刻对应的累积增量备份位图。
以N=5为例,结合图3介绍:
在对第5时刻的累积增量备份位图与第5时刻增量备份的异化位图相减时,第5时刻的累积增量备份位图的第5列的比特位的标志值都为1,第5时刻的增量备份的异化位图的第5列的比特位的标志值都为1,那么生成的第4时刻的累积增量备份位图第五列的比特位的标志值为0;第5时刻的累积增量备份位图的第4列的第1行比特位的标志值都为0,第4列的第2、3、4行比特位的标志值为1,第5时刻增量备份的异化位图第4列都为0,那么生成的第4时刻的累积增量备份位图第4列的第1、2、3、4行比特位的标志值分别为0、1、1、1;
根据上述方法,得到第4时刻的累积增量备份位图,将第4时刻的累积增量备份位图与第4时刻的增量备份位图做掩膜操作得到第4时刻增量备份的异化位图;
根据上述方法,得到第2、3、4时刻的增量备份的异化位图。
步骤S207,根据每个时刻的增量备份对应的异化位图的比特位的标志值是否为1,确定每个时刻的增量备份上最终变化的数据块;
在连续N个时刻的备份中,数据块可能发生了多次变化,其中,最后发生变化的时刻对应的数据块为最终变化的数据块。如果某个时刻的增量备份对应的异化位图的某个比特位的标志值为1,那么该比特位对应的数据块为最终变化的数据块。
步骤S208,根据第1时刻的全量备份对应的异化位图的比特位的标志值是否为1,确定第1时刻的全量备份上未变化的数据块;
步骤S209,将每个时刻的增量备份上最终变化的数据块,与第1时刻的全量备份上未变化的数据块进行合并,得到新的全量备份。
新的全量备份是相对于上一时刻的全量备份来说的。
合并的具体步骤包括:
遍历最后一个增量备份的数据文件的索引文件,生成空的全量备份数据文件;对每个空全量备份数据文件,根据每个备份的异化位图文件,将每个备份上最终变化的块复制过来,得到合并后的全量备份;重置生成新的位图文件;更新当前数据文件的timestamp(时间戳)为最后增量备份的timestamp;标记当前数据文件应用完成;
上述实施例中,在对数据文件的数据块进行连续N个时刻的备份之后,在备份合并的过程中,第1时刻的全量备份对应的异化位图是通过对第N时刻对应的累积增量备份位图的比特位进行取反得到的,第N时刻的增量备份的异化位图是该时刻的增量备份对应的位图,至于第N-1时刻到第2时刻的增量备份的异化位图的获取方式,为:通过利用第N时刻的累积增量备份位图与第N时刻的增量备份的异化位图相减得到第N-1时刻的累积增量备份位图,将第N-1时刻累积增量备份位图与第N-1时刻的增量备份的位图做掩膜操作得到第N-1时刻增量备份的异化位图,按照该方式,依次得到第N-2时刻到第2时刻的增量备份的异化位图;在得到各时刻的增量备份对应的异化位图后,根据每个时刻的增量备份对应的异化位图的比特位的标志值是否为1,确定每个时刻的增量备份上最终变化的数据块,也即确定了对应位置最终发生变化的数据块可由哪一次增量备份得到,另外,在得到第1时刻的全量备份对应的异化位图后,根据第1时刻的全量备份对应的异化位图的比特位的标志值是否为1,确定第1时刻的全量备份上未变化的数据块,这样,无论数据文件进行多少次备份,只需合并增量备份上最终变化的数据块与第1时刻的全量备份上未变化的数据块,实现了快速合并;通过将多个增量备份与全量备份合并生成新时刻的全量备份,那么待合并完成后可以对已经合并过的备份进行回收删除管理,节约资源,同时,若数据发生了损坏,也可以加速恢复的进程。
在一个实施例中,本申请提供的方法还包括:通过任务状态机,存储步骤S201到S209的每步操作的操作状态与参数;当发生异常时,通过加载任务状态机存储的每步操作的操作状态与参数,确定发生所述异常的断点处,并从所述断点处继续处理。
上述实施例中,通过建立任务状态机记录步骤S201到S209的每步操作的执行情况,每步操作前都预先将当前操作状态和参数写入到非易失存储系统,实行了在合并任务异常中止后,调度引擎根据任务状态机文件可以无缝修复任务上下文并继续被中止的合并任务。
在一个实施例中,获取各时刻的备份对应的位图的步骤,具体可以包括:枚举数据文件的索引文件,根据数据文件的索引文件,生成全量备份对应的位图;将上一时刻的位图和更新后的上一时刻的位图的对应位进行对比,确定发生变化的数据块和没有发生变化的数据块;将发生变化的数据块对应的比特位的标志值置为1,将没有发生变化的数据块对应的比特位的标志值置为0,得到下一时刻的增量备份的位图。
那么在备份时就可以通过位图来跟踪变化的数据块,只备份数据文件增量变化的部分。
在一个实施例中,将每个时刻的增量备份上最终变化的数据块,与第1时刻的全量备份上未变化的数据块进行合并之前,确定从第1时刻的全量备份开始之后进行增量备份的次数;当次数达到设定值时,获取各时刻的增量备份上最终变化的数据块,并与第1时刻的全量备份上未变化的数据块进行合并。
上述的设定值为将多个增量备份与全量备份合并的个数要求,示例:假如设定值为3,第1时刻进行了一次全量备份,第2时刻进行了一次增量备份,第3时刻进行了一次增量备份,那么在第3时刻增量备份的个数为2,没有达到设定值,则不进行合并。当第4时刻进行了一次增量备份后,此时增量备份的个数为3,达到了设定值,进行合并。
在一个实施例中,在获取各时刻的备份的异化位图之前,对获取异化位图的操作和合并得到新的全量备份的操作所需的最低存储空间进行预估;若实际存储空间大于预估到的最低存储空间,则执行获取异化位图的操作和合并得到新的全量备份的操作。
上述对获取异化位图的操作和合并得到新的全量备份的操作所需的最低存储空间进行预估,具体包括如下步骤:
加载第N时刻的增量备份的位图;对第N时刻的增量备份的位图的位图长度进行求和;根据求和结果、数据块大小和预设的安全系数,预估得到对获取异化位图的操作和合并得到新的全量备份的操作所需的最低空间。
上述方法的具体公式为:∑位图文件bit-map-length×8×块大小×安全系数;bit-map-length为位图长度,所述的安全系数选择1.1到1.5之间的系数,主要根据业务系统运行情况调整。
为了更好地理解上述方法,以下详细阐述一个本申请备份合并的方法的应用实例。
本实施例的主要内容包括:
1.备份时通过位图文件来跟踪变化的数据块,只备份数据文件增量变化的部分。
2.在存储服务器上通过位图加法技术周期性将增量备份合并到全量备份上,生成新时间点的全量备份。这样,首次数据库全量备份后,可以一直只做数据库的增量备份,并且每个增量备份在后台都能通过合并操作转变为新时间点的全量备份。
3.恢复时先找到恢复时间点最近的全量备份,通过位图减法技术恢复增量备份,最终快速恢复数据库。
4.在任务异常终止后,程序重新启动时,从状态机信息文件中恢复断点,继续合并操作,到达高容错的自修复机制。
本实施例,具体包括如下步骤:
备份流程:
1.创建备份策略任务,声明备份时间,备份类型等;
2.调度引擎调度任务执行;
3.任务分发单元将任务分发给所有GTM节点,CN节点,DN节点;
4.各个节点将任务进度发送给任务管理节点,有进度管理模块汇总输出总进度;
5.执行备份任务
5.1每个CN节点上执行禁止DDL(DataDefinitionLanguage,库数据模式定义语言)语句,pgxc_lock_for_backup();
5.2每个DN备节点执行pg_start_backup();
所述pgxc_lock_for_backup(),pg_start_backup()为程序执行语句;
5.3每个DN备节点进行全量或增量备份;
5.3.1执行全量备份
5.3.1.1生成timestamp(时间戳)标记t0,枚举所有数据文件输出索引文件;
5.3.1.2根据数据文件的索引文件生成每个数据文件的数据块位图,输出数据库位图文件;位图格式为:
|Datafile1-Inde(索引)|timestamp|bit-map-length|bit-map-data|bit-map-eof-mark|
|Datafile2-Index|timestamp|bit-map-length|bit-map-data|....|
bit-map-data全部比特位标志值位置为1;
5.3.1.3备份索引文件、位图文件;备份每个数据文件;
5.3.2执行首次增量备份
5.3.2.1生成timestamp标记t1,枚举所有数据文件更新索引文件;
5.3.2.2更新数据库位图文件;对比特位标志值为1的数据块检查t0以来若没有发生变化,将标志值位置为0;
5.3.2.3备份索引文件、位图文件;根据位图文件备份每个数据文件变化的数据块(比特位标志值为1的块);
5.3.3执行二次增量备份
5.3.3.1生成timestamp标记t2,枚举所有数据文件更新索引文件;
5.3.3.2更新数据库位图文件;对比特位标志值为0的数据块检查t1以来若发生变化,将标志值位置为1;对比特位标志值为1的数据块检查t1以来若没有发生变化,将标志值位置为0;
5.3.3.3备份索引文件、位图文件;根据位图文件备份每个数据文件变化的数据块(比特位标志值为1的块);
5.3.4后续增量备份,依次类推;
5.4每个DN备节点执行pg_stop_backup();
5.5每个DN主节点执行切换日志:pg_switch_wal(),备份WAL日志文件;
所述pg_switch_wal()为程序执行语句;
5.6备份backup_label文件;
5.7获取数据库集群元数据信息,并根据本次备份信息生成catalog记录。
上述catalog为数据库用语,记录了每次备份的元数据信息,主要用于扫描备份片,文件拷贝等。
合并流程包括增量备份保留个数为0与增量备份保留个数为N(N>0)这两种合并流程。
下面结合图4介绍增量备份保留个数位0,即每生成一个增量备份就与上一个全量备份合并的具体流程:
步骤S401,在存储服务器上创建合并备份集的策略任务:选择inplace merge或clone merge,定义增量保留个数,任务执行时间,写前复制等参数;上述inplace merge与clone merge为合并的方法。
步骤S402,调度引擎调度任务执行;
接着执行合并备份操作:
步骤S403,从catalog加载最后的全量备份的元数据信息;当前增量备份的元数据信息;
步骤S404,建立任务状态机文件,记录合并操作的每个阶段的执行情况,每步操作前都预先将当前操作状态和参数写入到非易失存储系统;其运作机制类似数据库事务的写前日志,在合并任务异常中止后,调度引擎根据任务状态机文件可以无缝修复任务上下文并继续被中止的合并任务;
上述元数据信息记录了本次备份发生的开始时间、结束时间,备份产生的文件及其存储位置、大小,本次备份可以恢复的时间点等等信息。
步骤S405,选择合并方法;
1.若选择的是clone merge:
步骤S406,加载最后增量备份的位图文件;
步骤S407,执行预估合并操作最低所需存储空间;若可用空间不足,报错退出;计算公式:∑位图文件bit-map-length×8×块大小×安全系数
除了数据文件数据,中间还产生新的位图文件,预留状态机文件空间等,故增加安全系数(选择1.1~1.5之间的系数,根据业务系统运行情况调整)
为提高合并操作的成功系数,采取存储空间预先分配的占用策略,由空间管理模块预先创建n个文件把所需空间占用下来。
2.若选择的是inplace merge:
步骤S408,加载最后全量备份的位图文件A和最后的增量备份的位图文件B;
步骤S409,执行预估合并操作最低所需存储空间;若可用空间不足,报错退出;无写前复制的计算公式:abs(∑位图文件Bbit-map-length-∑位图文件Abit-map-length)×8×块大小×安全系数
为提高合并操作的成功系数,采取存储空间预先分配的占用策略,由空间管理模块预先创建n个文件把所需空间占用下来。
1.若选择的是clone merge:
步骤S410,在合并的过程中,根据总体进度,逐步删除预先创建的占位文件释放空间;加载增量备份的数据文件的索引文件;根据数据文件的索引文件创建新的数据文件空文件,合并后的新数据将写入这些空文件;
步骤S411,对每个数据文件,加载增量备份的位图文件;若比特位标志值为0,复制全量备份的数据文件的块数据;若比特位标志值为1,复制当前增量备份的数据文件的块数据;最终生成新的全量备份的数据文件;重置生成新的位图文件;
步骤S412,判断所有的数据文件是否合并完成;
步骤S413,若当前增量备份的所有数据文件都已合并完成,插入新的全量备份的catalog信息;
步骤S421,生成合并历史记录;输出审计信息,合并任务结束。
2.若选择的是inplace merge:
步骤S414,判断是否设置了写前复制参数;
步骤S415,若设置了写前复制参数,在合并的过程中,根据总体进度,逐步删除预先创建的占位文件释放空间;
步骤S416,写全量备份的数据文件前先做复制备份;在合并任务非预期失败或中止后,当前全量备份仍然可以用于做恢复;
步骤S417,对每个数据文件,加载增量备份的位图文件;增量位图文件若比特位标志值为0直接忽略;若比特位标志值为1,复制当前增量备份的数据文件的块数据到全量备份的数据文件上;
步骤S418,判断所有的数据文件是否合并完成;重置生成新的位图文件;标记当前增量备份数据文件应用完成;
步骤S419,若当前增量备份的所有数据文件都已合并到前全备后,更新当前全量备份数据文件、位图文件的timestamp;
步骤S420,删除当前增量备份;更新当前全量备份的catalog信息;
重复通过空间管理模块预先创建n个文件把所需空间占用下来,以及在合并的过程中,根据总体进度,逐步删除预先创建的占位文件释放空间;加载增量备份的datafile索引文件;直到所有数据文件完成转换;
步骤S421,生成合并历史记录;输出审计信息,合并任务结束。
上述审计信息为合并过程中相关操作的日志信息,例如:删除操作,那么审计信息就记录了删除的位置、时间、对象以及操作是否成功,审计信息可以用来对软件的行为进行审计。
增量备份保留个数为N(N>0),即将(N+1)个增量备份与全量备份合并的具体流程:
1.在存储服务器上创建保留N个增量保留个数的合并备份集的策略任务:选择inplace merge,定义增量保留个数,任务执行时间等参数;
2.调度引擎调度任务执行;
3.查询catalog,如果最后全量备份记录后的增量备份个数小于等于N,结束合并流程;
4.执行合并备份操作;
4.1建立任务状态机文件,记录合并操作的每个阶段的执行情况,每步操作前都预先将当前操作状态和参数写入到非易失存储系统;其运作机制类似数据库事务的写前日志,在合并任务异常中止后,调度引擎根据任务状态机文件可以无缝修复任务上下文并继续被中止的合并任务;
4.2从catalog加载最后的全量备份的元数据信息;及其后续的(N+1)个增量备份的元数据信息;
5.从(N+1)个增量备份的位图文件生成累积增量备份位图文件;
5.1遍历最后一个增量备份的数据文件索引文件,生成空的增量累积备份位图文件;
5.2从前到后,逐个加载增量备份的位图文件,执行比特位或操作将比特位标志值为1的位叠加到累积增量备份位图文件;
6.预估合并操作最低所需存储空间;若可用空间不足,报错退出;
6.1加载最后增量备份的位图文件,计算公式:∑位图文件bit-map-length×8×块大小×安全系数
除了数据文件数据,中间还产生新的位图文件,预留状态机文件空间等,故增加安全系数(选择1.1~1.5之间的系数,根据业务系统运行情况调整)
7.生成每个备份的异化位图文件(比特位标志值为1的块才需复制到最终的合并全量备份片上);
7.1累积增量备份位图文件的比特位标志值取反,得到全量备份的异化位图文件;
7.2最后一个增量备份的所有块都需要复制,故其位图文件已经是异化位图,不需变动;
7.3累积增量备份位图文件减去最后一个增量备份的位图,得到新的累积增量备份位图与倒数第二的增量备份位图做掩模操作(对增量位图中比特位标志值1但是在累积增量备份为图0的位置0),得到倒数第二的增量备份异化位图;
7.4同理,最新的累积增量备份位图减去倒数第二的增量备份异化位图,得到新的累积增量备份位图与倒数第三的增量备份位图做掩模操作,得到倒数第三的增量备份异化位图;重复这个过程,直至所有增量备份异化位图生成;
8.根据每个备份的异化位图文件,生成最终的合并全量备份;
8.1遍历最后一个增量备份的数据文件的索引文件,生成空的全量备份数据文件;
8.2对每个空全量备份数据文件,根据每个备份的异化位图文件,将每个备份上最终变化的块复制过来,得到合并后的全量备份;
8.3重置生成新的位图文件;更新当前数据文件的timestamp为最后增量备份的timestamp;标记当前数据文件应用完成;
8.4重复8.2和8.3直至所有数据文件完成;
9.插入新的全量备份的catalog信息;
10.删除最后的增量备份,标记其catalog信息失效;生成合并历史记录;输出审计信息;
假设备份序列是F-I-I-I-I-I-I-I-I-I-I(F代表全量,I代表增量),保留6个增量,那么合并完成后,备份序列变为F-I-I-I-I-I-I-F-I-I-I
11.若合并任务中途被异常中止,比如机器掉电重启后,调度引擎重新加载任务状态机文件;从断点处自我修复继续合并操作。
恢复流程:
1.根据catalog记录,选择可以恢复的时间点,根据catalog检查恢复所需备份片的依赖链表;
上述依赖链表即恢复过程中需要用到的备份。
2.调度引擎调度任务执行;
3.准备环境:停止所有节点pg_ctl stop-m immediate-D;
所述pg_ctl stop-m immediate-D为程序执行语句。
4.任务分发模块将任务分发给所有GTM节点,CN节点,DN节点;
5.执行恢复任务;
5.1还原全量备份的数据文件;
5.2还原每个增量备份的数据文件;
5.3恢复最后增量备份的WAL日志文件;
5.4执行PITR(Point-In-Time-Recover,时间点恢复);
5.4.1准备配置文件,修改postgresql.conf、postgresql.conf.user、pg_xlog_archive.conf、pg_hba.conf;
上述postgresql.conf、postgresql.conf.user、pg_xlog_archive.conf、pg_hba.conf为配置文件。
5.4.2根据catalog中记录的集群各个节点ip、port信息更新pgxc_node;
上述节点ip、port信息即节点的ip地址信息与端口信息;
上述pgxc_node为系统表。
5.4.3重启使路由信息生效,pg_ctl restart-Z coordinator-D;
上述pg_ctl restart-Z coordinator-D为程序执行语句。
本实施例具有如下效果:
1.通过位图跟踪数据文件的变化数据块,只备份变化的部分,达到快速备份的目的;
2.通过位图加法和减法操作,只合并最终变化的块数据。不管一个数据文件发生多少次备份,每个块生成了多少次备份,每个数据文件上的数据块只发生一次写操作,减少和并过程中的增量数据写入操作,达到快速合并的目的;
3.虽然一次全量备份后,后续做的都是增量备份,但是可以根据需要将中间的增量备份变为全量备份;并且根据需要,备份数据可以进行回收删除管理;
4.合并增量备份后,对任何时间点的恢复,恢复依赖链上最后增量备份与最近全量备份的距离被缩短,可以加速恢复过程。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。在一个实施例中,如图5所示,提供了一种备份合并的装置,包括:
分片模块501,用于将数据文件分片为固定大小的数据块;
备份模块502,用于对数据文件的数据块进行连续N个时刻的备份;其中,第1时刻的备份为全量备份,第2时刻到第N时刻的备份为增量备份;
位图获取模块503,用于获取各时刻的备份对应的位图;位图的每一比特位与数据文件的数据块一一对应;其中,下一时刻的备份对应的位图的比特位的标志值被设为1,以表示与该比特位对应的数据块从上一时刻到下一时刻发生变化;
位图相加模块504,用于将第2时刻到第N时刻的增量备份对应的位图相加,得到第N时刻对应的累积增量备份位图;
异化位图获取模块505,用于对第N时刻对应的累积增量备份位图的比特位进行取反,得到第1时刻的全量备份对应的异化位图;将第N时刻的增量备份对应的位图作为其自身的异化位图;获取第N-1时刻到第2时刻之间各时刻的增量备份对应的异化位图;其中,第N-1时刻到第2时刻的增量备份对应的异化位图的获取方式为:将第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图相减,得到第N-1时刻对应的累积增量备份位图,将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份对应的位图做掩膜操作,得到第N-1时刻的增量备份对应的异化位图;将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份的异化位图相减,得到第N-2时刻对应的累积增量备份位图,将第N-2时刻对应的累积增量备份位图和第N-2时刻对应的增量备份的位图做掩膜操作,得到第N-2时刻对应增量备份对应的异化位图;重复上述过程直至得到第2时刻的增量备份对应的异化位图;
最终变化数据块确定模块506,用于根据每个时刻的增量备份对应的异化位图的比特位的标志值是否为1,确定每个时刻的增量备份上最终变化的数据块;
最终未变化数据块确定模块507,用于根据第1时刻的全量备份对应的异化位图的比特位的标志值是否为1,确定第1时刻的全量备份上未变化的数据块;
备份合并模块508,用于将每个时刻的增量备份上最终变化的数据块,与第1时刻的全量备份上未变化的数据块进行合并,得到新的全量备份。
在一个实施例中,所述装置还包括任务状态机处理模块,用于通过任务状态机,存储步骤S201到S209的每步操作的操作状态与参数;当发生异常时,通过加载任务状态机存储的每步操作的操作状态与参数,确定发生所述异常的断点处,并从所述断点处继续处理。
在一个实施例中,位图获取模块503,用于枚举数据文件的索引文件,根据数据文件的索引文件,生成全量备份对应的位图;将上一时刻的位图和更新后的上一时刻的位图对应位进行对比对比,将发生变化的数据块对应的比特位的标志值置为1,将没有发生变化的数据块对应的比特位的标志值置为0,得到下一时刻的增量备份的位图。
在一个实施例中,所述装置还包括次数确定模块,用于确定从第1时刻的全量备份开始之后进行增量备份的次数;备份合并模块508,还用于当所述次数达到设定值时,获取各时刻的增量备份上最终变化的数据块,并与第1时刻的全量备份上未变化的数据块进行合并。
在一个实施例中,所述装置还包括空间预估模块,用于对获取异化位图的操作和合并得到新的全量备份的操作所需的最低存储空间进行预估;若实际存储空间大于预估到的最低存储空间,则执行获取异化位图的操作和合并得到新的全量备份的操作。
在一个实施例中,空间预估模块,还用于加载第N时刻的增量备份的位图;对第N时刻的增量备份的位图的位图长度进行求和;根据求和结果、数据块大小和预设的安全系数,预估得到合并操作所需的最低空间。
在一个实施例中,位图相加模块504,用于若第2时刻到第N时刻的增量备份对应的位图的对应比特位的标志值不都为0,将对应比特位的标志值设为1;若第2时刻到第N时刻的增量备份对应的位图的对应比特位的标志值都为0,将对应比特位的标志值设为0;最终根据各比特位的标志值得到第N时刻对应的累积增量备份位图。
在一个实施例中,所述异化位图获取模块505还包括位图相减子模块,位图相减子模块,用于若第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图对应比特位的标志值都为1,将对应比特位的标志值设为0;若第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图对应的比特位的标志值分别为1和0,将对应比特位的标志值设为1;最终根据各比特位的标志值得到第N-1时刻对应的累积增量备份位图。
关于备份合并的装置的具体限定可以参见上文中对于备份合并的方法的限定,在此不再赘述。上述备份合并的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储备份合并的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机设备还包括输入输出接口,输入输出接口是处理器与外部设备之间交换信息的连接电路,它们通过总线与处理器相连,简称I/O接口。该计算机程序被处理器执行时以实现一种备份合并的方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,其上存储有计算机程序,所述计算机程序被处理器执行上述各个方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上的实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种备份合并的方法,其特征在于,
将数据文件分片为固定大小的数据块,对数据文件的数据块进行连续N个时刻的备份;其中,第1时刻的备份为全量备份,第2时刻到第N时刻的备份为增量备份;
获取各时刻的备份对应的位图;位图的每一比特位与数据文件的数据块一一对应;其中,下一时刻的备份对应的位图的比特位的标志值被设为1,以表示与该比特位对应的数据块从上一时刻到下一时刻发生变化;
将第2时刻到第N时刻的增量备份对应的位图相加,得到第N时刻对应的累积增量备份位图,包括:若第2时刻到第N时刻的增量备份对应的位图的对应比特位的标志值不都为0,将对应比特位的标志值设为1;若第2时刻到第N时刻的增量备份对应的位图的对应比特位的标志值都为0,将对应比特位的标志值设为0;根据各比特位的标志值,形成第N时刻对应的累积增量备份位图;
对第N时刻对应的累积增量备份位图的比特位进行取反,得到第1时刻的全量备份对应的异化位图;
将第N时刻的增量备份对应的位图作为其自身的异化位图;
获取第N-1时刻到第2时刻之间各时刻的增量备份对应的异化位图;
根据第2时刻至第N时刻之间每个时刻的增量备份对应的异化位图的比特位的标志值是否为1,确定第2时刻至第N时刻之间每个时刻的增量备份上最终变化的数据块;
根据第1时刻的全量备份对应的异化位图的比特位的标志值是否为1,确定第1时刻的全量备份上未变化的数据块;
将第2时刻至第N时刻之间每个时刻的增量备份上最终变化的数据块,与第1时刻的全量备份上未变化的数据块进行合并,得到新的全量备份;
其中,第N-1时刻到第2时刻的增量备份对应的异化位图的获取方式为:将第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图相减,得到第N-1时刻对应的累积增量备份位图,将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份对应的位图做掩膜操作,得到第N-1时刻的增量备份对应的异化位图;将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份的异化位图相减,得到第N-2时刻对应的累积增量备份位图,将第N-2时刻对应的累积增量备份位图和第N-2时刻对应的增量备份的位图做掩膜操作,得到第N-2时刻对应增量备份对应的异化位图;重复上述过程直至得到第2时刻的增量备份对应的异化位图;
将第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图相减,得到第N-1时刻对应的累积增量备份位图,包括:若第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图对应比特位的标志值都为1,将对应比特位的标志值设为0;若第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图对应的比特位的标志值分别为1和0,将对应比特位的标志值设为1;根据各比特位的标志值,形成第N-1时刻对应的累积增量备份位图。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过任务状态机,存储权利要求1的每步操作的操作状态与参数;
当发生异常时,通过加载任务状态机存储的每步操作的操作状态与参数,确定发生所述异常的断点处,并从所述断点处继续处理。
3.根据权利要求1所述的方法,其特征在于,获取各时刻的备份对应的位图,包括:
枚举数据文件的索引文件,根据数据文件的索引文件,生成全量备份对应的位图;
将上一时刻的位图和更新后的上一时刻的位图的对应位进行对比,确定发生变化的数据块和没有发生变化的数据块;将发生变化的数据块对应的比特位的标志值置为1,将没有发生变化的数据块对应的比特位的标志值置为0,得到下一时刻的增量备份的位图。
4.根据权利要求1所述的方法,其特征在于,在将第2时刻至第N时刻之间每个时刻的增量备份上最终变化的数据块,与第1时刻的全量备份上未变化的数据块进行合并之前,所述方法还包括:
确定从第1时刻的全量备份开始之后进行增量备份的次数;
将第2时刻至第N时刻之间每个时刻的增量备份上最终变化的数据块,与第1时刻的全量备份上未变化的数据块进行合并,包括:
当所述次数达到设定值时,获取第2时刻至第N时刻之间各时刻的增量备份上最终变化的数据块,并与第1时刻的全量备份上未变化的数据块进行合并。
5.根据权利要求1所述的方法,其特征在于,在获取各时刻的备份的异化位图之前,所述方法还包括:
对获取异化位图的操作和合并得到新的全量备份的操作所需的最低存储空间进行预估;
若实际存储空间大于预估到的最低存储空间,则执行获取异化位图的操作和合并得到新的全量备份的操作。
6.根据权利要求5所述的方法,其特征在于,对获取异化位图的操作和合并得到新的全量备份的操作所需的最低存储空间进行预估,包括:
加载第N时刻的增量备份的位图;
对第N时刻的增量备份的位图的位图长度进行求和;
根据求和结果、数据块大小和预设的安全系数,预估得到合并操作所需的最低空间。
7.一种备份合并的装置,其特征在于,所述装置包括:
分片模块,用于将数据文件分片为固定大小的数据块;
备份模块,用于对数据文件的数据块进行连续N个时刻的备份;其中,第1时刻的备份为全量备份,第2时刻到第N时刻的备份为增量备份;
位图获取模块,用于获取各时刻的备份对应的位图;位图的每一比特位与数据文件的数据块一一对应;其中,下一时刻的备份对应的位图的比特位的标志值被设为1,以表示与该比特位对应的数据块从上一时刻到下一时刻发生变化;
位图相加模块,用于将第2时刻到第N时刻的增量备份对应的位图相加,得到第N时刻对应的累积增量备份位图,包括:若第2时刻到第N时刻的增量备份对应的位图的对应比特位的标志值不都为0,将对应比特位的标志值设为1;若第2时刻到第N时刻的增量备份对应的位图的对应比特位的标志值都为0,将对应比特位的标志值设为0;根据各比特位的标志值,形成第N时刻对应的累积增量备份位图;
异化位图获取模块,用于对第N时刻对应的累积增量备份位图的比特位进行取反,得到第1时刻的全量备份对应的异化位图;将第N时刻的增量备份对应的位图作为其自身的异化位图;获取第N-1时刻到第2时刻之间各时刻的增量备份对应的异化位图;其中,第N-1时刻到第2时刻的增量备份对应的异化位图的获取方式为:将第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图相减,得到第N-1时刻对应的累积增量备份位图,将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份对应的位图做掩膜操作,得到第N-1时刻的增量备份对应的异化位图;将第N-1时刻对应的累积增量备份位图和第N-1时刻的增量备份的异化位图相减,得到第N-2时刻对应的累积增量备份位图,将第N-2时刻对应的累积增量备份位图和第N-2时刻对应的增量备份的位图做掩膜操作,得到第N-2时刻对应增量备份对应的异化位图;重复上述过程直至得到第2时刻的增量备份对应的异化位图;
最终变化数据块确定模块,用于根据第2时刻至第N时刻之间每个时刻的增量备份对应的异化位图的比特位的标志值是否为1,确定第2时刻至第N时刻之间每个时刻的增量备份上最终变化的数据块;
最终未变化数据块确定模块,用于根据第1时刻的全量备份对应的异化位图的比特位的标志值是否为1,确定第1时刻的全量备份上未变化的数据块;
备份合并模块,用于将第2时刻至第N时刻之间每个时刻的增量备份上最终变化的数据块,与第1时刻的全量备份上未变化的数据块进行合并,得到新的全量备份;
将第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图相减,得到第N-1时刻对应的累积增量备份位图,包括:若第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图对应比特位的标志值都为1,将对应比特位的标志值设为0;若第N时刻对应的累积增量备份位图和第N时刻的增量备份的异化位图对应的比特位的标志值分别为1和0,将对应比特位的标志值设为1;根据各比特位的标志值,形成第N-1时刻对应的累积增量备份位图。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括任务状态机处理模块,用于:通过任务状态机,存储权利要求1的每步操作的操作状态与参数;当发生异常时,通过加载任务状态机存储的每步操作的操作状态与参数,确定发生所述异常的断点处,并从所述断点处继续处理。
9.根据权利要求7所述的装置,其特征在于,所述位图获取模块,还用于:枚举数据文件的索引文件,根据数据文件的索引文件,生成全量备份对应的位图;将上一时刻的位图和更新后的上一时刻的位图的对应位进行对比,确定发生变化的数据块和没有发生变化的数据块;将发生变化的数据块对应的比特位的标志值置为1,将没有发生变化的数据块对应的比特位的标志值置为0,得到下一时刻的增量备份的位图。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法。
CN202210922188.XA 2022-08-02 2022-08-02 备份合并的方法、装置和设备 Active CN115269270B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210922188.XA CN115269270B (zh) 2022-08-02 2022-08-02 备份合并的方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210922188.XA CN115269270B (zh) 2022-08-02 2022-08-02 备份合并的方法、装置和设备

Publications (2)

Publication Number Publication Date
CN115269270A CN115269270A (zh) 2022-11-01
CN115269270B true CN115269270B (zh) 2023-06-09

Family

ID=83746228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210922188.XA Active CN115269270B (zh) 2022-08-02 2022-08-02 备份合并的方法、装置和设备

Country Status (1)

Country Link
CN (1) CN115269270B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7802134B1 (en) * 2005-08-18 2010-09-21 Symantec Corporation Restoration of backed up data by restoring incremental backup(s) in reverse chronological order
US10055303B1 (en) * 2015-04-14 2018-08-21 EMC IP Holding Company LLC Virtual machine block and snapshot consolidation
US10353780B1 (en) * 2015-03-31 2019-07-16 EMC IP Holding Company LLC Incremental backup in a distributed block storage environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049353B (zh) * 2012-12-21 2016-01-06 华为技术有限公司 一种数据备份方法及相关装置
US10102078B1 (en) * 2015-09-30 2018-10-16 EMC IP Holding Company LLC Minimizing a footprint of incremental backups
US10430284B2 (en) * 2016-06-08 2019-10-01 International Business Machines Corporation Creating a full backup image from incremental backups
CN112631826B (zh) * 2019-10-09 2023-04-07 中移(苏州)软件技术有限公司 一种备份处理方法、装置及计算机可读存储介质
CN114020527A (zh) * 2021-10-28 2022-02-08 济南浪潮数据技术有限公司 快照恢复方法、装置、计算机设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7802134B1 (en) * 2005-08-18 2010-09-21 Symantec Corporation Restoration of backed up data by restoring incremental backup(s) in reverse chronological order
US10353780B1 (en) * 2015-03-31 2019-07-16 EMC IP Holding Company LLC Incremental backup in a distributed block storage environment
US10055303B1 (en) * 2015-04-14 2018-08-21 EMC IP Holding Company LLC Virtual machine block and snapshot consolidation

Also Published As

Publication number Publication date
CN115269270A (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
US9645892B1 (en) Recording file events in change logs while incrementally backing up file systems
US4459658A (en) Technique for enabling operation of a computer system with a consistent state of a linked list data structure after a main memory failure
US10204016B1 (en) Incrementally backing up file system hard links based on change logs
US11726883B2 (en) Fast and optimized restore using delta information
CN110795508B (zh) 数据的复制方法、装置、设备和存储介质
CN111638995A (zh) 元数据备份方法、装置及设备、存储介质
CN114721594A (zh) 一种分布式存储方法、装置、设备及机器可读存储介质
CN115826876A (zh) 数据写入方法、系统、存储硬盘、电子设备及存储介质
CN115756955A (zh) 一种数据备份、数据恢复的方法、装置及计算机设备
CN108984343B (zh) 一种基于内容分析的虚拟机备份及存储管理方法
CN109753381B (zh) 一种基于对象存储的持续数据保护方法
CN111488124A (zh) 一种数据更新方法、装置、电子设备及存储介质
CN114138192A (zh) 存储节点在线升级方法、装置、系统及存储介质
CN114116321A (zh) 一种冗余数据管理方法、装置、计算机设备和存储介质
CN115357429B (zh) 恢复数据文件的方法、装置和客户端
CN115269270B (zh) 备份合并的方法、装置和设备
CN112596959A (zh) 分布式存储集群数据备份方法及装置
CN113312309B (zh) 快照链的管理方法、装置和存储介质
CN116775377A (zh) 一种工作流节点间回退方法、装置及介质
CN114442944B (zh) 一种数据复制方法、系统及设备
CN108089942B (zh) 一种数据备份、恢复方法及装置
CN118331795B (zh) 在线备份设备和方法
CN116257531B (zh) 一种数据库空间回收方法
CN114442945B (zh) 一种数据复制方法、系统及设备
CN112559254B (zh) 备份文件的保留方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant