数据备份与恢复方法、装置、计算机设备及存储介质与流程

文档序号:18739730发布日期:2019-09-21 01:38阅读:174来源:国知局
数据备份与恢复方法、装置、计算机设备及存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种数据备份与恢复方法、装置、计算机设备及存储介质。



背景技术:

目前数据库备份通常有冷备与热备两种常见方式,冷备是指由DBA(数据库管理员)或者系统管理员定期地从生产数据库手动导出数据到本地保存,热备是指不需要DBA或者系统管理员手动地执行,由系统自动地执行备份如主从复制,主主复制等,目前主流公司采用的都是全量备份+增量备份的方式,如一个月进行一次生产数据库的全量导出,每日进行一次生产数据库的增量导出。

无论是热备还是冷备,假如生产数据库一旦被人为的误操作导致删除了全库,常见的数据恢复方法一般都是找出月初的全量备份数据文件,然后在找出之后的每日增量备份文件,再找出到数据库被删除点的当日的所有binlog日志文件,然后依次地执行,直到所有数据文件以及binlog日志文件执行完毕,即完成了数据库数据的恢复,此种方案潜在的问题是需要执行所有的日增量文件以及binlog日志文件,数据修复较慢,假如碰到月尾的情况,需要执行的日增量文件更多,恢复数据更慢。



技术实现要素:

为了解决上述背景技术中提到的至少一个问题,本发明提供了一种数据备份与恢复方法、装置、计算机设备及存储介质。

本发明实施例提供的具体技术方案如下:

第一方面,本发明提供一种数据备份与恢复方法,所述方法包括:

在对主数据库进行数据备份时,将所述主数据库的数据以不同的时间间隔延迟同步至多个备份数据库;

当所述主数据库出现错误时,在所述多个备份数据库中确定出用于对所述主数据库进行数据恢复的目标备份数据库;

使用所述目标备份数据库的数据对所述主数据库的数据进行数据恢复。

在一个优选实施例中,所述当所述主数据库出现错误,在所述多个备份数据库中确定出用于对所述主数据库进行数据恢复的目标备份数据库,包括:

确定导致所述主数据库出现错误的错误操作;

将所述多个备份数据库中的未执行所述错误操作的一个备份数据库确定为所述目标备份数据库。

在一个优选实施例中,所述将所述多个备份数据库中的未执行所述错误操作的一个备份数据库确定为所述目标备份数据库包括:

在未执行所述错误操作的备份数据库中,将时间间隔最小的备份数据库确定为所述目标备份数据库。

在一个优选实施例中,所述使用所述目标备份数据库的数据对所述主数据库的数据进行数据恢复,包括:

在所述主数据库的操作日志中,查找所述目标备份数据库上次完成同步时至所述错误操作发生时之间的所有操作记录;

在所述目标备份数据库上依次执行各所述操作记录,以更新所述目标备份数据库的数据;

使用所述目标备份数据库更新后的数据对所述主数据库的数据进行数据恢复。

在一个优选实施例中,所述主数据库的操作日志至少包括二进制日志binlog。

第二方面,提供了一种数据备份与恢复装置,所述装置包括:

数据备份模块,用于在对主数据库进行数据备份时,将所述主数据库的数据以不同的时间间隔延迟同步至多个备份数据库;

数据恢复模块,用于当所述主数据库出现错误时,在所述多个备份数据库中确定出用于对所述主数据库进行数据恢复的目标备份数据库,使用所述目标备份数据库的数据对所述主数据库的数据进行数据恢复。

在一个优选实施例中,所述数据恢复模块具体用于:

确定导致所述主数据库出现错误的错误操作;

将所述多个备份数据库中的未执行所述错误操作的一个备份数据库确定为所述目标备份数据库。

在一个优选实施例中,所述数据恢复模块具体还用于:

在未执行所述错误操作的备份数据库中,将时间间隔最小的备份数据库确定为所述目标备份数据库。

在一个优选实施例中,所述数据恢复模块具体还用于:

在所述主数据库的操作日志中,查找所述目标备份数据库上次完成同步时至所述错误操作发生时之间的所有操作记录;

在所述目标备份数据库上依次执行各所述操作记录,以更新所述目标备份数据库的数据;

使用所述目标备份数据库更新后的数据对所述主数据库的数据进行数据恢复。

在一个优选实施例中,所述主数据库的操作日志至少包括二进制日志binlog。

第三方面,提供了一种计算机设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面任一所述的方法。

第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面任一所述的方法。

