一种数据备份和恢复方法、备份服务器和源服务器转让专利

申请号 : CN201711463197.2

文献号 : CN109976942B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 范涛

申请人 : 中移(杭州)信息技术有限公司中国移动通信集团公司

摘要 :

本发明实施例涉及数据库备份技术领域,尤其涉及一种数据备份和恢复方法、备份服务器和源服务器,用于实现提高数据恢复的时效性。备份服务器接收数据恢复请求;根据各待备份数据的备份时间点,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据,目标备份数据为备份时间点与当前时刻最邻近的待备份数据;确定目标备份数据所属的目标备份链;备份服务器获取目标备份链上的各待备份数据,并将目标备份链上的各待备份数据导入备份数据库中从而完成数据恢复。如此,可以从至少一条备份链中确定出与任意时刻距离很近的备份时间点的目标备份数据,进而可以实现提高数据恢复的时效性,恢复当前时刻之前的较多的备份数据。

权利要求 :

1.一种数据恢复方法,其特征在于,包括:

备份服务器接收数据恢复请求;

所述备份服务器根据各备份数据的备份时间点,从源服务器发送的多条备份链的各备份链的各备份数据中确定出目标备份数据,所述目标备份数据为备份时间点与当前时刻最邻近的备份数据;所述多条备份链中每条备份链包括全量备份对应的备份时间点和至少一个增量备份对应的备份时间点;且每条备份链上的每个备份时间点与其他备份链上的备份时间点均不同;所述备份服务器确定所述目标备份数据所属的目标备份链;

所述备份服务器获取所述目标备份链上的各备份数据,并将所述目标备份链上的各备份数据导入备份数据库中从而完成数据恢复。

2.如权利要求1所述的方法,其特征在于,所述备份服务器根据各备份数据的备份时间点,从源服务器发送的多条备份链的各备份链的各备份数据中确定出目标备份数据,包括:所述备份服务器根据各备份数据的时间标识,从所述源服务器发送的各备份链的各备份数据中确定出所述目标备份数据,所述时间标识用于指示备份时间点;

所述备份服务器确定所述目标备份数据所属的目标备份链,包括:所述备份服务器根据所述目标备份数据的备份链的标识,确定所述目标备份数据所属的目标备份链;

所述备份服务器获取所述目标备份链上的各备份数据,包括:所述备份服务器获取具有所述目标备份链的标识的各备份数据;

将所述目标备份链上的各备份数据导入备份数据库中,包括:根据所述目标备份链上的各备份数据的时间标识,将所述目标备份链上的各备份数据导入所述备份数据库。

3.如权利要求2所述的方法,其特征在于,所述备份服务器接收数据恢复请求之前,还包括:接收所述源服务器发送的多个备份数据;所述备份数据为全量备份或增量备份;

若所述备份数据为全量备份,则将所述全量备份导入至备份数据库中;每个全量备份对应一个备份数据库;

所述将所述目标备份链上的各备份数据导入所述备份数据库,包括:确定出备份链的标识为所述目标备份链的标识的全量备份所在的目标备份数据库;

将备份链的标识为所述目标备份链的标识的增量备份导入至所述目标备份数据库中。

4.如权利要求1所述的方法,其特征在于,所述多条备份链中每条备份链包括全量备份对应的备份时间点和至少一个增量备份对应的备份时间点,包括:所述多条备份链中相邻两条备份链的全量备份对应的备份时间点之间间隔第一预设时长,每条备份链中相邻两个增量备份对应的备份时间点之间间隔第二预设时长。

5.如权利要求1所述的方法,其特征在于,每条备份链运行期间用于备份N个备份时间点对应的待备份数据;所述N为大于0的整数;所述方法还包括:针对每条备份链,所述源服务器在所述备份链完成备份所述N个备份时间点的待备份数据备份后、且在到达所述N个备份时间点的下一个备份时间点时,删除所述备份链以及所述备份链对应的所述N个备份时间点的待备份数据。

6.一种备份服务器,其特征在于,包括:

接收单元,用于接收数据恢复请求;

处理单元,用于根据各备份数据的备份时间点,从源服务器发送的多条备份链的各备份链的各备份数据中确定出目标备份数据,所述目标备份数据为备份时间点与当前时刻最邻近的备份数据;所述多条备份链中每条备份链包括全量备份对应的备份时间点和至少一个增量备份对应的备份时间点;所述备份服务器确定所述目标备份数据所属的目标备份链;且每条备份链上的每个备份时间点与其他备份链上的备份时间点均不同;

导入单元,用于所述备份服务器获取所述目标备份链上的各备份数据,并将所述目标备份链上的各备份数据导入备份数据库中从而完成数据恢复。

7.如权利要求6所述的备份服务器,其特征在于,所述处理单元,用于:根据各备份数据的时间标识,从所述源服务器发送的各备份链的各备份数据中确定出所述目标备份数据,所述时间标识用于指示备份时间点;

