买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】数据备份方法及数据还原方法_上海达梦数据库有限公司_201810186108.2 

申请/专利权人:上海达梦数据库有限公司

申请日:2018-03-07

公开(公告)日:2021-02-09

公开(公告)号:CN108446187B

主分类号:G06F11/14(20060101)

分类号:G06F11/14(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.02.09#授权;2018.09.18#实质审查的生效;2018.08.24#公开

摘要:本发明实施例公开了一种数据备份方法及数据还原方法。所述数据备份方法包括:根据数据备份请求,识别与所述数据备份请求匹配的目标备份树,所述目标备份树中包括至少一个节点,不同节点对应不同的数据页;按照与所述目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与所述目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,所述数据页中记录有节点在所述目标备份树中的位置信息;在连续存储空间中顺序存储各所述备份数据页,所述存储顺序中携带有各备份数据页之间的逻辑关系。通过本发明的技术方案,能够对特定数据库对象进行高效、无损地数据备份和还原。

主权项:1.一种数据备份方法,其特征在于,包括:根据数据备份请求,识别与所述数据备份请求匹配的目标备份树,所述目标备份树中包括至少一个节点,不同节点对应不同的数据页;按照与所述目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与所述目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,所述数据页中记录有节点在所述目标备份树中的位置信息;在连续存储空间中顺序存储各所述备份数据页,存储顺序中携带有各备份数据页之间的逻辑关系;所述与所述目标备份树对应的数据页之间的逻辑关系匹配的备份规则,包括:将与目标节点对应的全部儿子节点的数据页以及所述目标节点的数据页进行顺序备份的规则,所述目标节点为具有儿子节点的中间节点和或根节点;相应的,在所述连续存储空间中,与同一所述目标节点对应的全部儿子节点的备份数据页顺序存储,所述目标节点的备份数据页存储于对应的所述全部儿子节点的备份数据页的存储位置的尾部,所述根节点的备份数据页存储于所述存储空间中的尾部;所述按照与所述目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与所述目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,包括:将所述目标备份树的根节点对应的第一数据页设置为当前页;获取所述当前页中记录的位置信息;如果根据所述位置信息确定所述当前页包括有未备份的儿子页,则按照设定顺序获取所述当前页中的一个所述未备份的儿子页作为新的当前页,并返回执行获取所述当前页中记录的位置信息的操作;如果根据所述位置信息确定所述当前页未包括有未备份的儿子页,则备份所述当前页,得到备份数据页,并在确定所述当前页不为所述第一数据页时,将所述当前页的父亲页设置为新的所述当前页后,返回执行获取所述当前页中记录的位置信息的操作;在确定所述当前页为所述第一数据页时,完成对所述目标备份树的备份。

全文数据:数据备份方法及数据还原方法技术领域[0001]本发明实施例涉及信息处理技术,尤其涉及一种数据备份方法及数据还原方法。背景技术[0002]随着信息时代的来临,数据安全越来越受到人们的重视,其中,数据备份可以说是保证数据安全的一种有效手段。目前,数据库常见的备份手段主要包括物理备份和逻辑备份。[0003]物理备份一般是从数据库存储角度进行,直接扫描数据文件,拷贝已经分配使用的数据页到备份文件中;还原时将数据页再拷贝到数据文件中。物理备份原理简单、效率高,但不方便过滤特定数据库对象使用的数据页,所以,物理备份不太适合备份特定的数据库对象,比如表。[0004]逻辑备份一般是通过执行SQL语句方式,将查询结果以文本形式保存在备份文件中,不涉及物理存储数据页,直接备份逻辑数据,可满足特定数据库对象如表的备份需求。但是,逻辑备份方式需要扫描所有数据页,解析出每一条记录,通过网络将数据从服务器端传递到导出工具客户端,并转换成字符串形式保存;还原过程则是将导出结果通过执行SQL语句的方式,重新将数据插入到数据库中。可见,在使用逻辑备份还原方式对表数据进行备份还原的过程中,存在记录解析、类型转换以及网络传递三个部分,因此,数据的备份还原效率不高,且浮点数的转换可能造成精度丢失的问题。发明内容[0005]本发明实施例提供一种数据备份方法及数据还原方法,以实现对特定数据库对象进行高效、无损地数据备份和还原。[0006]第一方面,本发明实施例提供了一种数据备份方法,包括:[0007]根据数据备份请求,识别与所述数据备份请求匹配的目标备份树,所述目标备份树中包括至少一个节点,不同节点对应不同的数据页;[0008]按照与所述目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与所述目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,所述数据页中记录有节点在所述目标备份树中的位置信息;[0009]在连续存储空间中顺序存储各所述备份数据页,所述存储顺序中携带有各备份数据页之间的逻辑关系。[0010]第二方面,本发明实施例还提供了一种数据还原方法,该方法包括:[0011]根据数据还原请求,获取与所述数据还原请求匹配的目标还原树包括的各个节点对应的备份数据页;[0012]根据所述备份数据页在连续存储空间中的存储顺序以及所述目标还原树包括的各个节点对应的备份数据页,还原得到所述目标还原树;[0013]其中,所述存储顺序与所述目标还原树对应的备份数据页之间的逻辑关系匹配的备份规则相关联。[0014]第三方面,本发明实施例还提供了一种数据备份装置,该装置包括:[0015]备份树识别模块,用于根据数据备份请求,识别与所述数据备份请求匹配的目标备份树,所述目标备份树中包括至少一个节点,不同节点对应不同的数据页;[0016]数据页备份模块,用于按照与所述目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与所述目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,所述数据页中记录有节点在所述目标备份树中的位置信息;[0017]备份页存储模块,用于在连续存储空间中顺序存储各所述备份数据页,所述存储顺序中携带有各备份数据页之间的逻辑关系。[0018]第四方面,本发明实施例还提供了一种数据还原装置,该装置包括:[0019]备份页获取模块,用于根据数据还原请求,获取与所述数据还原请求匹配的目标还原树包括的各个节点对应的备份数据页;[0020]还原树还原模块,用于根据所述备份数据页在连续存储空间中的存储顺序以及所述目标还原树包括的各个节点对应的备份数据页,还原得到所述目标还原树;[0021]其中,所述存储顺序与所述目标还原树对应的备份数据页之间的逻辑关系匹配的备份规则相关联。[0022]第五方面,本发明实施例还提供了一种计算机设备,该设备包括:[0023]一个或多个处理器;[0024]存储器,用于存储一个或多个程序;[0025]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的数据备份方法。[0026]第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的数据备份方法。[0027]第七方面,本发明实施例还提供了一种计算机设备,该设备包括:[0028]一个或多个处理器;[0029]存储器,用于存储一个或多个程序;[0030]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的数据还原方法。[0031]第八方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的数据还原方法。[0032]本发明实施例通过识别与数据备份请求匹配的目标备份树,按照与目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与该目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,并在连续存储空间中顺序存储各备份数据页,利用了按照一定备份规则备份并顺序存储的数据页能够保存数据页之间逻辑关系的优点,解决了现有技术中因单纯采用物理备份和逻辑备份的方式,而导致要么无法备份特定的数据库对象,要么备份还原效率低、数据有损的问题,实现了对特定数据库对象进行高效、无损地数据备份和还原的效果。附图说明[0033]图la是本发明实施例一提供的一种数据备份方法的流程示意图;[0034]图lb是本发明实施例一提供的一种3层B+树的结构示意图;[0035]图lc是本发明实施例一提供的一种优选备份规则下各备份数据页在连续存储空间中的分布情况示意图;[0036]图Id是本发明实施例一提供的一种优选备份规则下数据备份方法的流程示意图;[0037]图2a是本发明实施例二提供的一种数据还原方法的流程示意图;[0038]图2b是本发明实施例二提供的三个数组的结构示意图;[0039]图此是本发明实施例二提供的一种优选备份规则下数据还原方法的流程示意图;[0040]图3是本发明实施例三提供的一种数据备份装置的结构示意图;[0041]图4是本发明实施例四提供的一种数据还原装置的结构示意图;[0042]图5是本发明实施例五提供的一种计算机设备的结构示意图。具体实施方式[0043]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。[0044]实施例一[0045]图la为本发明实施例一提供的一种数据备份方法的流程示意图。该方法可适用于对树结构数据进行备份的情况,该方法可以由数据备份装置来执行,该装置可由硬件和或软件组成,并一般可集成在电脑、服务器以及所有包含数据备份功能的终端中。具体包括如下:[0046]S110、根据数据备份请求,识别与数据备份请求匹配的目标备份树,目标备份树中包括至少一个节点,不同节点对应不同的数据页。[0047]可选的,数据备份请求可以是针对数据库中特定数据库对象的备份请求,例如表,而存储该表内容的可以是一个数据树,例如B+树。示例性的,数据备份请求可由用户向数据库服务器发起,当数据库服务器接收到该数据备份请求时,可根据该数据备份请求识别出存储特定数据库对象内容的数据树,作为目标备份树。其中,从树结构上来看,目标备份树可包括至少一个节点,每个节点为一个数据页,也就是说,不同的节点可对应于不同的数据页。[0048]以B+树为例,每个B+树仅有一个根节点ROOT页,其中,ROOT页所在层数为B+树层数-1;最下层的数据页为叶子节点(LEAF页,其中,LEAF页所在层数为0,且无儿子页;中间层的数据页为中间节点(INNER页,其中,INNER页一定存在儿子页,并在每个数据页上记录了儿子页的个数以及每个儿子页的存储地址,例如,如图lb所示的3层B+树结构中,INNER⑼有3个儿子页,分别是LEAF⑼、LEAF⑴和LEAF⑵,因此,INNER⑼上记录了这三个儿子页的地址以及儿子个数3;同一层的数据页互为左右兄弟页,数据页上还记录了相互的兄弟关系,比如,如图lb所示,第0层LEVEL0中,LEAF⑼的左兄弟为空⑽LL,右兄弟为LEAF1,LEAFN的左兄弟为LEAFN-l,右兄弟为NULL,LEAF⑴的左兄弟为LEAFO,右兄弟为LEAF⑵等,因此,每个数据页上都记录有左右兄弟页的存储地址;R00T页也可以是LEAF页,比如B+树只有1层,若B+树层数大于1,则R〇〇T页一定存在儿子页。[0049]S120、按照与目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,数据页中记录有节点在目标备份树中的位置信息。[0050]可选的,对目标备份树进行数据备份时所使用的备份规则,可以用于决定对各节点对应的数据页进行备份的备份顺序,其中,不同的备份规则对应的备份顺序可不同,可选的,备份顺序可以是沿着目标备份树中的各个节点按照预设规律方向逐一进行备份的顺序,例如采用类似于后根遍历的方式进行备份。具体的,备份规则与目标备份树中各数据页之间的逻辑关系相匹配,其中,属于同一备份树的数据页之间的逻辑关系可包括父子关系以及兄弟关系。也就是说,可根据数据页之间的逻辑关系寻找到与当前数据页具有一定逻辑关系的数据页,进而推动备份工作的进行。具体的,可在遍历目标备份树中的各个节点对应的数据页的同时将当前数据页备份至备份文件中,生成对应的备份数据页。[0051]可选的,目标备份树中的每个数据页中都记录有该节点在目标备份树中的位置信息,其中,位置信息可以包括:该节点对应的数据页所在的层数、儿子个数,和或,与该数据页有父子关系和或兄弟关系的数据页的存储地址及该数据页自身的存储地址。[0052]优选的,与目标备份树对应的数据页之间的逻辑关系匹配的备份规则,包括:[0053]将与目标节点对应的全部儿子节点的数据页以及目标节点的数据页进行顺序备份的规则,目标节点为与具有儿子节点的中间节点和或根节点。[0054]可选的,顺序备份的规则是:先备份目标节点对应的全部儿子节点的数据页,再备份目标节点的数据页。其中,对目标节点对应的全部儿子节点的数据页的备份可以是连续的,也可以是不连续的,在此不作限定。例如,当目标节点对应的儿子节点为目标备份树中的叶子节点时,则备份是连续的;而当目标节点对应的儿子节点为目标备份树中的中间节点时,则备份是不连续的。可选的,当确定目标节点对应的全部儿子节点的数据页备份完成,则立即备份该目标节点的数据页。[0055]示例性的,举一种优选的备份规则,若目标备份树的备份中当前遍历的目标节点对应的数据页为第1层的INNER页,则可将该INNER页的所有儿子页即LEAF页依次备份完毕后再对该INNER页进行备份;若目标节点对应的数据页为ROOT页,则可将该ROOT页的儿子页gpINNER页针对3层及以上的目标备份树而言或LEAF页针对2层的目标备份树而言依次备份完毕后再对该ROOT页进行备份。举一个实际例子,如图lb所示,对于一个3层的目标备份树,可先备份INNER⑼的所有儿子页LEAF0、LEAF⑴和LEAF⑵,再备份INNER⑹,然后备份INNER1的所有儿子页,再备份INNER1,依次类推,直到备份完INNER⑽,最后备份ROOT页。[0056]可选的,对于3层及以上的目标备份树,按照该优选备份规则对该目标备份树进行备份,可呈现出如下规律:一个INNER页的儿子页先备份,紧接着是INNER页备份;同一层中属于不同INNER页的儿子页之间隔着一个INNER页的备份;ROOT页是在其他所有数据页都备份完毕之后才最后备份。[0057]优选的,按照与目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,包括:[0058]将目标备份树的根节点对应的第一数据页设置为当前页;[0059]获取当前页中记录的位置信息;[0060]如果根据位置信息确定当前页包括有未备份的儿子页,则按照设定顺序获取当前页中的一个未备份的儿子页作为新的当前页,并返回执行获取当前页中记录的位置信息的操作;[0061]如果根据位置信息确定当前页未包括有未备份的儿子页,则备份当前页,得到备份数据页,并在确定当前页不为第一数据页时,将当前页的父亲页设置为新的当前页后,返回执行获取当前页中记录的位置信息的操作;[0062]在确定当前页为第一数据页时,完成对目标备份树的备份。[0063]示例性的,如图Id所示,对目标备份树的备份步骤具体如下:[0064]S121、设置当前页为ROOT页。[0065]其中,目标备份树的根节点对应的第一数据页即为ROOT页。[0066]S122、判断当前页是否有还未备份的儿子页,若是,则执行S123;若否,则执行S124。[0067]具体的,可先获取当前页中记录的位置信息,根据该位置信息中包括的儿子页信息判断当前页是否还有为备份的儿子页。[0068]S123、按照设定顺序获取当前页中的一个未备份的儿子页作为新的当前页,并返回执行S122。[0069]其中,可选的,设定顺序可以是从左至右的顺序,也可以是从右至左的顺序,在此不作限定。示例性的,可按照从左至右的顺序获取第一个还未备份的儿子页作为新的当前页。[0070]S124、备份当前页,并判断当前页是否为ROOT页,若是,则执行S126;若否,则执行S125〇[0071]具体的,可将当前页拷贝至新的数据页中,以生成备份数据页。[0072]S125、将当前页的父亲页设置为新的当前页,并返回执行S122。[0073]S126、结束备份。[0074]按照以上的步骤对目标备份树进行备份,可实现按照上述优选的备份规则进行备份时所呈现出的规律性,当然,其他未列举的方式,例如调整未备份儿子页的获取顺序,也可得到类似的规律性,均属于本实施例所描述的备份方式。[0075]S130、在连续存储空间中顺序存储各备份数据页,存储顺序中携带有各备份数据页之间的逻辑关系。[0076]可选的,备份完成后,可将备份数据页按照备份先后顺序依次存储于一连续存储空间中,以实现将数据页之间的逻辑关系以连续存储空间中各数据页存储顺序的方式备份下来。[0077]由于本实施例实质是将目标备份树中的各数据页直接拷贝至新的数据页,并顺序存储在一连续存储空间中,从而最终完成对目标备份树的备份的,因此,当各备份数据页按照备份先后顺序进行存储时,所有同一层数据页之间的左右兄弟关系以及不同层数据页之间的父子关系,连同数据页本身一起被备份下来,形成一种新型的介于传统的物理备份和逻辑备份之间的半逻辑备份方式。因此,相应的,在对数据页进行还原时,可根据该存储顺序对数据页以及数据页之间的逻辑关系进行还原。由此可见,半逻辑的备份方式由于其备份时既可按照一定的逻辑顺序寻找特定的数据库对象进行备份,又无需经过复杂的逻辑数据转换过程,因而既克服了物理备份方式中不能单独备份特定数据库对象的缺陷,又解决了逻辑备份方式中数据备份还原效率低、数据易损失等问题,相比于传统的物理和逻辑的备份还原方式,半逻辑的备份还原方式可以实现更加高效、无损地对数据进行备份和还原。[0078]优选的,若与目标备份树对应的数据页之间的逻辑关系匹配的备份规则为,将与目标节点对应的全部儿子节点的数据页以及所述目标节点的数据页进行顺序备份的规则,则相应的,在连续存储空间中,与同一目标节点对应的全部儿子节点的备份数据页顺序存储,目标节点的备份数据页存储于对应的全部儿子节点的备份数据页的存储位置的尾部,根节点的备份数据页存储于存储空间中的尾部。[0079]举一个具体例子,将图lb中的数据树作为目标备份树,对该目标备份树按照如图Id所示的步骤进行备份,其中,同一层的数据页均按照从左至右依次备份的顺序进行备份,备份完成后,按照备份先后顺序从左至右依次存储在一连续存储空间中,可得到如图lc的备份数据页分布情况。[0080]本实施例的技术方案,通过识别与数据备份请求匹配的目标备份树,按照与目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与该目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,并在连续存储空间中顺序存储各备份数据页,利用了按照一定备份规则备份并顺序存储的数据页能够保存数据页之间逻辑关系的优点,解决了现有技术中因单纯采用物理备份和逻辑备份的方式,而导致要么无法备份特定的数据库对象,要么备份还原效率低、数据有损的问题,实现了对特定数据库对象进行高效、无损地数据备份和还原的效果。[0081]实施例二[0082]图2a为本发明实施例二提供的一种数据还原方法的流程示意图。该方法可适用于对树结构数据进行还原的情况,该方法可以由数据还原装置来执行,该装置可由硬件和或软件组成,并一般可集成在电脑、服务器以及所有包含数据还原功能的终端中。具体包括如下:[0083]S210、根据数据还原请求,获取与数据还原请求匹配的目标还原树包括的各个节点对应的备份数据页。[0084]可选的,数据还原请求可以是针对存储有目标还原树包括的各个节点对应的备份数据页的目标备份文件的还原请求。示例性的,数据还原请求可由用户向数据库服务器发起,当数据库服务器接收到该数据还原请求时,可根据该数据还原请求查询并识别出匹配的目标备份文件,从该目标备份文件中获取与数据还原请求匹配的各备份数据页,其中,可根据匹配的各备份数据页还原为目标还原树。具体的,还原树与备份树的结构一致,包括的各个节点所对应的数据页也一致,若备份树为B+树,则还原树也为B+树。[0085]S220、根据备份数据页在连续存储空间中的存储顺序以及目标还原树包括的各个节点对应的备份数据页,还原得到目标还原树。[0086]其中,存储顺序与目标还原树对应的备份数据页之间的逻辑关系匹配的备份规则相关联。[0087]可选的,由于连续存储空间中备份数据页的存储顺序能够反映出各备份数据页之间的逻辑关系,因此,可根据该存储顺序以及各备份数据页还原出与原目标备份树数据结构一致的目标还原树。其中,可用于还原同一还原树的各备份数据页之间的逻辑关系可包括父子关系以及兄弟关系。也就是说,可根据备份数据页的存储顺序恢复各备份数据页之间的逻辑关系,进而推动数据页还原工作的进行,最终还原得到目标还原树。具体的,可在恢复各个备份数据页之间的逻辑关系的同时,将当前备份数据页拷贝至目标数据库新建的数据页中,通过更新新建的数据页中记录的位置信息来还原目标还原树,其中,位置信息可以包括:该新建的数据页在目标还原树中的层数,和或,与该数据页有父子关系和或兄弟关系的其他拷贝后的新建的数据页的存储地址。[0088]优选的,与目标还原树对应的备份数据页之间的逻辑关系匹配的备份规则,包括:[0089]将与目标还原树对应的目标备份树上,目标节点对应的全部儿子节点的数据页以及目标节点的数据页进行顺序备份的规则,目标节点为具有儿子节点的中间节点和或根节点;[0090]相应的,在连续存储空间中,与同一目标节点对应的全部儿子节点的备份数据页顺序存储,目标节点的备份数据页存储于对应的全部儿子节点的备份数据页的存储位置的尾部,根节点的备份数据页存储于存储空间中的尾部。[0091]示例性的,上述优选的备份规则的说明可参见实施例一中对优选的备份规则的说明,在此不再赘述。[0092]优选的,根据备份数据页在连续存储空间中的存储顺序以及目标还原树包括的各个节点对应的备份数据页,还原得到目标还原树,包括:[0093]按照存储顺序,在连续存储空间中依次获取一个备份数据页作为待还原数据页,并获取所述待还原数据页所在层数;[0094]将待还原数据页拷贝至设定内存空间中作为一个已还原数据页;[0095]如果确定第一缓存空间对应的层空间中缓存有存储地址,则在设定内存空间中查找与该存储地址匹配的已还原数据页,并根据目标还原树的备份规则恢复设定内存空间中的已还原数据页以及待还原数据页的兄弟关系,所述层空间与所述待还原数据页所在层数相匹配;[0096]将待还原数据页的存储地址更新缓存于第一缓存空间对应的层空间中;[0097]如果确定待还原数据页存在儿子页,则根据第二缓存空间中的待还原数据页的全部儿子页对应的存储地址,恢复设定内存空间中的待还原数据页以及待还原数据页的全部儿子页的父子关系;[0098]如果确定待还原数据页不为根节点的数据页,则将待还原数据页在设定内存空间中对应的存储地址作为儿子页对应的存储地址缓存于第二缓存空间中后,返回执行按照存储顺序,在连续存储空间中依次获取一个备份数据页作为待还原数据页的操作;[0099]在确定待还原数据页为根节点的数据页时,完成对目标还原树的还原。[0100]示例性的,还原开始前,可首先申请三个数组,第一数组用于缓存每层最后还原的数据页,以恢复同层数据页之间的左右兄弟关系,称为B_ARRAY,一维数组,数组长度与目标还原树的层数相等;第二数组用于缓存一个INNER页中已经还原的儿子页,称为S_ARRAY,数组维度为二维,第一维数组的长度为目标还原树层数-1,第一维中每个数组元素缓存对应层中已经还原的儿子页,且每个数组的长度根据儿子页个数动态申请;第三数组用于记录INNER节点页中己经还原的儿子页数,与S_ARRAY配合使用,称为S_NUM_ARRY,一维数组,数组长度为目标还原树层数-1。这三个数组初始均为空。以目标还原树为3层B+树为例,申请的三个数组的结构示意图如图2b,第一数组1$PB_ARRAY中,L_0代表第0层LEVEL0;第二数组2_S_ARRAY中,L_1_S_0代表第1层的第〇个儿子页;第三数组3SPS_NUM_ARRY中,L_l_sn=n代表第1层已还原儿子个数为n。[0101]以3层B+树为例,对按照实施例一中提到的优选的备份规则儿子页的备份顺序为从左至右的顺序进行备份的3层B+树进行还原,如图2c所示,还原步骤具体如下:[0102]S2201、新建数S_ARRAY以及S_NUM_ARRY,并获取目标还原树的层数。[0103]示例性的,数组B_ARRAY即第一数组,也即第一缓存空间;数组S_ARRAY即第二数组,也即第二缓存空间;数组S_NUM_ARRY即第三数组。可选的,可通过读取备份数据页中携带的目标还原树信息,也可通过读取数据还原请求中携带的有关目标还原树信息,获取目标还原树的层数L。[0104]S22〇2、按照存储顺序,在连续存储空间中依次获取一个备份数据页作为待还原数据页,并获取待还原数据页所在层数V。[0105]可选的,可在获取待还原数据页的同时,读取该待还原数据页中记录的在目标还原树中所处的层数V。示例性的,可按照先存先取的原则,获取连续存储空间中未还原数据页中的第一个备份数据页作为待还原数据页。[0106]S2203、将待还原数据页拷贝至新的数据页中,并设置该页的右兄弟的存储地址为空。[0107]可选的,可在设定的内存空间中,例如目标数据库中,新建一个数据页,并获取新建的数据页中记录的自身存储地址,将待还原数据页中的数据拷贝至该新建的数据页中后,将获取的自身存储地址重新记录至该新的数据页中自身存储地址处,以避免在将待还原数据页拷贝至新的数据页时,覆盖该新建的数据页中记录的新的存储地址。并将该新的数据页中记录的右兄弟的存储地址更新设置为NULL。[0108]S22〇4、判断待还原数据页是否存在左兄弟,若是,则执行S2205;若否,则执行S2206〇[0109]可选的,可通过判断条件B_ARRAY[v]!二NULL是否成立来确定待还原数据页是否存在左兄弟,若是,则确定该待还原数据页存在左兄弟;否则,不存在左兄弟。示例性的,若待还原数据页为当前层的首页,则B_ARRAY[v]为默认值NULL;否则,B_ARRAY[v]中缓存有上一轮已还原数据页的存储地址。[0110]S2205、将待还原数据页的左兄弟更新为B_ARRAY[v],并将B_ARRAY[v]的右兄弟更新为待还原数据页。[0111]示例性的,可将B_ARRAY[v]中缓存的存储地址更新记录至当前待还原数据页中的左兄弟地址处,并将待还原数据页的新地址,即待还原数据页所在新的数据页的地址更新记录至B_ARRAY[v]中缓存的存储地址匹配的已还原数据页中的右兄弟地址处,以恢复待还原数据页与已还原数据页之间的兄弟关系。[0112]S2206、将待还原数据页的新存储地址更新缓存于B_ARRAY[v]中。[0113]也即,将待还原数据页所拷贝至的新的数据页的存储地址缓存至B_ARRAY[v]中,以备下一轮判断获取的待还原数据页是否存在左兄弟时使用。[0114]S2207、判断待还原数据页自身是否存在儿子页,若是,则执行S2208;若否,则执行S2210〇[0115]示例性的,可通过判断待还原数据页所在的层数V是否大于0,来确定待还原数据页自身是否存在儿子页,若v0,则确定待还原数据页存在儿子页;否则,不存在儿子页。[0116]S2208、将待还原数据页的儿子页更新为第v-1层对应的数组S_ARRAY[v_l][x],其中x=0,1,2...〇[0117]其中,x的最大值为目标还原树中与待还原数据页对应的第v-1层的儿子页总数-1,即当前S_NUM_ARRAY[v-1]的取值。示例性的,当确定待还原数据页存在儿子页时,将第v-1层对应的数组S_ARRAY[v-l][x]中缓存的一组存储地址,作为待还原数据页的儿子页的存储地址,更新记录至待还原数据页中,以更新待还原数据页在目标还原树中的父子关系。当待还原数据页在目标还原树中的父子关系以及兄弟关系更新完毕时,则该待还原数据页的位置信息就可以确定。[0118]S2209、清空第v-1层对应的数组S_ARRAY[v_l][x]中的值,并将S_NUM_ARRY[v_l]的值更新为0。[0119]清空以及更新取值的目的在于,为同层的下一个待还原数据页的儿子页的缓存做准备。[0120]S2210、判断待还原数据页自身是否为儿子页,若是,则执行S2211;若否,则执行S2213。[0121]示例性的,可通过判断待还原数据页所在的层数v与目标还原树的层数L-1的值是否相等,来确定待还原数据页自身是否为儿子页。例如,判断条件v=L_l是否成立,若是,则确定待还原数据页自身不为儿子页,即不存在父亲页,也即说明待还原数据页为ROOT页;否则,确定待还原数据页自身为儿子页,即存在父亲页,也即说明待还原数据页为INNER页或者LEAF页。[0122]S2211、将待还原数据页的新存储地址缓存[m]中,其中,m=S_NUM_ARRY[v]。[0123]其中,S_NUM_ARRY[v]的初始默认值为0,用于记录与待还原数据页同属一个父亲页的儿子页中已还原数据页的个数。[0124]S2212、[v]的值更新为S_NUM_ARRY[v]值加1。[0125]S2213、结束还原。[0126]本实施例的技术方案,通过获取与数据还原请求匹配的目标还原树包括的各个节点对应的备份数据页,并根据备份数据页在连续存储空间中的存储顺序以及目标还原树包括的各个节点对应的备份数据页,还原得到目标还原树,实现了对特定数据库对象进行高效、无损地数据备份和还原的效果。[0127]实施例三[0128]图3为本发明实施例三提供的一种数据备份装置的结构示意图。参考图3,数据备份装置包括:备份树识别模块310、数据页备份模块320以及备份页存储模块330,下面对各模块进行具体说明。[0129]备份树识别模块310,用于根据数据备份请求,识别与数据备份请求匹配的目标备份树,目标备份树中包括至少一个节点,不同节点对应不同的数据页;[0130]数据页备份模块320,用于按照与目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,数据页中记录有节点在目标备份树中的位置信息;[0131]备份页存储模块330,用于在连续存储空间中顺序存储各备份数据页,存储顺序中携带有各备份数据页之间的逻辑关系。[0132]本实施例提供的数据备份装置,通过识别与数据备份请求匹配的目标备份树,按照与目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与该目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,并在连续存储空间中顺序存储各备份数据页,利用了按照一定备份规则备份并顺序存储的数据页能够保存数据页之间逻辑关系的优点,解决了现有技术中因单纯采用物理备份和逻辑备份的方式,而导致要么无法备份特定的数据库对象,要么备份还原效率低、数据有损的问题,实现了对特定数据库对象进行高效、无损地数据备份和还原的效果。[0133]可选的,与目标备份树对应的数据页之间的逻辑关系匹配的备份规则,包括:[0134]将与目标节点对应的全部儿子节点的数据页以及目标节点的数据页进行顺序备份的规则,目标节点为具有儿子节点的中间节点和或根节点;[0135]相应的,在连续存储空间中,与同一目标节点对应的全部儿子节点的备份数据页顺序存储,目标节点的备份数据页存储于对应的全部儿子节点的备份数据页的存储位置的尾部,根节点的备份数据页存储于存储空间中的尾部。[0136]可选的,数据页备份模块320具体用于:[0137]将目标备份树的根节点对应的第一数据页设置为当前页;[0138]获取当前页中记录的位置信息;[0139]如果根据位置信息确定当前页包括有未备份的儿子页,则按照设定顺序获取当前页中的一个未备份的儿子页作为新的当前页,并返回执行获取当前页中记录的位置信息的操作;[0140]如果根据位置信息确定当前页未包括有未备份的儿子页,则备份当前页,得到备份数据页,并在确定当前页不为第一数据页时,将当前页的父亲页设置为新的当前页后,返回执行获取当前页中记录的位置信息的操作;[0141]在确定当前页为第一数据页时,完成对目标备份树的备份。[0142]上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有:fii效果。[0143]实施例四[0144]图4为本发明实施例四提供的一种数据还原装置的结构示意图。参考图4,数据备份装置包括:备份页获取模块410以及还原树还原模块420,下面对各模块进行具体说明。[0145]备份页获取模块410,用于根据数据还原请求,获取与数据还原请求匹配的目标还原树包括的各个节点对应的备份数据页;[0146]还原树还原模块420,用于根据备份数据页在连续存储空间中的存储顺序以及目标还原树包括的各个节点对应的备份数据页,还原得到目标还原树;[0147]其中,存储顺序与目标还原树对应的备份数据页之间的逻辑关系匹配的备份规则相关联。[0148]本实施例提供的数据还原装置,通过获取与数据还原请求匹配的目标还原树包括的各个节点对应的备份数据页,并根据备份数据页在连续存储空间中的存储顺序以及目标还原树包括的各个节点对应的备份数据页,还原得到目标还原树,实现了对特定数据库对象进行高效、无损地数据备份和还原的效果。[0149]可选的,与目标还原树对应的备份数据页之间的逻辑关系匹配的备份规则,包括:[0150]将与目标还原树对应的目标备份树上,目标节点对应的全部儿子节点的数据页以及目标节点的数据页进行顺序备份的规则,目标节点为具有儿子节点直接相连的中间节点和或根节点;[0151]相应的,在连续存储空间中,与同一目标节点对应的全部儿子节点的备份数据页顺序存储,目标节点的备份数据页存储于对应的全部儿子节点的备份数据页的存储位置的尾部,根节点的备份数据页存储于存储空间中的尾部。[0152]可选的,还原树还原模块420具体用于:[0153]按照存储顺序,在连续存储空间中依次获取一个备份数据页作为待还原数据页,并获取待还原数据页所在层数;[0154]将待还原数据页拷贝至设定内存空间中作为一个已还原数据页;[0155]如果确定第一缓存空间对应的层空间中缓存有存储地址,则在设定内存空间中查找与存储地址匹配的已还原数据页,并根据目标还原树的备份规则恢复设定内存空间中的已还原数据页以及待还原数据页的兄弟关系,所述层空间与所述待还原数据页所在层数相匹配;[0156]将待还原数据页的存储地址更新缓存于第一缓存空间对应的层空间中;[0157]如果确定待还原数据页存在儿子页,则根据第二缓存空间中的待还原数据页的全部儿子页对应的存储地址,恢复设定内存空间中的待还原数据页以及待还原数据页的全部儿子页的父子关系;[0158]如果确定待还原数据页不为根节点的数据页,则将待还原数据页在设定内存空间中对应的存储地址作为儿子页对应的存储地址缓存于第二缓存空间中后,返回执行按照存储顺序,在连续存储空间中依次获取一个备份数据页作为待还原数据页的操作;[0159]在确定待还原数据页为根节点的数据页时,完成对目标还原树的还原。[0160]上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。[0161]实施例五[0162]图5为本发明实施例五提供的一种计算机设备的结构示意图,如图5所示,本实施例提供的一种计算机设备,包括:处理器51和存储器52。该计算机设备中的处理器可以是一个或多个,图5中以一个处理器51为例,所述计算机设备中的处理器51和存储器52可以通过总线或其他方式连接,图5中以通过总线连接为例。[0163]本实施例中计算机设备的处理器51中集成了上述实施例提供的数据备份装置和或数据还原装置。此外,该计算机设备中的存储器52作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例中数据备份方法或数据还原方法对应的程序指令模块例如,附图3所示的数据备份装置中的模块,包括:备份树识别模块310、数据页备份模块320以及备份页存储模块330;又如,附图4所示的数据还原装置中的模块,包括:备份页获取模块410以及还原树还原模块似0。处理器51通过运行存储在存储器52中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述方法实施例中数据备份方法和或数据还原方法。[0164]存储器52可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器52可进一步包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。[0165]处理器51通过运行存储在存储器52中的程序,从而执行各种功能应用以及数据处理,实现例如本发明实施例一所提供的数据备份方法:[0166]根据数据备份请求,识别与数据备份请求匹配的目标备份树,目标备份树中包括至少一个节点,不同节点对应不同的数据页;按照与目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,数据页中记录有节点在目标备份树中的位置信息;在连续存储空间中顺序存储各备份数据页,存储顺序中携带有各备份数据页之间的逻辑关系。[0167]又例如,本发明实施例二所提供的数据还原方法:[0168]根据数据还原请求,获取与数据还原请求匹配的目标还原树包括的各个节点对应的备份数据页;根据备份数据页在连续存储空间中的存储顺序以及目标还原树包括的各个节点对应的备份数据页,还原得到目标还原树;其中,存储顺序与目标还原树对应的备份数据页之间的逻辑关系匹配的备份规则相关联。[0169]实施例六[0170]本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被数据备份装置执行时实现如本发明实施例一提供的数据备份方法,该方法包括:根据数据备份请求,识别与数据备份请求匹配的目标备份树,目标备份树中包括至少一个节点,不同节点对应不同的数据页;按照与目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,数据页中记录有节点在目标备份树中的位置信息;在连续存储空间中顺序存储各备份数据页,存储顺序中携带有各备份数据页之间的逻辑关系。[0171]该程序被数据还原装置执行时实现如本发明实施例二提供的数据还原方法,该方法包括:根据数据还原请求,获取与数据还原请求匹配的目标还原树包括的各个节点对应的备份数据页;根据备份数据页在连续存储空间中的存储顺序以及目标还原树包括的各个节点对应的备份数据页,还原得到目标还原树;其中,存储顺序与目标还原树对应的备份数据页之间的逻辑关系匹配的备份规则相关联。[0172]当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序被执行时不限于实现如上所述的方法操作,还可以实现本发明任意实施例所提供的数据备份方法和或数据还原方法中的相关操作。[0173]通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-OnlyMemory,ROM、随机存取存储器(RandomAccessMemory,RAM、闪存FLASH、硬盘或光盘等,包括若干指令用以使得一台计算机设备可以是个人计算机,服务器,或者网络设备等执行本发明各个实施例所述的方法。[0174]值得注意的是,上述数据备份装置和数据还原装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。[0175]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

权利要求:1.一种数据备份方法,其特征在于,包括:根据数据备份请求,识别与所述数据备份请求匹配的目标备份树,所述目标备份树中包括至少一个节点,不同节点对应不同的数据页;按照与所述目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与所述目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,所述数据页中记录有节点在所述目标备份树中的位置信息;在连续存储空间中顺序存储各所述备份数据页,所述存储顺序中携带有各备份数据页之间的逻辑关系。2.根据权利要求1所述的方法,其特征在于,所述与所述目标备份树对应的数据页之间的逻辑关系匹配的备份规则,包括:将与目标节点对应的全部儿子节点的数据页以及所述目标节点的数据页进行顺序备份的规则,所述目标节点为具有儿子节点的中间节点和或根节点;相应的,在所述连续存储空间中,与同一所述目标节点对应的全部儿子节点的备份数据页顺序存储,所述目标节点的备份数据页存储于对应的所述全部儿子节点的备份数据页的存储位置的尾部,所述根节点的备份数据页存储于所述存储空间中的尾部。3.根据权利要求2所述的方法,其特征在于,所述按照与所述目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与所述目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,包括:将所述目标备份树的根节点对应的第一数据页设置为当前页;获取所述当前页中记录的位置信息;如果根据所述位置信息确定所述当前页包括有未备份的儿子页,则按照设定顺序获取所述当前页中的一个所述未备份的儿子页作为新的当前页,并返回执行获取所述当前页中记录的位置信息的操作;如果根据所述位置信息确定所述当前页未包括有未备份的儿子页,则备份所述当前页,得到备份数据页,并在确定所述当前页不为所述第一数据页时,将所述当前页的父亲页设置为新的所述当前页后,返回执行获取所述当前页中记录的位置信息的操作;在确定所述当前页为所述第一数据页时,完成对所述目标备份树的备份。4.一种数据还原方法,其特征在于,包括:根据数据还原请求,获取与所述数据还原请求匹配的目标还原树包括的各个节点对应的备份数据页;根据所述备份数据页在连续存储空间中的存储顺序以及所述目标还原树包括的各个节点对应的备份数据页,还原得到所述目标还原树;其中,所述存储顺序与所述目标还原树对应的备份数据页之间的逻辑关系匹配的备份规则相关联。5.根据权利要求4所述的方法,其特征在于,所述与所述目标还原树对应的备份数据页之间的逻辑关系匹配的备份规则,包括:将与所述目标还原树对应的目标备份树上,目标节点对应的全部儿子节点的数据页以及所述目标节点的数据页进行顺序备份的规则,所述目标节点为具有儿子节点的中间节点和或根节点;相应的,在所述连续存储空间中,与同一所述目标节点对应的全部儿子节点的备份数据页顺序存储,所述目标节点的备份数据页存储于对应的所述全部儿子节点的备份数据页的存储位置的尾部,所述根节点的备份数据页存储于所述存储空间中的尾部16.根据权利要求5所述的方法,其特征在于,所述根据所述备份数据页在连续存储空间中的存储顺序以及所述目标还原树包括的各个节点对应的备份数据页,还原得到所述目标还原树,包括:按照所述存储顺序,在所述连续存储空间中依次获取一个备份数据页作为待还原数据页,并获取所述待还原数据页所在层数;将所述待还原数据页拷贝至设定内存空间中作为一个已还原数据页;如果确定第一缓存空间对应的层空间中缓存有存储地址,则在所述设定内存空间中查找与所述存储地址匹配的己还原数据页,并根据所述目标还原树的备份规则恢复所述设定内存空间中的所述己还原数据页以及所述待还原数据页的兄弟关系,所述层空间与所述待还原数据页所在层数相匹配;将所述待还原数据页的存储地址更新缓存于所述第一缓存空间对应的层空间中;如果确定所述待还原数据页存在儿子页,则根据第二缓存空间中的所述待还原数据页的全部儿子页对应的存储地址,恢复所述设定内存空间中的所述待还原数据页以及所述待还原数据页的全部所述儿子页的父子关系;如果确定所述待还原数据页不为根节点的数据页,则将所述待还原数据页在所述设定内存空间中对应的存储地址作为儿子页对应的存储地址缓存于所述第二缓存空间中后,返回执行按照所述存储顺序,在所述连续存储空间中依次获取一个备份数据页作为待还原数据页的操作;在确定所述待还原数据页为根节点的数据页时,完成对所述目标还原树的还原。7.—种数据备份装置,其特征在于,包括:备份树识别模块,用于根据数据备份请求,识别与所述数据备份请求匹配的目标备份树,所述目标备份树中包括至少一个节点,不同节点对应不同的数据页;数据页备份模块,用于按照与所述目标备份树对应的数据页之间的逻辑关系匹配的备份规则,将与所述目标备份树中包括的各个节点对应的数据页进行备份,得到备份数据页,所述数据页中记录有节点在所述目标备份树中的位置信息;备份页存储模块,用于在连续存储空间中顺序存储各所述备份数据页,所述存储顺序中携带有各备份数据页之间的逻辑关系。8.—种数据还原装置,其特征在于,包括:备份页获取模块,用于根据数据还原请求,获取与所述数据还原请求匹配的目标还原树包括的各个节点对应的备份数据页;还原树还原模块,用于根据所述备份数据页在连续存储空间中的存储顺序以及所述目标还原树包括的各个节点对应的备份数据页,还原得到所述目标还原树;其中,所述存储顺序与所述目标还原树对应的备份数据页之间的逻辑关系匹配的备份规则相关联。9.一种计算机设备,其特征在于,所述设备包括:一个或多个处理器;伃銜益,用亍存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3中任一所述的数据备份方法。_10.—种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一所述的数据备份方法。11.一种计算机设备,其特征在于,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求4-6中任一所述的数据还原方法。_12•—种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求4-6中任一所述的数据还原方法。

百度查询: 上海达梦数据库有限公司 数据备份方法及数据还原方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术