数据库中故障数据的恢复方法和系统的制作方法
【技术领域】
[0001]本申请涉及数据处理领域,尤其涉及数据库中故障数据的恢复方法和系统。
【背景技术】
[0002]随着大数据时代的到来,数据库变得日益重要。然而随着数据库业务迭代的增加,数据库的故障概率也随之增加。而数据库出现故障会对业务造成很大的影响,因此当数据库出现故障时,如何快速有效的恢复数据库变得尤为重要。
[0003]目前,业内往往是通过全量快照和人工追加变更日志的方式来实现数据库的恢复。但是由于数据库中存在大量数据,上述方法恢复数据库就会存在以下问题:①效率低,由于数据库中的数据量很大,恢复全量数据非常慢,追加全量变更日志的效率也低,恢复效率非常低恢复代价大,由于需要恢复全量数据,占用磁盘空间很大,往往需要使用额外的机器资源完成数据恢复,而且数据恢复过程中需要数据库维护人员的全程参与,恢复成本较高恢复数据粒度单一,只支持全部数据一块恢复,无法针对故障数据部分完成数据恢复。因此,现在亟需一种快速有效的数据库恢复方法来满足数据库恢复到任意目标时刻的需求。
【发明内容】
[0004]本申请的目的在于提出一种改进的数据库中故障数据的恢复方法和系统,来解决以上【背景技术】部分提到的技术问题。
[0005]第一方面,本申请提供了一种数据库中故障数据的恢复方法,所述方法包括:接收故障数据恢复请求信息,其中,所述故障数据恢复请求信息包括故障数据的标识信息和目标恢复时间信息;基于所述故障数据的标识信息在所述数据库的第一快照中获取所述故障数据的备份文件;获取所述故障数据的增量日志,其中,所述故障数据的增量日志包括所述故障数据在所述第一快照的快照时刻和所述目标恢复时间信息中的目标恢复时刻之间的变化信息;以及基于所述故障数据的备份文件和所述故障数据的增量日志,恢复所述故障数据。
[0006]在一些实施例中,所述第一快照的快照时刻与所述目标恢复信息中的目标恢复时刻之间没有创建其它快照。
[0007]在一些实施例中,所述基于所述故障数据的标识信息在所述数据库的第一快照中获取所述故障数据的备份文件,包括:判断所述第一快照的压缩状态,其中所述压缩状态为指示所述第一快照中各备份文件是否为压缩文件的状态;若所述第一快照未处于压缩状态,则获取所述故障数据的备份文件;若所述第一快照处于压缩状态,则解压缩所述第一快照,获取所述故障数据的备份文件。
[0008]在一些实施例中,所述获取所述故障数据的增量日志,包括:获取所述第一快照的快照时刻与所述目标恢复时间信息中的目标恢复时刻之间的与所述数据库中包含的所有数据对应的增量日志,构成增量日志集合;从所述增量日志集合中提取所述故障数据的增量曰志。
[0009]在一些实施例中,所述从所述增量日志集合中提取所述故障数据的增量日志,包括:将所述增量日志集合解析成可读文本信息;基于锚点定位确定所述增量日志集合中每个增量日志所对应的可读文本信息的起始位置和结束位置;基于预设的正则表达式与所述起始位置和所述结束位置的匹配,确定与所述故障数据的增量日志对应的可读文本信息;提取所述故障数据的增量日志。
[0010]在一些实施例中,所述基于所述故障数据的备份文件和所述故障数据的增量日志,恢复所述故障数据,包括:创建临时实例;将所述第一快照中获取的所述故障数据的备份文件导入所述临时实例;将所述第一快照的快照时刻和所述目标恢复时间信息中的目标恢复时刻之间的所述故障数据的增量日志导入所述临时实例;基于所述临时实例,将所述数据库恢复到所述目标恢复时刻。
[0011]在一些实施例中,所述将所述第一快照中获取的所述故障数据的备份文件导入所述临时实例,包括:从所述第一快照中获取所述故障数据的备份文件的编号;将所述故障数据的备份文件的编号与所述临时实例中的编号进行对比;当所述故障数据的备份文件的编号与所述临时实例中的编号相同时,将所述故障数据的备份文件导入所述临时实例。
[0012]第二方面,本申请提供了数据库中故障数据的恢复系统,所述系统包括:接收模块,用于接收故障数据恢复请求信息,其中,所述故障数据恢复请求信息包括故障数据的标识信息和目标恢复时间信息;备份文件获取模块,用于基于所述故障数据的标识信息在所述数据库的第一快照中获取所述故障数据的备份文件;增量日志获取模块,用于获取所述故障数据的增量日志,其中,所述故障数据的增量日志包括所述故障数据在所述第一快照的快照时刻和所述目标恢复时间信息中的目标恢复时刻之间的变化信息;以及恢复模块,用于基于所述故障数据的备份文件和所述故障数据的增量日志,恢复所述故障数据。
[0013]在一些实施例中,所述第一快照的快照时刻与所述目标恢复信息中的目标恢复时刻之间没有创建其它快照。
[0014]在一些实施例中,所述备份文件获取模块,具体用于:判断所述第一快照的压缩状态,其中所述压缩状态为指示所述第一快照中各备份文件是否为压缩文件的状态;若所述第一快照未处于压缩状态,则获取所述故障数据的备份文件;若所述第一快照处于压缩状态,则解压缩所述第一快照,获取所述故障数据的备份文件。
[0015]在一些实施例中,所述增量日志获取模块,具体用于:获取所述第一快照的快照时刻与所述目标恢复时间信息中的目标恢复时刻之间的与所述数据库中包含的所有数据对应的增量日志,构成增量日志集合;从所述增量日志集合中提取所述故障数据的增量日志。
[0016]在一些实施例中,所述增量日志获取模块进一步配置用于:将所述增量日志集合解析成可读文本信息;基于锚点定位确定所述增量日志集合中每个增量日志所对应的可读文本信息的起始位置和结束位置;基于预设的正则表达式与所述起始位置和所述结束位置的匹配,确定所述故障数据的增量日志对应的可读文本信息;提取所述故障数据的增量日
ν.、ι、ο
[0017]在一些实施例中,所述恢复模块,具体用于:创建临时实例;将所述第一快照中获取的所述故障数据的备份文件导入所述临时实例;将所述第一快照的快照时刻和所述目标恢复时间信息中的目标恢复时刻之间的所述故障数据的增量日志导入所述临时实例;基于所述临时实例,将所述数据库恢复到所述目标恢复时刻。
[0018]在一些实施例中,所述恢复模块进一步配置用于:从所述第一快照中获取与所述故障数的备份文件的编号;将所述故障数据的备份文件的编号与所述临时实例中的编号进行对比;若所述故障数据的备份文件的编号与所述临时实例中的编号相同时,则将所述故障数据的备份文件导入所述临时实例。
[0019]本申请提供的数据库中故障数据的恢复方法和系统,通过获得所述数据库的第一快照中获取故障数据的备份文件,以及所述第一快照的快照时刻和所述目标恢复时间信息中的目标恢复时刻之间的故障数据的增量日志,最后基于所述故障数据的备份文件和所述故障数据的增量日志,恢复所述故障数据,通过快照和增量日志的结合将恢复数据库恢复到目标恢复时刻,并且这种方法只需要恢复数据库中故障数据,极大的缩短了数据库恢复需要的时间,提高了数据库恢复的效率。
【附图说明】
[0020]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0021]图1是可以应用于本申请实施例的示例性系统架构图;
[0022]图2是根据本申请的数据库中故障数据的恢复方法的一个实施例的流程图;
[0023]图3是根据本申请的数据库中故障数据的恢复方法的一时间轴简图;
[0024]图4是根据本申请的数据库中故障数据的恢复方法中,获取故障数据的备份文件的一种实现方式的示意性流程图;
[0025]图5是根据本申请的数据库中故障数据的恢复方法中,获取故障数据的增量日志的一种实现方式的示意性流程图;
[0026]图6是根据本申请的数据库中故障数据的恢复方法中,基于临时实例恢复故障数据的一种实现方式的示意性流程图;
[0027]图7是根据本申请的数据库中故障数据的恢复系统的一个实施例的结构示意图;
[0028]图8是适于用来实现本申请实施例的客户端设备或服务器的计算机系统的结构示意图。
【具体实施方式】
[0029]下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需