根据所述目标备份数据的备份链的标识,确定所述目标备份数据所属的目标备份链;

所述导入单元,用于:

所述备份服务器获取具有所述目标备份链的标识的各备份数据;

根据所述目标备份链上的各备份数据的时间标识,将所述目标备份链上的各备份数据导入所述备份数据库。

8.如权利要求6所述的备份服务器,其特征在于,所述接收单元,还用于:接收所述源服务器发送的多个待备份数据;所述备份数据为全量备份或增量备份;

所述导入单元,还用于:

若所述备份数据为全量备份,则将所述全量备份导入至备份数据库中;每个全量备份对应一个备份数据库;

确定出备份链的标识为所述目标备份链的标识的全量备份所在的目标备份数据库;

将备份链的标识为所述目标备份链的标识的增量备份导入至所述目标备份数据库中。

9.如权利要求6所述的备份服务器,其特征在于,处理单元,用于:所述多条备份链中相邻两条备份链的全量备份对应的备份时间点之间间隔第一预设时长,每条备份链中相邻两个增量备份对应的备份时间点之间间隔第二预设时长。

10.如权利要求6所述的备份服务器,其特征在于,每条备份链运行期间用于备份N个备份时间点对应的待备份数据;所述N为大于0的整数;所述处理单元,还用于:针对每条备份链,在所述备份链完成备份所述N个备份时间点的待备份数据备份后、且在到达所述N个备份时间点的下一个备份时间点时,删除所述备份链以及所述备份链对应的所述N个备份时间点的待备份数据。

说明书 :

一种数据备份和恢复方法、备份服务器和源服务器

技术领域

[0001] 本发明实施例涉及数据库备份技术领域,尤其涉及一种数据备份和恢复方法、备份服务器和源服务器。

背景技术

[0002] 在企业管理中,一些应用系统会采用MySQL数据库存储各种信息,一般通过命令进行数据的导出导入。在企业系统线上生产过程中,如果用户对数据库进行操作时发生了误操作,比如误更新、误清空、误删除等,就需要通过数据库管理员找到最近的备份进行数据恢复。
[0003] 现有技术中的MySQL数据库备份主要包括以下两种方案:一种方案为,定期进行全量备份,指的是MySQL数据库在某一时间点之前的完整数据备份,通常是在业务系统冷时段定时执行,例如每日凌晨02:00点执行。另一种方案为,使用全量备份加增量备份的方式,增量备份是MySQL数据库的一部分数据,在两个时间点内的变化内容,增量备份无法单独用来恢复数据,必须结合备份链上的全量备份才能恢复数据。现有技术中的两种备份方案在需要对当前时刻之前的所有数据进行恢复时,可能存在以下问题:当前时刻与最邻近的备份时间点之间的距离较远时,比如最邻近的备份时间点为02:00,当前时刻是16:00,那么当前时刻16:00与最邻近的备份时间点02:00之间的14个小时的数据存在误操作时无法恢复,数据恢复的时效性差。

发明内容

