CN104216802B - 一种内存数据库恢复方法和设备 - Google Patents
一种内存数据库恢复方法和设备 Download PDFInfo
- Publication number
- CN104216802B CN104216802B CN201410498148.2A CN201410498148A CN104216802B CN 104216802 B CN104216802 B CN 104216802B CN 201410498148 A CN201410498148 A CN 201410498148A CN 104216802 B CN104216802 B CN 104216802B
- Authority
- CN
- China
- Prior art keywords
- mirror image
- memory database
- time
- real
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种内存数据库恢复方法,包括:接收内存数据库恢复指令;判断是否存在内存数据库实时镜像;当判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;若包括,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;若未包括,将所述内存数据库实时镜像加载到内存中,以恢复内存数据库。本发明实施例还公开了一种内存数据库恢复设备和终端。采用本发明实施例,可以提高内存数据库恢复的效率,降低内存数据库恢复对系统性能的影响。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种内存数据库恢复方法和设备。
背景技术
随着互联网的不断发展,对数据访问的速度要求也越来越高,内存数据库因为其快速的数据访问能力,使其使用也变得越来越频繁。
内存数据库是指将数据放在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大提高应用的性能。但是由于所有操作都是基于内存的操作,内存数据库极其容易因系统问题导致数据被破坏或者丢失,特别是由于宕机导致的数据丢失。
现有技术中,通常根据数据库操作日志,即造成内存数据库数据改变的操作(如增、删、改等操作)以及结果的日志记录,进行内存数据库恢复,即完全根据数据库操作日志中的记录恢复内存数据库,但是该内存数据库恢复方案中,内存数据库恢复效率较低,且当日志数据量比较大时,会造成较大的系统负荷,影响系统性能。
发明内容
本发明实施例所要解决的技术问题在于,提供一种内存数据库恢复方法和设备。可以提高内存数据库恢复的效率,降低内存数据库恢复对系统性能的影响。
为了解决上述技术问题,本发明实施例提供了一种内存数据库恢复方法,包括:
接收内存数据库恢复指令;
判断是否存在内存数据库实时镜像;
当判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;
若包括,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;
若未包括,将所述内存数据库实时镜像加载到内存中,以恢复内存数据库。
相应地,本发明实施例还提供了一种内存数据库恢复设备,包括:
接收模块,用于接收内存数据库恢复指令;
第一判断模块,用于判断是否存在内存数据库实时镜像;
第二判断模块,用于当所述第一判断模块的判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;
第一处理模块,用于当所述第二判断模块的判断结果为是时,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;
第二处理模块,用于当所述第二判断模块的判断结果为否时,将所述内存数据库实时镜像加载到内存中,以恢复内存数据库。
相应地,本发明实施例还提供了一种终端,包括如上所述的内存数据库恢复设备。
实施本发明实施例,具有如下有益效果:
当接收到内存数据库恢复指令时,判断是否存在内存数据库实时镜像,当存在内存数据库实时镜像时,进一步判断数据库操作日志中是否包括内存数据库实时镜像中未包括的数据,当包括时,将数据库操作日志中包括的该内存数据库实时镜像中未包括的数据加载到内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;当不包括时,将该内存数据库实时镜像加载到内存中,以恢复内存数据库,提高了内存数据库恢复的效率,降低了内存数据库恢复对系统性能的影响。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种内存数据库恢复方法的流程示意图;
图2是本发明实施例提供的另一种内存数据库恢复方法的流程示意图;
图3是本发明实施例提供的另一种内存数据库恢复方法的流程示意图;
图4是本发明实施例提供的一种内存数据库恢复设备的结构示意图;
图5是本发明实施例提供的另一种内存数据库恢复设备的结构示意图;
图6是本发明实施例提供的另一种内存数据库恢复设备的结构示意图;
图7是本发明实施例提供的另一种内存数据库恢复设备的结构示意图;
图8是本发明实施例提供的另一种内存数据库恢复设备的结构示意图;
图9是本发明实施例提供的另一种内存数据库恢复设备的结构示意图;
图10是本发明实施例提供的另一种内存数据库恢复设备的结构示意图;
图11是本发明实施例提供的另一种内存数据库恢复设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例提供的一种内存数据库恢复方法的流程示意图,可以包括以下步骤:
步骤101、接收内存数据库恢复指令。
本发明实施例中,内存数据库恢复指令可以包括运行指定程序的指令,即当接收到运行指定程序的指令时,确定需要进行内存数据库恢复指令。
作为一种可选的实施方式,上述指定程序可以配置为开机自启动,即当设备开机(包括宕机后重新启动、用户主动选择重新启动设备、用户关机后重新开机等)时,自动运行上述指定程序,从而触发内存数据库恢复。
作为另一种可选的实施方式,上述指定程序也可以在接收到用户输入的启动该指定程序的操作指令后运行,从而触发内存数据库恢复。
举例来说,用户可以通过点击上述指定程序在设备显示界面中的快捷方式图标,向设备输入启动该指定程序的指令,从而触发内存数据库恢复。
其中,设备(下同)可以为任意应用内存数据库的设备,如其通常为服务器(数据访问量较大),但也可以是其他用户终端(如PC机、手机、平板电脑等),本发明实施例不做限定。
步骤102、判断是否存在内存数据库实时镜像。并当判断结果为存在时,转至步骤103。
步骤103、判断数据操作日志中是否包括内存数据库实时镜像中未包括的数据。若判断为是,转至步骤104;否则,转至步骤105。
步骤104、将该数据操作日志中包括的内存数据库实时镜像中未包括的数据加载到该内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库。
步骤105、将该内存数据库实时镜像加载到内存中,以恢复内存数据库。
本发明实施例中,设备运行过程中,可以定时生成内存数据库实时镜像,该内存数据库实时镜像是指内存数据库在磁盘中的备份,其数据格式与内存数据库相同。
举例来说,以设备为数据服务器为例,应用本发明实施例提供的技术方案后,该数据服务器可以周期性地(如每半个小时、20分钟等)生成内存数据库实时镜像。例如,假设以0点为起始时刻,数据服务器可以每隔半个小时将内存数据库进行镜像,得到对应的内存数据库实时镜像。其中,数据服务器生成数据库实时镜像时,可以对应记录该数据库实时镜像的生成时间。
作为一种可选的实施方式,在本发明实施例中,设备生成最新的内存数据库实时镜像时,可以覆盖之前的生成的内存数据库实时镜像,即设备中最多仅存在一份内存数据库实时镜像。
作为另一种可选的实施方式,在本发明实施例中,设备可以定时清除过期的内存数据库实时镜像或不清除内存数据库实时镜像。
举例来说,假设设备每隔半个小时生成一份内存数据库实时镜像,对于各内存数据库实时镜像,可以设置一个有效时间,如2小时、或12小时等,当内存数据库实时镜像过期时,设备可以清除该过期的内存数据库实时镜像。
在该实施方式中,上述步骤103中,判断数据库操作日志中是否包括内存数据库实时镜像中未包括的数据时,可以为判断数据库操作日志中是否包括生成时间最新(最晚)的内存数据库实时镜像中未包括的数据。相应地,步骤104和步骤105中,内存数据库实时镜像也是指生成时间最新(最晚)的内存数据库实时镜像。
本发明实施例中,当接收到内存数据库恢复指令时,并不会直接根据数据库操作日志进行内存数据库恢复,而是会判断是否存在内存数据库实时镜像,并当存在内存数据库实时镜像时,可以进一步判断数据库操作日志中是否包括该内存数据库实时镜像中未包括的数据。
具体的,可以根据数据库实时镜像的生成时间以及数据库操作日志中各记录的时间(当设备检测到造成内存数据库中数据改变的操作时,在数据库操作日志中生成相应的日志记录,并记录该日志记录的生成时间),判断数据库操作日志中是否存在时间晚于该数据库实时镜像生成时间的记录,若存在,则判断数据库操作日志中包括该内存数据库实时镜像中未包括的数据;若不存在,则判断数据库操作日志中未包括该内存数据库实时镜像中未包括的数据。
举例来说,当接收到内存数据恢复指令时,假设确定存在内存数据库实时镜像,且该内存数据库实时镜像的生成时间为0:30,则可以进一步查询数据操作日志中各记录的时间,若数据操作日志中存在时间晚于0:30的记录,如数据操作日志中包括一条时间为0:40的日志记录(即在0:40发生了造成内存数据库数据改变的操作),则判断数据操作日志中包括该内存数据库实时镜像中未包括的数据;若数据操作日志中不存在时间晚于0:30的记录(即在0:30之后未发生造成内存数据库数据改变的操作),则判断数据操作日志中未包括该内存数据库实时镜像中未包括的数据。
本发明实施例中,当数据库操作日志中包括内存数据库实时镜像中未包括的数据时,可以将该数据库操作日志中包括的内存数据库实时镜像中未包括的数据(增量数据)加载到内存数据库实时镜像中,并将该内存数据库实时镜像(加载了增量数据的内存数据库实时镜像)加载到内存中,以恢复内存数据库;当数据库操作日志中未包括内存数据库实时镜像中未包括的数据时,将该内存数据库实时镜像加载到内存中,以恢复内存数据库。
在图1所示的流程中,当接收到内存数据库恢复指令,且判断不存在内存数据库实时镜像时,可以根据数据库操作日志进行内存数据库恢复,也可以通过其它方式实现内存数据库恢复,本发明不做限定。
如图2所示,为本发明实施例提供的另一种内存数据库恢复方法的流程示意图,可以包括:
步骤201、接收内存数据库恢复指令。
本发明实施例中,内存数据库恢复指令可以包括运行指定程序的指令,即当接收到运行指定程序的指令时,确定需要进行内存数据库恢复指令。
作为一种可选的实施方式,上述指定程序可以配置为开机自启动,即当设备开机(包括宕机后重新启动、用户主动选择重新启动设备、用户关机后重新开机等)时,自动运行上述指定程序,从而触发内存数据库恢复。
作为另一种可选的实施方式,上述指定程序也可以在接收到用户输入的启动该指定程序的操作指令后运行,从而触发内存数据库恢复。
举例来说,用户可以通过点击上述指定程序在设备显示界面中的快捷方式图标,向设备输入启动该指定程序的指令,从而触发内存数据库恢复。
步骤202、判断是否存在内存数据库实时镜像。若判断为是,转至步骤203;否则,转至步骤206。
步骤203、判断数据库操作日志中是否包括该内存数据库实时镜像中未包括的数据。若判断为是,转至步骤204;否则,转至步骤205。
步骤204、将该数据操作日志中包括的内存数据库实时镜像中未包括的数据加载到该内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库。
步骤205、将该内存数据库实时镜像加载到内存中,以恢复内存数据库。
本发明实施例中,设备运行过程中,可以定时生成内存数据库实时镜像,该内存数据库实时镜像是指内存数据库在磁盘中的备份,其数据格式与内存数据库相同。
举例来说,以设备为数据服务器为例,应用本发明实施例提供的技术方案后,该数据服务器可以周期性地(如每半个小时、20分钟等)生成内存数据库实时镜像。例如,假设以0点为起始时刻,数据服务器可以每隔半个小时将内存数据库进行镜像,得到对应的内存数据库实时镜像。其中,数据服务器生成数据库实时镜像时,可以对应记录该内存数据库实时镜像的生成时间。
作为一种可选的实施方式,在本发明实施例中,设备生成最新的内存数据库实时镜像时,可以覆盖之前的生成的内存数据库实时镜像,即设备中最多仅存在一份内存数据库实时镜像。
作为另一种可选的实施方式,在本发明实施例中,设备可以定时清除过期的内存数据库实时镜像或不清除内存数据库实时镜像。
举例来说,假设设备每隔半个小时生成一份内存数据库实时镜像,对于各内存数据库实时镜像,可以设置一个有效时间,如2小时、或12小时等,当内存数据库实时镜像过期时,设备可以清除该过期的内存数据库实时镜像。
在该实施方式中,上述步骤203中,判断数据库操作日志中是否包括内存数据库实时镜像中未包括的数据时,可以为判断数据库操作日志中是否包括生成时间最新(最晚)的内存数据库实时镜像中未包括的数据。相应地,步骤204和步骤205中,内存数据库实时镜像也是指生成时间最新(最晚)的内存数据库实时镜像。
本发明实施例中,当接收到内存数据库恢复指令时,并不会直接根据数据库操作日志进行内存数据库恢复,而是会判断是否存在内存数据库实时镜像,并当存在内存数据库实时镜像时,可以进一步判断数据库操作日志中是否包括该内存数据库实时镜像中未包括的数据。
具体的,可以根据数据库实时镜像的生成时间以及数据库操作日志中各记录的时间(当设备检测到造成内存数据库中数据改变的操作时,在数据库操作日志中生成相应的日志记录,并记录该日志记录的生成时间),判断数据库操作日志中是否存在时间晚于该数据库实时镜像生成时间的记录,若存在,则判断数据库操作日志中包括该内存数据库实时镜像中未包括的数据;若不存在,则判断数据库操作日志中未包括该内存数据库实时镜像中未包括的数据。
举例来说,当接收到内存数据恢复指令时,假设确定存在内存数据库实时镜像,且该内存数据库的生成时间为0:30,则可以进一步查询数据操作日志中各记录的时间,若数据操作日志中存在时间晚于0:30的记录,如数据操作日志中包括一条时间为0:40的日志记录(即在0:40发生了造成内存数据库数据改变的操作),则判断数据操作日志中包括该内存数据库实时镜像中未包括的数据;若数据操作日志中不存在时间晚于0:30的记录(即在0:30之后未发生造成内存数据库数据改变的操作),则判断数据操作日志中未包括该内存数据库实时镜像中未包括的数据。
本发明实施例中,当数据库操作日志中包括内存数据库实时镜像中未包括的数据时,可以将该数据库操作日志中包括的内存数据库实时镜像中未包括的数据(增量数据)加载到内存数据库实时镜像中,并将该内存数据库实时镜像(加载了增量数据的内存数据实时镜像)加载到内存中,以恢复内存数据库;当数据库操作日志中未包括内存数据库实时镜像中未包括的数据时,将该内存数据库实时镜像加载到内存中,以恢复内存数据库。
步骤206、查询最新的内存数据库镜像。
步骤207、判断数据库操作日志中是否包括该最新的内存数据库镜像中未包括的数据。若判断为是,转至步骤208;否则,转至步骤209。
步骤208、将该内存数据库操作日志中包括的该最新的内存数据库镜像中未包括的数据加载到该最新的内存数据库镜像中,并将该最新的内存数据库镜像加载的内存中,以恢复内存数据库。
步骤209、将该最新的内存数据库镜像加载到内存中,以恢复内存数据库。
本发明实施例中,设备运行过程中,除了可以定时生成内存数据库实时镜像之外,还可以定时生成内存数据库镜像,该内存数据库镜像是指内存数据在磁盘中的备份,其数据格式与内存数据库相同,其与内存数据库实时镜像的区别在于,内存数据库镜像的备份间隔更长。
举例来说,以设备为数据服务器为例,应用本发明实施例提供的技术方案后,该数据服务器可以以第一预设周期(如12个小时、1天等)生成内存数据库镜像,并以第二预设周期(如半个小时、20分钟等)生成内存数据库实时镜像。例如,假设以0点为起始时刻,数据服务器可以每隔半个小时将内存数据库进行镜像备份,得到对应的内存数据库实时镜像(即数据服务器可以在当天的0:30、1:00、…、12:00、…、第二天0:00、第二天0:30…生成内存数据库实时镜像);同时,数据服务器还可以每隔12小时将内存数据库进行镜像备份,得到对应的内存数据库镜像(即数据服务器可以在当天的12:00、第二天0:00、第二天12:00…生成内存数据库镜像)。其中,数据服务器生成内存数据库实时镜像(内存数据库镜像)时,可以对应记录该内存数据库实时镜像(内存数据库镜像)的生成时间,上述第一预设周期大于上述第二预设周期。
作为一种可选的实施方式,在本发明实施例中,设备生成最新的内存数据库镜像时,可以覆盖之前的生成的内存数据库镜像,即设备中最多仅存在一份内存数据库镜像。
作为另一种可选的实施方式,在本发明实施例中,设备可以定时清除过期的内存数据库镜像或不清除内存数据库镜像。
举例来说,假设设备每隔12个小时生成一份内存数据库镜像,对于各内存数据库镜像,可以设置一个有效时间,如24小时、或48小时等,当内存数据库镜像过期时,设备可以清除该过期的内存数据库镜像。
本发明实施例中,当接收到内存数据库恢复指令,且判断不存在内存数据库实时镜像时,可以判断是否存在内存数据库镜像,并当存在时,查询最新的内存数据库镜像(即生成时间与当前时间的时间间隔最小的内存数据库镜像),可以进一步判断数据库操作日志中是否包括该最新的内存数据库镜像中未包括的数据。
具体的,可以根据该最新的数据库镜像的生成时间以及数据库操作日志中各记录的时间,判断数据库操作日志中是否存在时间晚于该最新的数据库镜像生成时间的记录,若存在,则判断数据库操作日志中包括该最新的内存数据库镜像中未包括的数据;若不存在,则判断数据库操作日志中未包括该最新的内存数据库镜像中未包括的数据。
举例来说,当接收到内存数据恢复指令,且判断不存在内存数据库实时镜像时,假设确定存在内存数据库镜像,且最新的内存数据库镜像的生成时间为12:00,则可以进一步查询数据操作日志中各记录的时间,若数据操作日志中存在时间晚于12:00的记录,如数据操作日志中包括一条时间为12:40的日志记录(即在12:40发生了造成内存数据库数据改变的操作),则判断数据操作日志中包括该最新的内存数据库镜像中未包括的数据;若数据操作日志中不存在时间晚于12:00的记录(即在12:00之后未发生造成内存数据库数据改变的操作),则判断数据操作日志中未包括该最新的内存数据库镜像中未包括的数据。
本发明实施例中,当数据库操作日志中包括该最新的内存数据库镜像中未包括的数据时,可以将该数据库操作日志中包括的该最新的内存数据库镜像中未包括的数据(增量数据)加载到该最新的内存数据库镜像中,并将该最新的内存数据库镜像(加载了增量数据的内存数据库镜像)加载到内存中,以恢复内存数据库;当数据库操作日志中未包括该最新的内存数据库镜像中未包括的数据时,将该最新的内存数据库镜像加载到内存中,以恢复内存数据库。
本发明实施例中,当需要恢复内存数据库,且判断不存在内存数据库实时镜像、内存数据库镜像时,可以根据数据库操作日志进行内存数据库恢复,其具体实现与现有方案中内存数据库恢复的方案相类似,在此不再赘述。
如图3所示,为本发明实施例提供的另一种内存数据库恢复方法的流程示意图,可以包括以下步骤:
步骤301、以预设周期生成内存数据库镜像、内存数据库实时镜像,以及内存数据库差异镜像。
本发明实施例中,可以通过配置,使设备在运行过程中,以预设周期生成内存数据库镜像、内存数据库实时镜像,以及内存数据库差异镜像。该内存数据库差异镜像是指内存数据库在不同时刻的差异部分,例如,内存数据库在时刻1与时刻2的差异部分,该内存数据库差异镜像可以根据数据库操作日志在时刻1至时刻2这一时间段内的记录生成。其中,设备生成内存数据库差异镜像时,可以对应记录该内存数据库差异镜像的生成时间
举例来说,以设备为数据服务器,应用本发明实施例提供的技术方案后,该数据服务器可以周期性地(如每5分钟、10分钟等)生成内存数据库差异镜像。例如,假设以0点为起始时刻,在该起始时刻内存数据库中存在一份成绩表,其中记录有学生A、B和C的成绩,如A:90分;B:95分;C:100分。假设在0:05时,发生了对该成绩表的修改操作,如将A的成绩修改为95分,删除C的成绩,则根据0:00至0:05这一时间段内内存数据库的差异可以生成一份内存数据库差异镜像,该内存数据库差异镜像中记录有该时间段内内存数据库中数据发生的变化,即“A的成绩由90分变为了95分;C的成绩被删除”。
本发明实施例中,设备可以以第一预设周期生成内存数据库镜像,以第二预设周期生成内存数据库实时镜像、以第三预设周期生成内存数据库差异镜像,且第一预设周期大于第二预设周期,第二预设周期大于第三预设周期。
例如,设备可以每隔24小时生成一份内存数据库镜像,每隔半个小时生成一份内存数据库实时镜像,每隔10分钟生成一份内存数据库差异镜像。
步骤302、接收内存数据库恢复指令。
本发明实施例中,内存数据库恢复指令可以包括运行指定程序的指令,即当接收到运行指定程序的指令时,确定需要进行内存数据库恢复指令。
作为一种可选的实施方式,上述指定程序可以配置为开机自启动,即当设备开机(包括宕机后重新启动、用户主动选择重新启动设备、用户关机后重新开机等)时,自动运行上述指定程序,从而触发内存数据库恢复。
作为另一种可选的实施方式,上述指定程序也可以在接收到用户输入的启动该指定程序的操作指令后运行,从而触发内存数据库恢复。
举例来说,用户可以通过点击上述指定程序在设备显示界面中的快捷方式图标,向设备输入启动该指定程序的指令,从而触发内存数据库恢复。
步骤303、判断是否存在内存数据库实时镜像。若判断为是,转至步骤304;否则,转至步骤309。
步骤304、判断数据库操作日志中是否包括该内存数据库实时镜像中未包括的数据。若判断为是,转至步骤305;否则,转至步骤308。
步骤305、判断是否存在数据库操作日志中包括的该内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。若判断为是,转至步骤306;否则,转至步骤307。
步骤306、将该内存数据库差异镜像与内存数据库实时镜像合并为新的内存数据库实时镜像,并转至步骤304。
步骤307、将数据库操作日志中包括的内存数据库实时镜像中未包括的数据加载的该内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库。
步骤308、将该内存数据库实时镜像加载到内存中,以恢复内存数据库。
本发明实施例中,当接收到内存数据库恢复指令时,并不会直接根据数据库操作日志进行内存数据库恢复,而是会判断是否存在内存数据库实时镜像,并当存在内存数据库实时镜像时,可以进一步判断数据库操作日志中是否包括该内存数据库实时镜像中未包括的数据。
具体的,可以根据数据库实时镜像的生成时间以及数据库操作日志中各记录的时间(当设备检测到造成内存数据库中数据改变的操作时,在数据库操作日志中生成相应的日志记录,并记录该日志记录的生成时间),判断数据库操作日志中是否存在时间晚于该数据库实时镜像生成时间的记录,若存在,则判断数据库操作日志中包括该内存数据库实时镜像中未包括的数据;若不存在,则判断数据库操作日志中未包括该内存数据库实时镜像中未包括的数据。
举例来说,当接收到内存数据恢复指令时,假设确定存在内存数据库实时镜像,且该内存数据库的生成时间为0:30,则可以进一步查询数据操作日志中各记录的时间,若数据操作日志中存在时间晚于0:30的记录,如数据操作日志中包括一条时间为0:40的日志记录(即在0:40发生了造成内存数据库数据改变的操作),则判断数据操作日志中包括该内存数据库实时镜像中未包括的数据;若数据操作日志中不存在时间晚于0:30的记录(即在0:30之后未发生造成内存数据库数据改变的操作),则判断数据操作日志中未包括该内存数据库实时镜像中未包括的数据。
本发明实施例中,当判断数据操作日志中包括内存数据库实时镜像中未包括的数据时,可以进一步判断是否存在数据库操作日志中包括的该内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。
具体的,可以根据自身记录的内存数据库实时镜像的生成时间,以及数据库操作日志中当前的最后一条记录的时间,查询生成时间在该内存数据库实时镜像的生成时间和数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像;若查询到,判断存在数据库操作日志中包括内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;若未查询到,判断不存在数据库操作日志中包括的该内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。
举例来说,假设存在内存数据库实时镜像,且该内存数据库实时镜像的生成时间为0:30,数据库操作日志中当前的最后一条记录的时间为0:45,则可以查询是否存在生成时间在0:30~0:45之间的内存数据库差异镜像。假设查询到生成时间为0:40的内存数据库差异镜像,则判断存在数据库操作日志中包括内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;若未查询到生成时间在0:30~0:45之间的内存数据库差异镜像,则判断不存在数据库操作日志中包括的该内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。
本发明实施例中,当判断存在数据库操作日志中包括内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像时,可以将该内存数据库差异镜像与内存数据库实时镜像合并为新的内存数据库实时镜像,并再次判断数据库操作日志中是否包括该新的内存数据库实时镜像中未包括的数据,重复执行步骤304~306中的相关操作;当判断不存在数据库操作日志中包括内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像时,可以将数据库操作日志中包括的该内存数据库实时镜像中未包括的数。加载到该内存数据库实时镜像中。
举例来说,假设内存数据库实时镜像中包括一份成绩表数据:A:90分;B:95分;C:100分。数据库操作日志包括的该内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像中记录了“A的成绩由90分变为了95分;C的成绩被删除”,则将该内存数据库实时镜像与该内存数据库差异镜像合并后得到的新的内存数据库实时镜像中的相关数据为:A:95分;B:95分。
需要注意的是,图3所示的流程中,当步骤306中得到新的内存数据库实时镜像之后,执行步骤304~308时,相应步骤中涉及的内存数据库实时镜像为合并了内存数据库差异镜像的内存数据库实时镜像。且将内存数据库实时镜像与内存数据库差异镜像合并为新的内存数据库实时镜像后,该新的内存数据库实时镜像的生成时间记录为合并的内存数据库差异镜像中生成时间最晚的内存数据库差异镜像的生成时间。
举例来说,假设合并前内存数据库实时镜像的生成时间为0:30,合并的内存数据库差异镜像的生成时间分别为0:40和0:50,则合并后得到的新的内存数据库实时镜像生成时间记录为0:50。
本发明实施例中,当判断数据库操作日志中未包括内存数据库实时镜像中未包括的数据时,或判断数据库操作日志中包括内存数据库实时镜像中未包括的数据,且将该数据库操作日志中包括的内存数据库实时镜像中未包括的数据加载到该内存数据库实时镜像中后,可以将该内存数据库实时镜像加载到内存中,以恢复内存数据库。
步骤309、查询最新的内存数据库镜像。
步骤310、复制该最新的内存数据库镜像,作为内存数据库实时镜像,并转至步骤304。
本发明实施例中,当接收到内存数据库恢复指令,且判断不存在内存数据库实时镜像时,可以判断是否存在内存数据库镜像,并当存在时,查询最新的内存数据库镜像(即生成时间最晚的内存数据库镜像),并复制该生成时间最晚的内存数据库镜像,作为内存数据库实时镜像,并判断数据库操作日志中是否包括该内存数据库实时镜像中未包括的数据,重复执行步骤304~306中的相关操作。
需要注意的是,图3所示的流程中,当步骤310中得到内存数据库实时镜像之后,执行步骤304~308时,相应步骤中涉及的内存数据库实时镜像为复制最新的内存数据库镜像得到的内存数据库实时镜像。且将最新的内存数据库镜像复制得到内存数据库实时镜像后,该内存数据库实时镜像的生成时间记录为该最新的内存数据库镜像的生成时间。
举例来说,假设查询到的最新的内存数据库镜像的生成时间为2014年6月7日12:00,则复制该内存数据库镜像得到的内存数据库实时镜像的生成时间记录为2014年6月7日12:00。
本发明实施例中,当需要恢复内存数据库,且判断不存在内存数据库实时镜像、内存数据库镜像时,可以根据数据库操作日志进行内存数据库恢复,其具体实现与现有方案中内存数据库恢复的方案相类似,在此不再赘述。
通过以上描述可以看出,在本发明实施例提供的技术方案中,当接收到内存数据库恢复指令时,判断是否存在内存数据库实时镜像,当存在内存数据库实时镜像时,进一步判断数据库操作日志中是否包括内存数据库实时镜像中未包括的数据,当包括时,将数据库操作日志中包括的该内存数据库实时镜像中未包括的数据加载到内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;当不包括时,将该内存数据库实时镜像加载到内存中,以恢复内存数据库,提高了内存数据库恢复的效率,降低了内存数据库恢复对系统性能的影响。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合一个具体的实例对本发明实施例提供的技术方案进行描述。
在该实施例中,数据服务器初始运行时间为2014年1月1日0:00;在运行过程中每天生成一份内存数据库镜像,每隔半小时生成一份内存数据库实时镜像,每隔10分钟生成一份内存数据库差异镜像,数据服务器生成内存数据库镜像、内存数据库实时镜像以及内存数据库差异镜像时,记录其生成时间;其中,当数据服务器生成新的内存数据库镜像和内存数据库实时镜像时,覆盖之前生成的内存数据库镜像和内存数据库实时镜像,即数据服务器中仅保存一份最新生成的内存数据库镜像和内存数据库实时镜像;内存数据库差异镜像的有效时间为30分钟,即0:10生成的内存数据库差异镜像的有效时间为0:10~0:40,数据服务器在0:40时将该数据差异镜像删除。
假设2014年1月15日6:45,数据服务器因故障发生宕机,维护人员重新启动数据服务器时,数据服务器确定需要进行内存数据库恢复(即该实施例中,恢复内存数据库对应的指定程序被设置为开机自启动),此时,数据服务器首先需要判断是否存在内存数据库实时镜像,发现存在生成时间为2014年1月15日6:30的内存数据库实时镜像;进一步地,数据服务器查询数据库操作日志,判断数据库操作日志中是否包括该内存数据库实时镜像未包括的数据。假设数据库操作日志中最后一条记录的时间为2014年1月15日6:43,则数据服务器判断数据库操作日志中包括该内存数据库实时镜像中未包括的数据(时间在2014年1月15日6:30之后的记录对应的数据);进一步地,数据服务器判断是否存在生成时间在2014年1月15日6:30之后的内存数据库差异镜像,发生存在生成时间为2014年1月15日6:40的内存数据库差异镜像,从而,数据服务器将内存数据库实时镜像与该内存数据库差异镜像合并生成新的内存数据库实时镜像,并将该新的内存数据库实时镜像的生成时间记录为2014年1月15日6:40;进一步地,数据服务器再次查询数据库操作日志,判断该数据库操作日志中是否包括时间在2014年1月15日6:40之后的记录,发现存在时间为2014年1月15日6:43的记录,从而,数据服务器将该记录对应的数据加载到该新的内存数据库实时镜像中,并将该新的内存数据库实时镜像加载到内存中,以恢复内存数据库。即在该实施例中,通过周期性地生成内存数据库镜像、内存数据库实时镜像、以及内存数据库差异镜像,当需要恢复内存数据库是,优先根据内存数据库镜像、内存数据库实时镜像、以及内存数据库差异镜像进行内存数据库恢复,避免了对数据库操作日志的频繁读取,提高了内存数据库恢复的效率,降低了内存数据库恢复对系统性能的影响。
基于上述方法实施例相同的技术构思,本发明实施例还提供了一种内存数据库恢复设备,可以应用于上述方法实施例中。
如图4所示,为本发明实施例提供的一种内存数据库恢复设备的结构示意图,可以包括:
接收模块401,用于接收内存数据库恢复指令;
第一判断模块402,用于判断是否存在内存数据库实时镜像;
第二判断模块403,用于当所述第一判断模块402的判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;
第一处理模块404,用于当所述第二判断模块403的判断结果为是时,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;
第二处理模块405,用于当所述第二判断模块403的判断结果为否时,将所述内存数据库实时镜像加载到内存中,以恢复内存数据库。
请一并参阅图5,图5是本发明实施例公开的另一种内存数据库恢复设备的结构示意图。其中,图5所示的内存数据库恢复设备是由图4所示的内存数据库恢复设备进行优化得到的,与图4所示的内存数据库恢复设备相比,图5所示的内存数据库恢复设备还可以包括:
第三判断模块406,用于当所述第二判断模块的判断结果为是时,判断是否存在所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。
相应地,所述第一处理模块404可以具体用于,当所述第三判断模块406的判断结果为否时,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中。
其中,所述第一处理模块404还可以用于,当所述第三判断模块406的判断结果为是时,将将所述内存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像;
所述第二判断模块403还可以用于,判断所述数据库操作日志中是否包括所述新的内存数据库实时镜像中未包括的数据;
所述第一处理模块404还可以用于,当所述第二判断模块403判断为包括时,将所述数据库操作日志中包括的所述新的内存数据库实时镜像中未包括的数据加载到所述新的内存数据库实时镜像中,并将该新的内存数据库实时镜像加载到内存中,以恢复内存数据库;
所述第二处理模块405还用于,当所述第二判断模块403判断为未包括时,将所述新的内存数据库实时镜像加载到内存中,以恢复内存数据库。
其中,所述第一处理模块404还可以用于,将所述内存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像之后,将所述新的内存数据库实时镜像的生成时间记录为所述内存数据库差异镜像中的生成时间最晚的内存数据库差异镜像的生成时间。
请一并参阅图6,图6是本发明实施例公开的另一种内存数据库恢复设备的结构示意图。其中,图6所示的内存数据库恢复设备是由图5所示的内存数据库恢复设备进行优化得到的,与图5所示的内存数据库恢复设备相比,图6所示的内存数据库恢复设备中,第三判断模块406还可以包括:
第一查询单元4061,用于根据自身记录的所述内存数据库实时镜像的生成时间,以及所述数据库操作日志中当前的最后一条记录的时间,查询生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像;
第一判断单元4062,用于当所述第一查询单元4061查询到生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像时,判断存在所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;当所述第一查询单元4062未查询到生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像时,判断不存在所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。
请一并参阅图7,图7是本发明实施例公开的另一种内存数据库恢复设备的结构示意图。其中,图7所示的内存数据库恢复设备是由图4所示的内存数据库恢复设备进行优化得到的,与图4所示的内存数据库恢复设备相比,图7所示的内存数据库恢复设备中,第二判断模块403还可以包括:
第二查询单元4031,用于根据自身记录的所述内存数据库实时镜像的生成时间,查询所述数据库操作日志;
第二判断单元4032,用于当所述第二查询单元4031查询到所述数据库操作日志中存在时间晚于所述生成时间的记录,判断所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据;当所述第二查询单元4032查询到所述数据库操作日志中不存在时间晚于所述生成时间的记录,判断所述数据库操作日志中未包括所述内存数据库实时镜像中未包括的数据。
请一并参阅图8,图8是本发明实施例公开的另一种内存数据库恢复设备的结构示意图。其中,图8所示的内存数据库恢复设备是由图4所示的内存数据库恢复设备进行优化得到的,与图4所示的内存数据库恢复设备相比,图8所示的内存数据库恢复设备可以包括:
查询模块407,用于当所述第一判断模块402的判断结果为不存在时,查询最新的内存数据库镜像;其中,所述最新的内存数据库镜像为生成时间与当前时间的时间间隔最小的内存数据库镜像;
第四判断模块408,用于判断数据库操作日志中是否包括该最新的内存数据库镜像中未包括的数据;
相应地,所述第一处理模块404还可以用于,当所述第四判断模块408的判断为是时,将所述数据库操作日志中包括的该最新的内存数据库镜像中未包括的数据加载到该最新的内存数据库镜像中,并将该最新的内存数据库镜像加载到内存中,以恢复内存数据库;
所述第二处理模块405还可以用于,当所述第四判断模块408判断为否时,将该最新的内存数据库镜像加载到内存中,以恢复内存数据库。
请一并参阅图9,图9是本发明实施例公开的另一种内存数据库恢复设备的结构示意图。其中,图9所示的内存数据库恢复设备是由图4所示的内存数据库恢复设备进行优化得到的,与图4所示的内存数据库恢复设备相比,图9所示的内存数据库恢复设备可以包括:
生成模块409,用于以第一预设周期生成内存数据库镜像;或/和,以第二预设周期生成内存数据库实时镜像;或/和,以第三预设周期生成内存数据库差异镜像;其中,所述第一预设周期大于所述第二预设周期,所述第二预设周期大于所述第三预设周期;
存储模块410,用于存储所述内存数据库镜像、内存数据库实时镜像、或/和,内存数据库差异镜像。
本发明实施例中,所述内存数据库恢复指令为运行指定程序的指令。
相应地,请一并参阅图10,图10是本发明实施例公开的另一种内存数据库恢复设备的结构示意图。其中,图10所示的内存数据库恢复设备是由图4所示的内存数据库恢复设备进行优化得到的,与图4所示的内存数据库恢复设备相比,图10所示的内存数据库恢复设备可以包括:
设置模块411,用于将所述指定程序设置为开机自启动程序。
图11是本发明实施例中提供的另一种内存数据库恢复设备的结构示意图。如图11所示,该内存数据库恢复设备包括:至少一个处理器1101,例如CPU,至少一个用户接口1103,存储器1104,至少一个通信总线1102。其中,通信总线1102用于实现这些组件之间的连接通信。其中,用户接口1103可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1103还可以包括标准的有线接口、无线接口。存储器1104可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1104可选的还可以是至少一个位于远离前述处理器1101的存储装置。其中存储器1104中存储一组程序代码,且处理器1101调用存储器1104中存储的程序代码,用于执行以下操作:
接收内存数据库恢复指令;
判断是否存在内存数据库实时镜像;
当判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;
若包括,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;
若未包括,将所述内存数据库实时镜像加载到内存中,以恢复内存数据库。
在可选实施例中,处理器1101调用存储器1104中存储的程序代码判断数据库操作日志中包括所述内存数据库实时镜像中未包括的数据之后,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中之前,还可以执行以下操作:
判断是否存在所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;
若不存在,执行所述将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中的步骤。
在可选实施例中,处理器1101调用存储器1104中存储的程序代码判断是否存在所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像之后,还可以执行以下操作:
若存在,将所述内存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像;
判断所述数据库操作日志中是否包括所述新的内存数据库实时镜像中未包括的数据;
若包括,将所述数据库操作日志中包括的所述新的内存数据库实时镜像中未包括的数据加载到所述新的内存数据库实时镜像中,并将该新的内存数据库实时镜像加载到内存中,以恢复内存数据库;
若未包括,将所述新的内存数据库实时镜像加载到内存中,以恢复内存数据库。
在可选实施例中,处理器1101调用存储器1104中存储的程序代码将所述内存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像之后,将所述内存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像之后,还可以执行以下操作:
将所述新的内存数据库实时镜像的生成时间记录为所述内存数据库差异镜像中的生成时间最晚的内存数据库差异镜像的生成时间。
在可选实施例中,处理器1101调用存储器1104中存储的程序代码判断是否存在所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像,可以具体包括:
根据自身记录的所述内存数据库实时镜像的生成时间,以及所述数据库操作日志中当前的最后一条记录的时间,查询生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像;
若查询到,判断存在所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;
若未查询到,判断不存在所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。
在可选实施例中,处理器1101调用存储器1104中存储的程序代码判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据,可以具体包括:
根据自身记录的所述内存数据库实时镜像的生成时间,查询所述数据库操作日志;
若所述数据库操作日志中存在时间晚于所述生成时间的记录,判断所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据;
若所述数据库操作日志中不存在时间晚于所述生成时间的记录,判断所述数据库操作日志中未包括所述内存数据库实时镜像中未包括的数据。
在可选实施例中,处理器1101调用存储器1104中存储的程序代码判断是否存在内存数据库实时镜像之后,还可以执行以下操作:
当判断结果为不存在时,查询最新的内存数据库镜像;其中,所述最新的内存数据库镜像为生成时间与当前时间的时间间隔最小的内存数据库镜像;
判断数据库操作日志中是否包括该最新的内存数据库镜像中未包括的数据;
若包括,将所述数据库操作日志中包括的该最新的内存数据库镜像中未包括的数据加载到该最新的内存数据库镜像中,并将该最新的内存数据库镜像加载到内存中,以恢复内存数据库;
若未包括,将该最新的内存数据库镜像加载到内存中,以恢复内存数据库。
在可选实施例中,处理器1101调用存储器1104中存储的程序代码接收内存数据库恢复指令之前,还可以执行以下操作:
以第一预设周期生成内存数据库镜像;或/和,
以第二预设周期生成内存数据库实时镜像;或/和,
以第三预设周期生成内存数据库差异镜像;
其中,所述第一预设周期大于所述第二预设周期,所述第二预设周期大于所述第三预设周期。
其中,所述内存数据库恢复指令为运行指定程序的指令。
在可选实施例中,处理器1101调用存储器1104中存储的程序代码接收内存数据库恢复指令之前,还可以执行以下操作:
将所述指定程序设置为开机自启动程序。
本发明实施例还提供了一种终端,可以包括如图4-11所示的任一恢复数据的设备。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (19)
1.一种内存数据库恢复方法,其特征在于,包括:
接收内存数据库恢复指令;
判断是否存在内存数据库实时镜像;
当判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;
若包括,判断是否存在所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;
若不存在,则将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;
若未包括,将所述内存数据库实时镜像加载到内存中,以恢复内存数据库;
其中,所述内存数据库差异镜像包括内存数据库在不同时刻的差异数据,所述内存数据库差异镜像用于更新所述内存数据库。
2.如权利要求1所述的方法,其特征在于,所述判断是否存在所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像之后,还包括:
若存在,将所述内存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像;
判断所述数据库操作日志中是否包括所述新的内存数据库实时镜像中未包括的数据;
若包括,将所述数据库操作日志中包括的所述新的内存数据库实时镜像中未包括的数据加载到所述新的内存数据库实时镜像中,并将该新的内存数据库实时镜像加载到内存中,以恢复内存数据库;
若未包括,将所述新的内存数据库实时镜像加载到内存中,以恢复内存数据库。
3.如权利要求2所述的方法,其特征在于,所述将所述内存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像之后,所述判断所述数据库操作日志中是否包括所述新的内存数据库实时镜像中未包括的数据之前,还包括:
将所述新的内存数据库实时镜像的生成时间记录为所述内存数据库差异镜像中的生成时间最晚的内存数据库差异镜像的生成时间。
4.如权利要求1所述的方法,其特征在于,所述判断是否存在所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像,包括:
根据自身记录的所述内存数据库实时镜像的生成时间,以及所述数据库操作日志中当前的最后一条记录的时间,查询生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像;
若查询到,判断存在所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;
若未查询到,判断不存在所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。
5.如权利要求1所述的方法,其特征在于,所述判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据,包括:
根据自身记录的所述内存数据库实时镜像的生成时间,查询所述数据库操作日志;
若所述数据库操作日志中存在时间晚于所述生成时间的记录,判断所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据;
若所述数据库操作日志中不存在时间晚于所述生成时间的记录,判断所述数据库操作日志中未包括所述内存数据库实时镜像中未包括的数据。
6.如权利要求1所述的方法,其特征在于,所述判断是否存在内存数据库实时镜像之后,还包括:
当判断结果为不存在时,查询最新的内存数据库镜像;其中,所述最新的内存数据库镜像为生成时间与当前时间的时间间隔最小的内存数据库镜像;
判断数据库操作日志中是否包括该最新的内存数据库镜像中未包括的数据;
若包括,将所述数据库操作日志中包括的该最新的内存数据库镜像中未包括的数据加载到该最新的内存数据库镜像中,并将该最新的内存数据库镜像加载到内存中,以恢复内存数据库;
若未包括,将该最新的内存数据库镜像加载到内存中,以恢复内存数据库。
7.如权利要求1所述的方法,其特征在于,所述接收内存数据库恢复指令之前,还包括:
以第一预设周期生成内存数据库镜像;或/和,
以第二预设周期生成内存数据库实时镜像;或/和,
以第三预设周期生成内存数据库差异镜像;
其中,所述第一预设周期大于所述第二预设周期,所述第二预设周期大于所述第三预设周期。
8.如权利要求1所述的方法,其特征在于,所述内存数据库恢复指令为运行指定程序的指令。
9.如权利要求8所述的方法,其特征在于,所述接收内存数据库恢复指令之前,还包括:
将所述指定程序设置为开机自启动程序。
10.一种内存数据库恢复设备,其特征在于,包括:
接收模块,用于接收内存数据库恢复指令;
第一判断模块,用于判断是否存在内存数据库实时镜像;
第二判断模块,用于当所述第一判断模块的判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;
第三判断模块,用于当所述第二判断模块的判断结果为是时,判断是否存在所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;
第一处理模块,用于当所述第三判断模块的判断结果为否时,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;
第二处理模块,用于当所述第二判断模块的判断结果为否时,将所述内存数据库实时镜像加载到内存中,以恢复内存数据库;
其中,所述内存数据库差异镜像包括内存数据库在不同时刻的差异数据,所述内存数据库差异镜像用于更新所述内存数据库。
11.如权利要求10所述的设备,其特征在于,
所述第一处理模块还用于,当所述第三判断模块的判断结果为是时,将将所述内存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像;
所述第二判断模块还用于,判断所述数据库操作日志中是否包括所述新的内存数据库实时镜像中未包括的数据;
所述第一处理模块还用于,当所述第二判断模块判断为包括时,将所述数据库操作日志中包括的所述新的内存数据库实时镜像中未包括的数据加载到所述新的内存数据库实时镜像中,并将该新的内存数据库实时镜像加载到内存中,以恢复内存数据库;
所述第二处理模块还用于,当所述第二判断模块判断为未包括时,将所述新的内存数据库实时镜像加载到内存中,以恢复内存数据库。
12.如权利要求11所述的设备,其特征在于,
所述第一处理模块还用于,将所述内存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像之后,将所述新的内存数据库实时镜像的生成时间记录为所述内存数据库差异镜像中的生成时间最晚的内存数据库差异镜像的生成时间。
13.如权利要求10所述的设备,其特征在于,所述第三判断模块包括:
第一查询单元,用于根据自身记录的所述内存数据库实时镜像的生成时间,以及所述数据库操作日志中当前的最后一条记录的时间,查询生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像;
第一判断单元,用于当所述第一查询单元查询到生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像时,判断存在所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;当所述第一查询单元未查询到生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像时,判断不存在所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。
14.如权利要求10所述的设备,其特征在于,所述第二判断模块包括:
第二查询单元,用于根据自身记录的所述内存数据库实时镜像的生成时间,查询所述数据库操作日志;
第二判断单元,用于当所述第二查询单元查询到所述数据库操作日志中存在时间晚于所述生成时间的记录,判断所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据;当所述第二查询单元查询到所述数据库操作日志中不存在时间晚于所述生成时间的记录,判断所述数据库操作日志中未包括所述内存数据库实时镜像中未包括的数据。
15.如权利要求10所述的设备,其特征在于,还包括:
查询模块,用于当所述第一判断模块的判断结果为不存在时,查询最新的内存数据库镜像;其中,所述最新的内存数据库镜像为生成时间与当前时间的时间间隔最小的内存数据库镜像;
第四判断模块,用于判断数据库操作日志中是否包括该最新的内存数据库镜像中未包括的数据;
所述第一处理模块还用于,当所述第四判断模块判断为是时,将所述数据库操作日志中包括的该最新的内存数据库镜像中未包括的数据加载到该最新的内存数据库镜像中,并将该最新的内存数据库镜像加载到内存中,以恢复内存数据库;
所述第二处理模块还用于,当所述第四判断模块判断为否时,将该最新的内存数据库镜像加载到内存中,以恢复内存数据库。
16.如权利要求10所述的设备,其特征在于,还包括:
生成模块,用于以第一预设周期生成内存数据库镜像;或/和,以第二预设周期生成内存数据库实时镜像;或/和,以第三预设周期生成内存数据库差异镜像;其中,所述第一预设周期大于所述第二预设周期,所述第二预设周期大于所述第三预设周期;
存储模块,用于存储所述内存数据库镜像、内存数据库实时镜像、或/和,内存数据库差异镜像。
17.如权利要求10所述的设备,其特征在于,所述内存数据库恢复指令为运行指定程序的指令。
18.如权利要求17所述的设备,其特征在于,还包括:
设置模块,用于将所述指定程序设置为开机自启动程序。
19.一种终端,其特征在于,包括权利要求10-18任一项所述的内存数据库恢复设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410498148.2A CN104216802B (zh) | 2014-09-25 | 2014-09-25 | 一种内存数据库恢复方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410498148.2A CN104216802B (zh) | 2014-09-25 | 2014-09-25 | 一种内存数据库恢复方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104216802A CN104216802A (zh) | 2014-12-17 |
CN104216802B true CN104216802B (zh) | 2017-05-10 |
Family
ID=52098321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410498148.2A Active CN104216802B (zh) | 2014-09-25 | 2014-09-25 | 一种内存数据库恢复方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104216802B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843702B (zh) | 2015-01-14 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种用于数据备份的方法以及装置 |
CN107092598A (zh) * | 2016-02-17 | 2017-08-25 | 阿里巴巴集团控股有限公司 | 数据存储位置信息的管理方法和装置 |
CN107844491B (zh) * | 2016-09-19 | 2021-11-16 | 阿里巴巴集团控股有限公司 | 一种在分布式系统中实现强一致性读操作的方法与设备 |
CN107357688B (zh) * | 2017-07-28 | 2020-06-12 | 广东神马搜索科技有限公司 | 分布式系统及其故障恢复方法和装置 |
CN108121789B (zh) * | 2017-12-19 | 2020-06-30 | 苏州精濑光电有限公司 | 一种日志管理方法及系统 |
CN109189613A (zh) * | 2018-09-20 | 2019-01-11 | 快云信息科技有限公司 | 一种数据库数据恢复方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0926906A (ja) * | 1995-07-10 | 1997-01-28 | Hitachi Ltd | メモリデータベースの回復方法 |
CN101034364A (zh) * | 2007-04-02 | 2007-09-12 | 华为技术有限公司 | 一种实现内存数据备份的方法、装置和系统 |
CN101118509A (zh) * | 2007-09-12 | 2008-02-06 | 华为技术有限公司 | 内存数据库远程容灾的方法、装置和系统 |
CN102609337A (zh) * | 2012-01-19 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种内存数据库快速数据恢复方法 |
CN103197988A (zh) * | 2012-01-05 | 2013-07-10 | 中国移动通信集团湖南有限公司 | 一种数据备份、恢复的方法、设备和数据库系统 |
-
2014
- 2014-09-25 CN CN201410498148.2A patent/CN104216802B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0926906A (ja) * | 1995-07-10 | 1997-01-28 | Hitachi Ltd | メモリデータベースの回復方法 |
CN101034364A (zh) * | 2007-04-02 | 2007-09-12 | 华为技术有限公司 | 一种实现内存数据备份的方法、装置和系统 |
CN101118509A (zh) * | 2007-09-12 | 2008-02-06 | 华为技术有限公司 | 内存数据库远程容灾的方法、装置和系统 |
CN103197988A (zh) * | 2012-01-05 | 2013-07-10 | 中国移动通信集团湖南有限公司 | 一种数据备份、恢复的方法、设备和数据库系统 |
CN102609337A (zh) * | 2012-01-19 | 2012-07-25 | 北京神州数码思特奇信息技术股份有限公司 | 一种内存数据库快速数据恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104216802A (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104216802B (zh) | 一种内存数据库恢复方法和设备 | |
CN109558215B (zh) | 虚拟机的备份方法、恢复方法、装置及备份服务器集群 | |
CN106062742B (zh) | 用于改进快照性能的系统和方法 | |
US9654556B2 (en) | Managing applications on an electronic device | |
US8965929B2 (en) | Manipulating electronic backups | |
CN109117425A (zh) | 管理被存储为组件和打包文件的数字资产 | |
TW201602930A (zh) | 管理具有時間線的日曆循環事件 | |
CN107710215A (zh) | 在测试设施中的移动计算装置安全的方法和设备 | |
CN106648024A (zh) | 计算对象的上下文历史 | |
CN103186387B (zh) | 电子装置与其操作系统更新方法 | |
CN110209735A (zh) | 数据库备份方法、数据库备份装置、计算设备和存储介质 | |
US9910733B2 (en) | Transaction completion in a synchronous replication environment | |
CN105955741A (zh) | 应用处理方法及装置 | |
CN102567047A (zh) | 快速计算机启动 | |
CN105912424A (zh) | 一种基于云架构的终端程序快速备份及恢复方法 | |
CN102667720A (zh) | 没有排序依赖的一致性 | |
CN100456255C (zh) | 一种取快照数据的装置及方法 | |
US20130198137A1 (en) | Data backup and restoral apparatus, system, and methods | |
CN106547486A (zh) | 一种数据迁移方法及装置 | |
CN106504026A (zh) | 一种数据获取方法和装置 | |
CN109144776A (zh) | 虚拟机镜像文件处理方法及装置 | |
CN102932476B (zh) | 网络存储同步系统 | |
US10127270B1 (en) | Transaction processing using a key-value store | |
CN109408282A (zh) | 应用程序备份恢复方法、设备及计算机可读存储介质 | |
CN106775445B (zh) | 数据迁移方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20181207 Address after: Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Patentee after: Zhuhai Leopard Technology Co.,Ltd. Address before: 100085 East District, Second Floor, 33 Xiaoying West Road, Haidian District, Beijing Patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |
|
TR01 | Transfer of patent right |