一种数据库短期数据保护方法、装置、存储器及设备制造方法及图纸

技术编号:21377871 阅读:25 留言:0更新日期:2019-06-15 13:27
本申请提供一种数据库短期数据保护方法、装置、存储器及设备,所述方法包括:按照预设的规则对数据库进行快照,两次快照之间的数据通过日志进行记录;当需要进行数据库恢复时,根据数据库需要恢复的时间节点,确定目标快照和目标日志,所述目标快照和目标日志为数据库恢复时需要使用的快照和日志;根据所述目标快照和目标日志,对所述数据库进行恢复。采用本申请实施例所提供的方案,数据库快照和数据库日志结合,实现短时间内的数据库保护恢复;日志更细粒度的切分,方便对数据库恢复时间点的定位。

【技术实现步骤摘要】
一种数据库短期数据保护方法、装置、存储器及设备
本申请涉及计算机
,特别涉及一种数据库短期数据保护方法、装置、存储器及设备。
技术介绍
数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,用户可以对数据库中的数据进行新增、截取、更新、删除等操作。数据库在当前的软件开发和设计中承担的非常重要的角色,若数据库出现故障导致数据丢失,则会对整个软件开发和设计造成灾难性的损失。对于数据库的数据保护目前存在的多种多样的技术方案。其中,数据库日志就是一种非常重要的保护手段,例如mysql/mariadb的bin-log,及oracleredo-log等,当数据库出现数据问题时,可通过数据库定时备份进行数据重放,将数据库恢复至正常状态。但是,现有技术中必须对数据库有一个全量的备份,恢复时间较长。此外,当应用上层出现误操作时,无法快速的恢复数据至一段时间前,只能从完整数据库备份中进行恢复,操作不够灵活。
技术实现思路
有鉴于此,本申请的目的在于提供一种数据库短期数据保护方法、装置、存储器及设备,以利于解决现有技术中数据库恢复基于全量备份,恢复时间长,操作不灵活的问题。其具体方案如下:第一方面,本申请实施例提供了一种数据库短期数据保护方法,包括:按照预设的规则对数据库进行快照,两次快照之间的数据通过日志进行记录;当需要进行数据库恢复时,根据数据库需要恢复的时间节点,确定目标快照和目标日志,所述目标快照和目标日志为数据库恢复时需要使用的快照和日志;根据所述目标快照和目标日志,对所述数据库进行恢复。优选地,所述方法还包括:若所述数据库的快照数量N大于预设的快照数量阈值M,则根据快照的创建时间,删除N-M个快照,其中,删除的N-M个快照中任意一个快照的创建时间早于剩余的M个快照中任意一个快照的创建时间。优选地,所述快照数量阈值M=1。优选地,所述目标快照和目标日志为数据库恢复时需要使用的快照和日志,具体为:所述目标快照为数据库需要恢复的时间节点之前,创建时间最晚的快照;所述目标日志为所述目标快照和数据库需要恢复的时间节点之间的日志。优选地,所述按照预设的规则对数据库进行快照,包括:按照预设的时间间隔和/或日志的数据量,对数据库进行快照。第二方面,本申请实施例提供了一种数据库短期数据保护装置,包括:快照模块,用于按照预设的规则对数据库进行快照,两次快照之间的数据通过日志进行记录;确定模块,用于当需要进行数据库恢复时,根据数据库需要恢复的时间节点,确定目标快照和目标日志,所述目标快照和目标日志为数据库恢复时需要使用的快照和日志;恢复模块,用于根据所述目标快照和目标日志,对所述数据库进行恢复。优选地,所述装置还包括:删除模块,用于若所述数据库的快照数量N大于预设的快照数量阈值M,则根据快照的创建时间,删除N-M个快照,其中,删除的N-M个快照中任意一个快照的创建时间早于剩余的M个快照中任意一个快照的创建时间。优选地,所述目标快照和目标日志为数据库恢复时需要使用的快照和日志,具体为:所述目标快照为数据库需要恢复的时间节点之前,创建时间最晚的快照;所述目标日志为所述目标快照和数据库需要恢复的时间节点之间的日志。第三方面,本申请实施例提供了一种计算机存储器,所述计算机存储器上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的步骤。第四方面,本申请实施例提供了一种计算机设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述第一方面所述的步骤。采用本申请实施例所提供的方案,数据库快照和数据库日志结合,实现短时间内的数据库保护恢复;日志更细粒度的切分,方便对数据库恢复时间点的定位本申请提供一种方法应用于上述装置,计算机存储器及设备能运行上述方法,也具有上述的有益效果,在此不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请具体实施方式提供的一种数据库短期数据保护方法流程示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。针对现有技术中数据库恢复基于全量备份,恢复时间长,操作不灵活的问题,本申请实施例提供了一种数据库短期数据保护方法。图1为本申请具体实施方式提供的一种数据库短期数据保护方法流程示意图,如图1所示,其主要包括以下步骤。步骤S101:按照预设的规则对数据库进行快照,两次快照之间的数据通过日志进行记录;本申请实施例采用数据库快照和数据日志相结合的方式对数据库进行保护。数据库初始化后,对数据库进行快照,快照完成后,将数据库所有的插入、更新和创建请求按照更小粒度进行日志记录,日志完成后,将数据写入数据库,从而将数据库的状态进行更小粒度的保存。需要指出的是,在本申请实施例中,按照预设的规则每隔一段时间对数据库执行一次快照。例如,按照预设的时间间隔,当到达设定的时间后,对数据库执行下一次快照;或者,根据日志的数据量,当日志的数据量达到设定的阈值时,对数据库进行下一次快照;或者,综合考虑时间和日志的数据量情况,对数据库进行快照。步骤S102:当需要进行数据库恢复时,根据数据库需要恢复的时间节点,确定目标快照和目标日志,所述目标快照和目标日志为数据库恢复时需要使用的快照和日志。当需要进行数据库恢复时,暂停以上所有操作,查找出现数据库误操作的时间节点,即需要恢复的时间节点。然后查找数据库恢复时需要使用的快照和日志,即目标快照和目标日志。可理解,数据库恢复时需要使用的快照为距离需要恢复的时间节点最近的一次快照,需要使用的日志,为距离需要恢复的时间节点最近的一次快照和需要恢复的时间节点之间记录的日志。换句话来讲,所述目标快照为数据库需要恢复的时间节点之前,创建时间最晚的快照;所述目标日志为所述目标快照和数据库需要恢复的时间节点之间的日志。步骤S103:根据所述目标快照和目标日志,对所述数据库进行恢复。在查找出进行数据库恢复使用的快照和日志后,根据该快照和日志对数据库进行恢复。采用本申请实施例所提供的方法,数据库快照和数据库日志结合,实现短时间内的数据库保护恢复;日志更细粒度的切分,方便对数据库恢复时间点的定位。另外,对数据库执行快照会占用较多的系统资源,尤其是当快照的数量较多时,对系统资源的消耗非常大。在本申请一种优选实施例中,对快照的数量进行限制,若所述数据库的快照数量N大于预设的快照数量阈值M,则根据快照的创建时间,删除N-M个快照,其中,删除的N-M个快照中任意一个快照的创建时间早于剩余的M个快照中任意一个快照的创建时间。也就是说,在对快照进行删除时,优选删除创建时间比较早的快照。在一种优选实施例中,快照数量阈值为1,即当下一个快照创建后,即对上一个快照删除,始终保持快照的数量为1个。删除本文档来自技高网...