[0004] 本发明实施例提供一种数据备份和恢复方法、备份服务器和源服务器,用以实现提高数据恢复的时效性,恢复当前时刻之前的较多的备份数据。
[0005] 本发明实施例提供一种数据恢复方法,包括:
[0006] 备份服务器接收数据恢复请求;所述备份服务器根据各待备份数据的备份时间点,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据,所述目标备份数据为备份时间点与当前时刻最邻近的待备份数据;所述各备份链中的每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;
[0007] 所述备份服务器确定所述目标备份数据所属的目标备份链;
[0008] 所述备份服务器获取所述目标备份链上的各待备份数据,并将所述目标备份链上的各待备份数据导入备份数据库中从而完成数据恢复。
[0009] 可选的,所述备份服务器根据各待备份数据的备份时间点,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据,包括:所述备份服务器根据各待备份数据的时间标识,从所述源服务器发送的各备份链的各待备份数据中确定出所述目标备份数据,所述时间标识用于指示备份时间点;所述备份服务器确定所述目标备份数据所属的目标备份链,包括:所述备份服务器根据所述目标备份数据的备份链的标识,确定所述目标备份数据所属的目标备份链;所述备份服务器获取所述目标备份链上的各待备份数据,包括:所述备份服务器获取具有所述目标备份链的标识的各待备份数据;将所述目标备份链上的各待备份数据导入备份数据库中,包括:根据所述目标备份链上的各待备份数据的时间标识,将所述目标备份链上的各待备份数据导入所述备份数据库。
[0010] 可选的,所述备份服务器接收数据恢复请求之前,还包括:接收所述源服务器发送的至少一个待备份数据;所述待备份数据为全量备份或增量备份;若所述待备份数据为全量备份,则将所述全量备份导入至备份数据库中;每个全量备份对应一个备份数据库;所述将所述目标备份链上的各待备份数据导入所述备份数据库,包括:确定出备份链的标识为所述目标备份链的标识的全量备份所在的目标备份数据库;将备份链的标识为所述目标备份链的标识的增量备份导入至所述目标备份数据库中。
[0011] 本发明实施例提供一种数据备份方法,包括:源服务器构建用于执行数据备份任务的至少一条备份链;每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;所述源服务器针对所述至少一条备份链中的每条备份链,执行:针对所述备份链的每个备份时间点,从源数据库中获取所述备份时间点对应的待备份数据,将所述备份时间点对应的待备份数据、所述备份链的标识和所述备份时间点的时间标识发送至备份服务器中;所述备份服务器用于根据所述至少一条备份链的每个备份时间点对应的待备份数据完成数据恢复。
[0012] 可选的,所述至少一条备份链中每条备份链包括全量备份对应的备份时间点和/或至少一个增量备份对应的备份时间点;所述至少一条备份链中相邻两条备份链的全量备份对应的备份时间点之间间隔第一预设时长,每条备份链中相邻两个增量备份对应的备份时间点之间间隔第二预设时长。
[0013] 可选的,每条备份链运行期间用于备份N个备份时间点对应的待备份数据;所述N为大于0的整数;所述方法还包括:针对每条备份链,所述源服务器在所述备份链完成备份所述N个备份时间点的待备份数据备份后、且在到达所述N个备份时间点的下一个备份时间点时,删除所述备份链以及所述备份链对应的所述N个备份时间点的待备份数据。
[0014] 本发明实施例提供一种备份服务器,包括:
[0015] 接收单元,用于接收数据恢复请求;
[0016] 处理单元,用于根据各待备份数据的备份时间点,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据,所述目标备份数据为备份时间点与当前时刻最邻近的待备份数据;所述备份服务器确定所述目标备份数据所属的目标备份链;所述各备份链中的每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;
[0017] 导入单元,用于所述备份服务器获取所述目标备份链上的各待备份数据,并将所述目标备份链上的各待备份数据导入备份数据库中从而完成数据恢复。
[0018] 可选的,所述处理单元,用于:根据各待备份数据的时间标识,从所述源服务器发送的各备份链的各待备份数据中确定出所述目标备份数据,所述时间标识用于指示备份时间点;根据所述目标备份数据的备份链的标识,确定所述目标备份数据所属的目标备份链;所述导入单元,用于:所述备份服务器获取具有所述目标备份链的标识的各待备份数据;根据所述目标备份链上的各待备份数据的时间标识,将所述目标备份链上的各待备份数据导入所述备份数据库。
[0019] 可选的,所述接收单元,还用于:接收所述源服务器发送的至少一个待备份数据;所述待备份数据为全量备份或增量备份;所述导入单元,还用于:若所述待备份数据为全量备份,则将所述全量备份导入至备份数据库中;每个全量备份对应一个备份数据库;确定出备份链的标识为所述目标备份链的标识的全量备份所在的目标备份数据库;将备份链的标识为所述目标备份链的标识的增量备份导入至所述目标备份数据库中。
[0020] 本发明实施例提供一种源服务器,包括:
[0021] 构建单元,用于:构建用于执行数据备份任务的至少一条备份链;每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;
[0022] 处理单元,用于:针对所述至少一条备份链中的每条备份链,执行:针对所述备份链的每个备份时间点,从源数据库中获取所述备份时间点对应的待备份数据;
[0023] 发送单元,用于:针对所述备份链的每个备份时间点,将所述备份时间点对应的待备份数据、所述备份链的标识和所述备份时间点的时间标识发送至备份服务器中;所述备份服务器用于根据所述至少一条备份链的每个备份时间点对应的待备份数据完成数据恢复。
[0024] 可选的,所述至少一条备份链中每条备份链包括全量备份对应的备份时间点和/或至少一个增量备份对应的备份时间点;所述至少一条备份链中相邻两条备份链的全量备份对应的备份时间点之间间隔第一预设时长,每条备份链中相邻两个增量备份对应的备份时间点之间间隔第二预设时长。
[0025] 可选的,每条备份链运行期间用于备份N个备份时间点对应的待备份数据;所述N为大于0的整数;所述处理单元,还用于:针对每条备份链,在所述备份链完成备份所述N个备份时间点的待备份数据备份后、且在到达所述N个备份时间点的下一个备份时间点时,删除所述备份链以及所述备份链对应的所述N个备份时间点的待备份数据。
[0026] 本发明实施例中,备份服务器接收数据恢复请求;备份服务器根据各待备份数据的备份时间点,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据,目标备份数据为备份时间点与当前时刻最邻近的待备份数据;由于各备份链中的每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;备份服务器确定目标备份数据所属的目标备份链;备份服务器获取目标备份链上的各待备份数据,并将目标备份链上的各待备份数据导入备份数据库中从而完成数据恢复。因此,至少一条备份链中每条备份链都可以确定出一个与当前时刻最邻近的备份时间点,而且每条备份链上与当前时刻最邻近的备份时间点都不相同,如此,可以从至少一个与当前时刻最邻近的备份时间点中确定出与当前时刻最近的备份时间点,相较于现有技术中在一条备份链中的每个固定时间点进行备份的方案,本发明实施例可以从至少一条备份链中确定出与任意时刻距离很近的备份时间点的目标备份数据,进而可以实现提高数据恢复的时效性,恢复当前时刻之前的较多的备份数据。