本发明实施例提供了一种数据备份与恢复方法、装置、计算机设备及存储介质,通过在对主数据库进行数据备份时,将所述主数据库的数据以不同的时间间隔延迟同步至多个备份数据库;当所述主数据库出现错误时,在所述多个备份数据库中确定出用于对所述主数据库进行数据恢复的目标备份数据库;使用所述目标备份数据库的数据对所述主数据库的数据进行数据恢复,相比较于现有技术中的数据恢复方法,本发明能够快速恢复主数据库,能够明显缩短故障恢复时间,且可以避免故障恢复失败,提高了数据库系统的整体可用性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的数据备份与恢复方法的应用环境示意图;

图2是本发明实施例提供的一种数据备份与恢复方法的流程示意图;

图3是本发明实施例提供的一种数据备份与恢复装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的数据备份与恢复方法,可以应用于如图1所示的应用环境中,其中,主数据库1与两个备份数据库2之间通过网络进行通信,可以理解的是,备份数据库的数量可以是两个以上。主数据库1可以为安装在一个或多个服务器上的数据库程序,备份数据库2同样可以为安装在一个或多个服务器上的数据库程序。上述的数据库程序可以包括MySQL、SQL Server及Oracle等。本发明实施例中,可以采用MySQL作为数据库程序。

实施例一

参照图2所示,本发明实施例提供一种数据备份与恢复方法,该方法包括步骤:

S1、在对主数据库进行数据备份时,将所述主数据库的数据以不同的时间间隔延迟同步至多个备份数据库。

本实施例中,主数据库和备份数据库之间存在主从关系,如果主数据库中执行对某一数据的操作,相应的在主数据库操作日志中记录对该数据的数据操作记录,数据操作记录包含数据的数据标识、存储路径、操作指令和操作时间,在延迟同步时,从主数据库操作日志中获取到该数据的数据操作记录,并根据数据的数据操作记录,在备份数据库上执行对该数据的相同操作,进而完成主数据库和备份数据库之间的数据同步。

本实施例中,对主数据库设置不同的时间间隔进行延迟同步至不同的备份数据库,不同的时间间隔对应不同的备份数据库,具体的时间间隔可以根据备份数据库的数量进行设置。例如,当备份数据库的数量为两个时,可以将第一个备份数据库对应的时间间隔设置为1小时,第二个备份数据库对应的时间间隔设置为1.5小时。也就是说,每间隔1小时对主数据库的数据延迟同步至第一个备份数据库,每间隔1.5小时将主数据库的数据延迟同步至第二备份数据库。又例如,当备份数据库的数量为三个时,可以将第一个备份数据库对应的时间间隔设置为1小时,第二个备份数据库对应的时间间隔设置为1.5小时,第三个备份数据库对应的时间间隔设置为2小时。本发明实施例对时间间隔及备份数据库的数量均不作具体限定。

本发明实施例中,在对主数据库进行数据备份时,将所述主数据库的数据以不同的时间间隔延迟同步至多个备份数据库,由于不是将主数据库的数据实时同步至多个备份数据库中,由此能够在一定程度上避免由于人为误操作删除主数据库的同时也导致删除备份数据库,此外,也可以在一定程度上减少对主数据库与备份数据库之间的通信网络的要求,降低对主数据库与备份数据库的压力。

S2、当所述主数据库出现错误时,在所述多个备份数据库中确定出用于对所述主数据库进行数据恢复的目标备份数据库。

具体地,步骤S2的实现过程可以包括如下步骤:

步骤S21、确定导致所述主数据库出现错误的错误操作。

其中,错误操作可以是人为错误删除、错误修改或错误增加等操作。

本实施例中,可以采用日志解析工具如解析函数等解析主数据库的操作日志,从主数据库操作日志中解析出导致主数据库出现错误的错误操作。

步骤S22、将所述多个备份数据库中的未执行所述错误操作的一个备份数据库确定为所述目标备份数据库。

具体地,该过程可以包括:

确定当前时间与错误操作的发生时间之间的时间差,将该时间差与各个备份数据库分别对应的时间间隔进行比较,并根据比较结果,确定所述多个备份数据库中的未执行所述错误操作的备份数据库,选取未执行所述错误操作的一个备份数据库作为用于对主数据库进行数据恢复的目标备份数据库。

其中,若比较结果指示时间差小于时间间隔,则确定在该时间间隔对应的备份数据库上未执行错误操作,否则,则确定在该时间间隔对应的备份数据库上已执行错误操作。

其中,所述将所述多个备份数据库中的未执行所述错误操作的一个备份数据库确定为所述目标备份数据库,包括:

在未执行所述错误操作的备份数据库中,将时间间隔最小的备份数据库确定为所述目标备份数据库。

本实施例中,当所述主数据库出现错误时,确定导致所述主数据库出现错误的错误操作,并将所述多个备份数据库中的未执行所述错误操作的一个备份数据库确定为所述目标备份数据库,便于后续使用未执行错误操作的备份数据库对主数据库进行数据恢复,由此解决了仅有一个备份数据库和主数据库进行延迟同步,若主数据库执行了错误操作可能会导致该备份数据库也执行错误操作,而该备份数据库无法完成对主数据库进行数据恢复的技术缺陷。

S3、使用所述目标备份数据库的数据对所述主数据库的数据进行数据恢复。

具体地,步骤S3的实现过程可以包括步骤:

S31、在所述主数据库的操作日志中,查找所述目标备份数据库上次完成同步时至所述错误操作发生时之间的所有操作记录。

其中,所述主数据库的操作日志至少包括二进制日志binlog。

S32、在所述目标备份数据库上依次执行各所述操作记录,以更新所述目标备份数据库的数据。

S33、使用所述目标备份数据库更新后的数据对所述主数据库的数据进行数据恢复。

本实施例中,通过在所述目标备份数据库上依次执行该目标备份数据库上次完成同步时至所述错误操作发生时之间的所有操作记录,更新所述目标备份数据库的数据,并使用所述目标备份数据库更新后的数据对所述主数据库的数据进行数据恢复,实现了对数据库的快速恢复,并最大限度地减小数据库出现异常时造成的损失。

本发明实施例中,通过在对主数据库进行数据备份时,将所述主数据库的数据以不同的时间间隔延迟同步至多个备份数据库;当所述主数据库出现错误时,在所述多个备份数据库中确定出用于对所述主数据库进行数据恢复的目标备份数据库;使用所述目标备份数据库的数据对所述主数据库的数据进行数据恢复,相比较于现有技术中的数据恢复方法,本发明能够快速恢复主数据库,能够明显缩短故障恢复时间,且可以避免故障恢复失败,提高了数据库系统的整体可用性。

实施例二

作为对实施例一中的数据备份与恢复方法的实现,本发明实施例还提供一种数据备份与恢复装置,参照图3所示,该装置包括:

数据备份模块31,用于在对主数据库进行数据备份时,将所述主数据库的数据以不同的时间间隔延迟同步至多个备份数据库;

数据恢复模块32,用于当所述主数据库出现错误时,在所述多个备份数据库中确定出用于对所述主数据库进行数据恢复的目标备份数据库,使用所述目标备份数据库的数据对所述主数据库的数据进行数据恢复。

在一个优选实施例中,所述数据恢复模块32具体用于:

确定导致所述主数据库出现错误的错误操作;

将所述多个备份数据库中的未执行所述错误操作的一个备份数据库确定为所述目标备份数据库。

在一个优选实施例中,所述数据恢复模32具体还用于:

在未执行所述错误操作的备份数据库中,将时间间隔最小的备份数据库确定为所述目标备份数据库。

在一个优选实施例中,所述数据恢复模块32具体还用于:

在所述主数据库的操作日志中,查找所述目标备份数据库上次完成同步时至所述错误操作发生时之间的所有操作记录;

在所述目标备份数据库上依次执行各所述操作记录,以更新所述目标备份数据库的数据;

使用所述目标备份数据库更新后的数据对所述主数据库的数据进行数据恢复。

在一个优选实施例中,所述主数据库的操作日志至少包括二进制日志binlog。

本发明实施例提供了一种数据备份与恢复装置,通过在对主数据库进行数据备份时,将所述主数据库的数据以不同的时间间隔延迟同步至多个备份数据库;当所述主数据库出现错误时,在所述多个备份数据库中确定出用于对所述主数据库进行数据恢复的目标备份数据库;使用所述目标备份数据库的数据对所述主数据库的数据进行数据恢复,相比较于现有技术中的数据恢复方法,本发明能够快速恢复主数据库,能够明显缩短故障恢复时间,且可以避免故障恢复失败,提高了数据库系统的整体可用性。

需要说明的是,关于数据备份与恢复装置的具体限定可以参见上文中对于数据备份与恢复方法的限定,在此不再赘述。上述数据备份与恢复装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

此外,本发明实施例还提供了一种计算机设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如实施例一所述的数据备份与恢复方法。

此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如实施例一所述的数据备份与恢复方法。

本领域内的技术人员应明白,本发明实施例中的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例中是参照根据本发明实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例中范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1