【技术保护点】
1.一种数据库短期数据保护方法,其特征在于,包括:按照预设的规则对数据库进行快照,两次快照之间的数据通过日志进行记录;当需要进行数据库恢复时,根据数据库需要恢复的时间节点,确定目标快照和目标日志,所述目标快照和目标日志为数据库恢复时需要使用的快照和日志;根据所述目标快照和目标日志,对所述数据库进行恢复。

【技术特征摘要】
1.一种数据库短期数据保护方法,其特征在于,包括:按照预设的规则对数据库进行快照,两次快照之间的数据通过日志进行记录;当需要进行数据库恢复时,根据数据库需要恢复的时间节点,确定目标快照和目标日志,所述目标快照和目标日志为数据库恢复时需要使用的快照和日志;根据所述目标快照和目标日志,对所述数据库进行恢复。2.根据权利要求1所述的方法,其特征在于,还包括:若所述数据库的快照数量N大于预设的快照数量阈值M,则根据快照的创建时间,删除N-M个快照,其中,删除的N-M个快照中任意一个快照的创建时间早于剩余的M个快照中任意一个快照的创建时间。3.根据权利要求2所述的方法,其特征在于,所述快照数量阈值M=1。4.根据权利要求1所述的方法,其特征在于,所述目标快照和目标日志为数据库恢复时需要使用的快照和日志,具体为:所述目标快照为数据库需要恢复的时间节点之前,创建时间最晚的快照;所述目标日志为所述目标快照和数据库需要恢复的时间节点之间的日志。5.根据权利要求1-4任一项所述的方法,其特征在于,所述按照预设的规则对数据库进行快照,包括:按照预设的时间间隔和/或日志的数据量,对数据库进行快照。6.一种数据库短期数据保护装置,其特征在于,包括:快照模...

【专利技术属性】
技术研发人员:魏传程胡玉鹏
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1