附图说明

[0027] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0028] 图1为本发明实施例提供的系统架构示意图;
[0029] 图2为本发明实施例提供的一种数据恢复方法的流程示意图;
[0030] 图3为本发明实施例提供的数据预恢复方法的流程示意图;
[0031] 图4为本发明实施例提供的增量备份恢复方法的流程示意图;
[0032] 图5为本发明实施例提供的一种数据备份方法的流程示意图;
[0033] 图6为本发明实施例提供的备份链的示意图;
[0034] 图7为本发明实施例提供的基本备份过程示意图;
[0035] 图8为本发明实施例提供的一种备份服务器的结构示意图;
[0036] 图9为本发明实施例提供的一种源服务器的结构示意图。

具体实施方式

[0037] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0038] 为了解决现有技术中采用InnoDB作为存储引擎的MySQL数据库存在的数据恢复时效性差的问题,本发明实施例提供了数据备份和数据恢复的方法。该采用InnoDB作为存储引擎的MySQL数据库无法通过拷贝数据文件的方式进行备份恢复,只能通过命令进行导出导入。本发明实施例中所涉及的数据备份是一个数据快照解决方案,无需满足与实时数据完全同步;因此,本方案适用的场景并不是需要100%恢复原始数据的场景,而是在尽量短的时间内恢复尽量多的数据。
[0039] 图1示例性示出了本发明实施例提供的系统架构示意图。如图1所示,该系统包括源服务器110和备份服务器120,源服务器110和备份服务器120之间通过有线或无线的方式连接。其中,源服务器110包括源数据库111和存储空间112。备份服务器120包括备份数据库121和存储空间122。
[0040] 一般用于存储企业系统线上生成过程中产生的各种信息的数据库主要设置有主数据库和从数据库,用于保证企业系统的数据完整性。其中,主数据库主要用于存储企业系统产生的实时数据,而从数据库主要用于对主数据库中的存储的数据进行同步。如图1所示的源数据库111可以为主数据库,也可以为从数据库。为了减小对存储企业系统的实时数据的主数据库的影响,较佳的,源数据库111为用于存储企业系统的从数据库。
[0041] 从源数据库111中导出待备份数据后,存储在源服务器110中的存储空间112中,一般会在存储空间112创建数据目录,用于存储导出的待备份数据。
[0042] 备份服务器120中的存储空间122用于存储从源服务器110发送的待备份数据;备份数据库121用于存储从存储空间122导入的目标备份数据,备份数据库121与源数据库111的数据存储结构一致,便于通过程序比对查找到存在误操作的数据,并找回原始数据。
[0043] 基于图1所示的系统架构,图2示例性示出了本发明实施例提供的一种数据恢复方法的流程示意图,如图2所示,该数据恢复方法包括以下步骤:
[0044] 步骤201,备份服务器接收数据恢复请求;
[0045] 步骤202,备份服务器根据各待备份数据的备份时间点,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据,目标备份数据为备份时间点与当前时刻最邻近的待备份数据;各备份链中的每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;
[0046] 步骤203,备份服务器确定目标备份数据所属的目标备份链;
[0047] 步骤204,备份服务器获取目标备份链上的各待备份数据,并将目标备份链上的各待备份数据导入备份数据库中从而完成数据恢复。
[0048] 本发明实施例中,备份服务器接收数据恢复请求;备份服务器根据各待备份数据的备份时间点,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据,目标备份数据为备份时间点与当前时刻最邻近的待备份数据;由于各备份链中的每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;备份服务器确定目标备份数据所属的目标备份链;备份服务器获取目标备份链上的各待备份数据,并将目标备份链上的各待备份数据导入备份数据库中从而完成数据恢复。因此,至少一条备份链中每条备份链都可以确定出一个与当前时刻最邻近的备份时间点,而且每条备份链上与当前时刻最邻近的备份时间点都不相同,如此,可以从至少一个与当前时刻最邻近的备份时间点中确定出与当前时刻最近的备份时间点,相较于现有技术中根据一条备份链中的待备份数据进行数据恢复的方案,本发明实施例可以从至少一条备份链中确定出与任意时刻距离很近的备份时间点的目标备份数据,进而可以实现提高数据恢复的时效性,恢复当前时刻之前的较多的备份数据。
[0049] 上述步骤202中,当前时刻为源服务器中的发生误操作的时间。
[0050] 举个例子,比如存在3条备份链,分别为备份链A、备份链B和备份链C,每条备份链包括5个间隔1小时的备份时间点。其中,备份链1的起始时间为01:00,备份链2的起始时间为01:20,备份链2的起始时间为01:40。
[0051] 表1示出了备份链包括的备份时间点
[0052]
[0053] 比如,当前时刻为4:15,此时备份服务器中已从源服务器发送的各备份链的各待备份数据的备份时间点包括:如表1所示,备份链A中的01:00、02:00、03:00和04:00,备份链B中的01:20、02:20和03:20,备份链C中的01:40、02:40和03:40。可见,与当前时刻4:15最邻近的备份时间点为备份链A中的04:00,即确定备份链A为目标备份链,备份服务器将备份链A中01:00、02:00、03:00和04:00对应的待备份数据导入至备份数据库中从而完成数据恢复。
[0054] 本发明实施例中,由于每个备份链中的各待备份数据的备份时间点不同,为了更方便的确定与当前时刻最邻近的备份时间点,一种可选的实施方式中,待备份数据中携带有时间标识,所述时间标识用于指示备份时间点。结合上述图2中的任一项或任多项实施例,数据恢复方法的具体实施方式如下:
[0055] 上述步骤202的具体实施方式为,备份服务器根据各待备份数据的时间标识,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据。
[0056] 进一步的,上述步骤203的具体实施方式为,备份服务器根据目标备份数据的备份链的标识,确定目标备份数据所属的目标备份链;
[0057] 进一步的,上述步骤204的具体实施方式为,备份服务器获取具有目标备份链的标识的各待备份数据;根据目标备份链上的各待备份数据的时间标识,将目标备份链上的各待备份数据导入备份数据库。
[0058] 可选的,上述时间标识可以为具体的备份时间点的时间,也可以为按时间顺序为每个待备份数据分配的序号。如此,根据时间标识可以方便的确定出目标备份数据,进而完成将目标备份链上的各待备份数据导入备份数据库。
[0059] 本发明实施例中,每条备份链中第一个备份时间点对应的待备份数据为全量备份,之后的每个备份时间点对应的待备份数据为增量备份,由于全量备份的数据量大,占用的存储空间较大,一般是几十倍或上百倍于增量数据,所以增量备份恢复需要的时间很长,而恢复全量备份又是备份过程恢复的第一步,不可缺少。相比全量备份数据的恢复,增量备份数据的恢复时间耗费很短,且依赖于增量备份链的长度。
[0060] 为了提高数据恢复速度,结合上述实施方式,本发明实施例提供另一种可选的实施方式,在备份服务器接收数据恢复请求之前,该数据恢复方法还包括:接收源服务器发送的至少一个待备份数据;待备份数据为全量备份或增量备份;若待备份数据为全量备份,则将全量备份导入至备份数据库中;每个全量备份对应一个备份数据库。
[0061] 本发明实施例中的备份服务器在接收到全量备份时,先进行全量备份的数据预恢复,其原理是一旦备份服务器上检测到有全量备份,则立即执行全量备份的导入。如此,在接收到数据恢复请求之前,就可以利用空闲时间将接收到的全量备份导入至备份数据库中,可以节省数据恢复的时间。
[0062] 为了方便理解,本发明实施例提供以下数据预恢复方法的具体实施例。
[0063] 图3示例性示出了本发明实施例提供的数据预恢复方法的流程示意图。如图3所示,该数据预恢复方法为针对一个备份数据库的全量备份过程;该数据预恢复方法包括以下步骤:
[0064] 步骤301:确定备份数据库中是否存在全量备份;若是,则执行步骤303;若否,则执行步骤302;
[0065] 步骤302:等待全量备份上传;之后,执行步骤301;
[0066] 步骤303:检查该全量备份的版本;版本用于标识全量备份所属的备份链;
[0067] 步骤304:确定该版本的全量备份在源数据库中是否被删除;若是,则执行步骤305;若否,执行步骤307;
[0068] 步骤305:清空该备份数据库中的全量备份;
[0069] 步骤306:导入新的全量备份;
[0070] 步骤307:该备份数据库中的全量备份结束。
[0071] 上述实施例中,对全量备份先进行了预恢复,使得需要进行数据恢复时无需消耗较长时间进行全量备份的恢复,在生产过程中能够更快恢复所有的备份数据。
[0072] 进一步的,将目标备份链上的各待备份数据导入备份数据库,包括:确定出备份链的标识为目标备份链的标识的全量备份所在的目标备份数据库;将备份链的标识为目标备份链的标识的增量备份导入至目标备份数据库中。由于增量备份的数据量很小,在已导入全量备份的情况下,可以很快的导入至备份数据库中,花费时间很少。
[0073] 为了方便理解,本发明实施例提供以下增量备份恢复方法的具体实施例。
[0074] 图4示例性示出了本发明实施例提供的增量备份恢复方法的流程示意图。如图4所示,该增量备份恢复方法包括以下步骤:
[0075] 步骤401:确定待恢复时间点;该待恢复时间点为发生误操作的时间;
[0076] 步骤402:确定是否已导入目标全量备份;该目标全量备份为与待恢复时间点最邻近的备份时间点所在的备份链上的全量备份;若是,则执行步骤404;若否,执行步骤403;
[0077] 步骤403:等待目标全量备份的导入;之后,执行步骤402;
[0078] 步骤404:将目标全量备份所属的备份链上的所有增量备份加入至备份队列;备份队列中包括按时间先后顺序排列增量备份;
[0079] 步骤405:备份队列中的增量备份是否已导入至目标备份数据库;目标备份数据库为目标全量备份所导入的备份数据库;若是,则执行步骤407;若否,执行步骤406;
[0080] 步骤406:从备份队列中获取下一个增量备份,并导入至目标备份数据库;之后,执行步骤405;
[0081] 步骤407:增量备份恢复结束。
[0082] 从上述内容可以看出:备份服务器接收数据恢复请求;备份服务器根据各待备份数据的备份时间点,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据,目标备份数据为备份时间点与当前时刻最邻近的待备份数据;由于各备份链中的每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;备份服务器确定目标备份数据所属的目标备份链;备份服务器获取目标备份链上的各待备份数据,并将目标备份链上的各待备份数据导入备份数据库中从而完成数据恢复。因此,至少一条备份链中每条备份链都可以确定出一个与当前时刻最邻近的备份时间点,而且每条备份链上与当前时刻最邻近的备份时间点都不相同,如此,可以从至少一个与当前时刻最邻近的备份时间点中确定出与当前时刻最近的备份时间点,相较于现有技术中根据一条备份链中的待备份数据进行数据恢复的方案,本发明实施例可以从至少一条备份链中确定出与任意时刻距离很近的备份时间点的目标备份数据,进而可以实现提高数据恢复的时效性,恢复当前时刻之前的较多的备份数据。
[0083] 基于以上实施例以及相同构思,图5为本发明实施例提供的一种数据备份方法的流程示意图。如图5所示,该方法包括以下步骤:
[0084] 步骤501:源服务器构建用于执行数据备份任务的至少一条备份链;每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;
[0085] 步骤502:源服务器针对至少一条备份链中的每条备份链,执行:针对备份链的每个备份时间点,从源数据库中获取该备份时间点对应的待备份数据;
[0086] 步骤503:将该备份时间点对应的待备份数据、备份链的标识和备份时间点的时间标识发送至备份服务器中;备份服务器用于根据至少一条备份链的每个备份时间点对应的待备份数据完成数据恢复。
[0087] 本发明实施例中,数据备份方法构建了至少一条备份链;每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;而且每条备份链的每个备份时间点都从源数据库中获取该备份时间点对应的待备份数据,并发送至备份服务器中。因此,至少一条备份链中每条备份链都可以确定出一个与当前时刻最邻近的备份时间点,而且每条备份链上与当前时刻最邻近的备份时间点都不相同,如此,可以从至少一个与当前时刻最邻近的备份时间点中确定出与当前时刻最近的备份时间点,相较于现有技术中在一条备份链中的每个固定时间点进行备份的方案,本发明实施例可以从至少一条备份链中确定出与任意时刻距离很近的备份时间点的目标备份数据,进而可以实现提高数据恢复的时效性,恢复当前时刻之前的较多的备份数据。
[0088] 可选的,至少一条备份链中每条备份链包括全量备份对应的备份时间点和至少一个增量备份对应的备份时间点;至少一条备份链中相邻两条备份链的全量备份对应的备份时间点之间间隔第一预设时长,每条备份链中相邻两个增量备份对应的备份时间点之间间隔第二预设时长。
[0089] 本发明实施例中,第一预设时长和第二预设时长的具体数值可根据实际需要设置,本发明对此不进行限定。比如,第一预设时长可以是1个小时,也可以是1天等。第二预设时长可以是1个小时,也可以是10分钟等,第二预设时长越短,说明每条备份链中相邻两个备份对应的备份时间点间隔越短,单位时间内备份的次数越多,越容易恢复距离当前时刻更近的备份,因此恢复数据的时效更接近于当前时刻。
[0090] 本发明实施例中,如果至少一条备份链中的每相邻两条的备份链的运行时间重叠的部分的备份时间点相同,那么多条备份链和一条备份链备份没有区别,也就是说,与当前时刻最邻近的备份时间点的个数只有一个,并不能提高数据恢复的时效性。为了防止相邻两条备份链上的各个备份时间点重叠,较佳的,第一预设时长和第二预设时长不相同。如此,可以避免相邻两条备份链上的各个备份时间点重叠,提高数据恢复的时效性。
[0091] 可选的,每条备份链可以包括的备份时间点的数量也可以根据实际情况设置,备份时间点的数量越多,备份链越长,占用的空间越多。
[0092] 由于源服务器中存在至少一条备份链,如果每条备份链的所有备份时间点的待备份数据都存储在源服务器中,会占用很大的存储空间,为了避免资源浪费,结合上述数据备份的实施例,本发明实施例提供一种可选的实施方式,每条备份链运行期间用于备份N个备份时间点对应的待备份数据;所述N为大于0的整数;数据备份方法还包括:针对每条备份链,源服务器在该备份链完成备份N个备份时间点的待备份数据备份后、且在到达N个备份时间点的下一个备份时间点时,删除该备份链以及该备份链对应的N个备份时间点的待备份数据。在备份链包括的备份时间点达到一定数量时,删除该备份链上每个备份时间点对应待备份数据,如此,可以节约源服务器的空间。而且,由于有多个备份链在运行,在删除备份时间点达到N的数据链的待备份数据后、且尚未建立新备份链的间隔期内,仍旧存在多条备份链的待备份数据的可以执行数据恢复任务。
[0093] 本发明实施例中的备份链采用定时滚动策略进行数据备份,具体实现方案如下提供的实施例。
[0094] 图6示例性示出了本发明实施例提供的备份链的示意图。如图6所示,源服务器中部署m个备份任务:T1、T2、T3……Tm,每个备份任务均设定为间隔第二预设时长执行一次备份,比如每小时执行一次备份。
[0095] m个备份任务中每个备份任务都包含n个备份:P0、P1、P2、P3……Pn,其中P0是全量备份,也即第一次备份,P1到Pn是增量备份。每两个相邻备份对应的备份时间点之间的间隔固定,以备份任务T1设定每小时执行一次备份为例,那么在备份任务T1部署后将立即执行P0,生成初始的全量备份;1个小时后执行P1生成第1个增量备份;2个小时后执行P2生成第2个增量备份,以此类推,在n个小时后生成第n个增量备份,这样就产生了一个备份链。
[0096] 备份任务Tm的首次启动时间比备份任务Tm-1首次启动时间延后第一预设时长。以备份任务T1和T2为例,T1启动时间是Start1,T2是Start2,Start2-Start1的值即为第一预设时长,这样形成多备份任务多备份穿插执行,产生多个备份链。
[0097] 每个备份任务在执行完Pn以后,在Pn的下一个备份时间点,将会删除本备份任务产生的全部备份,然后继续生成新的备份链,这样可以保证每条备份链不会过长,备份数量不会太多,可以更快的完成数据恢复。
[0098] 本发明实例中的多条备份链的方案,由于有多个备份任务同时生效,系统中一直同时存在多个备份链,要找到某一时间点的备份可以从多个备份链中恢复,这就形成多备份,使备份更可靠。而且,恢复的备份数据能达到更高的时效性,并且可以动态调整参数,比如调整第一预设时长和第二预设时长,来满足不同的时效性需求。
[0099] 图7示例性示出了本发明实施例提供的基本备份过程示意图。如图7所示,该基本备份过程包括以下步骤:
[0100] 步骤701:确定是否已创建数据目录;若是,则执行步骤703;若否,则执行步骤702;
[0101] 步骤702:创建数据目录,用于存放待备份数据;待备份数据为全量备份或增量备份;之后,执行步骤703;
[0102] 步骤703:确定数据目录中是否存在增量备份Pn;若是,则执行步骤704;若否,则执行步骤705;
[0103] 步骤704:删除增量备份Pn所属的备份链的全部备份;之后,执行步骤705;
[0104] 步骤705:确定是否存在全量备份;若是,则执行步骤707;若否,则执行步骤706;
[0105] 步骤706:进行全量数据打包,创建全量备份;之后,执行步骤707;
[0106] 步骤707:创建增量备份,并进行压缩;
[0107] 步骤708:同步待备份数据至备份服务器;可选的,可以使用rsync工具完成同步操作。
[0108] 本发明实施例中,增量备份采用了压缩方式,数据传输时间更短。
[0109] 从上述内容可以看出:至少一条备份链中每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;而且每条备份链的每个备份时间点都从源数据库中获取该备份时间点对应的待备份数据,并发送至备份服务器中。因此,至少一条备份链中每条备份链都可以确定出一个与当前时刻最邻近的备份时间点,而且每条备份链上与当前时刻最邻近的备份时间点都不相同,如此,可以从至少一个与当前时刻最邻近的备份时间点中确定出与当前时刻最近的备份时间点,相较于现有技术中在一条备份链中的每个固定时间点进行备份的方案,本发明实施例可以从至少一条备份链中确定出与任意时刻距离很近的备份时间点的目标备份数据,进而可以实现提高数据恢复的时效性,恢复当前时刻之前的较多的备份数据。
[0110] 基于以上实施例以及相同构思,本发明实施例提供一种备份服务器,该备份服务器可以实现如上图2中所示的任一项或任多项对应的数据恢复方法中的步骤。
[0111] 图8为本发明实施例提供的一种备份服务器的结构示意图,如图8所示,该备份服务器800包括接收单元801、处理单元802和导入单元803。其中:
[0112] 接收单元801,用于接收数据恢复请求;
[0113] 处理单元802,用于根据各待备份数据的备份时间点,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据,目标备份数据为备份时间点与当前时刻最邻近的待备份数据;备份服务器确定目标备份数据所属的目标备份链;各备份链中的每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;
[0114] 导入单元803,用于备份服务器获取目标备份链上的各待备份数据,并将目标备份链上的各待备份数据导入备份数据库中从而完成数据恢复。
[0115] 本发明实施例中,备份服务器根据各待备份数据的备份时间点,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据,目标备份数据为备份时间点与当前时刻最邻近的待备份数据;由于各备份链中的每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;备份服务器确定目标备份数据所属的目标备份链;备份服务器获取目标备份链上的各待备份数据,并将目标备份链上的各待备份数据导入备份数据库中从而完成数据恢复。因此,至少一条备份链中每条备份链都可以确定出一个与当前时刻最邻近的备份时间点,而且每条备份链上与当前时刻最邻近的备份时间点都不相同,如此,可以从至少一个与当前时刻最邻近的备份时间点中确定出与当前时刻最近的备份时间点,相较于现有技术中根据一条备份链中的待备份数据进行数据恢复的方案,本发明实施例可以从至少一条备份链中确定出与任意时刻距离很近的备份时间点的目标备份数据,进而可以实现提高数据恢复的时效性,恢复当前时刻之前的较多的备份数据。
[0116] 可选的,处理单元802,用于:根据各待备份数据的时间标识,从源服务器发送的各备份链的各待备份数据中确定出目标备份数据,时间标识用于指示备份时间点;根据目标备份数据的备份链的标识,确定目标备份数据所属的目标备份链;导入单元803,用于:备份服务器获取具有目标备份链的标识的各待备份数据;根据目标备份链上的各待备份数据的时间标识,将目标备份链上的各待备份数据导入备份数据库。
[0117] 可选的,接收单元801,还用于:接收源服务器发送的至少一个待备份数据;待备份数据为全量备份或增量备份;导入单元803,还用于:若待备份数据为全量备份,则将全量备份导入至备份数据库中;每个全量备份对应一个备份数据库;确定出备份链的标识为目标备份链的标识的全量备份所在的目标备份数据库;将备份链的标识为目标备份链的标识的增量备份导入至目标备份数据库中。
[0118] 基于以上实施例以及相同构思,本发明实施例提供一种源服务器,该源服务器可以实现如上图5中所示的任一项或任多项对应的数据备份方法中的步骤。
[0119] 图9为本发明实施例提供的一种源服务器的结构示意图,如图9所示,该源服务器900包括构建单元901、处理单元902和发送单元903。其中:
[0120] 构建单元901,用于:构建用于执行数据备份任务的至少一条备份链;每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;
[0121] 处理单元902,用于:针对至少一条备份链中的每条备份链,执行:针对该备份链的每个备份时间点,从源数据库中获取该备份时间点对应的待备份数据;
[0122] 发送单元903,用于:针对该备份链的每个备份时间点,将该备份时间点对应的待备份数据、该备份链的标识和该备份时间点的时间标识发送至备份服务器中;备份服务器用于根据至少一条备份链的每个备份时间点对应的待备份数据完成数据恢复。
[0123] 本发明实施例中,数据备份方法构建了至少一条备份链;每条备份链包括至少一个备份时间点,且每条备份链上的每个备份时间点与其他备份链上的备份时间点不同;而且每条备份链的每个备份时间点都从源数据库中获取该备份时间点对应的待备份数据,并发送至备份服务器中。因此,至少一条备份链中每条备份链都可以确定出一个与当前时刻最邻近的备份时间点,而且每条备份链上与当前时刻最邻近的备份时间点都不相同,如此,可以从至少一个与当前时刻最邻近的备份时间点中确定出与当前时刻最近的备份时间点,相较于现有技术中在一条备份链中的每个固定时间点进行备份的方案,本发明实施例可以从至少一条备份链中确定出与任意时刻距离很近的备份时间点的目标备份数据,进而可以实现提高数据恢复的时效性,恢复当前时刻之前的较多的备份数据。
[0124] 可选的,至少一条备份链中每条备份链包括全量备份对应的备份时间点和/或至少一个增量备份对应的备份时间点;至少一条备份链中相邻两条备份链的全量备份对应的备份时间点之间间隔第一预设时长,每条备份链中相邻两个增量备份对应的备份时间点之间间隔第二预设时长。
[0125] 可选的,每条备份链运行期间用于备份N个备份时间点对应的待备份数据;N为大于0的整数;处理单元902,还用于:针对每条备份链,在该备份链完成备份N个备份时间点的待备份数据备份后、且在到达N个备份时间点的下一个备份时间点时,删除该备份链以及该备份链对应的N个备份时间点的待备份数据。
[0126] 本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0127] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0128] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0129] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0130] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0131] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。