《一种内存数据库恢复方法和设备.pdf》由会员分享,可在线阅读,更多相关《一种内存数据库恢复方法和设备.pdf(30页完整版)》请在专利查询网上搜索。
1、10申请公布号CN104216802A43申请公布日20141217CN104216802A21申请号201410498148222申请日20140925G06F11/1420060171申请人北京金山安全软件有限公司地址100085北京市海淀区小营西路33号二层东区72发明人周奕刘桂峰姚辉74专利代理机构广州三环专利代理有限公司44202代理人郝传鑫熊永强54发明名称一种内存数据库恢复方法和设备57摘要本发明实施例公开了一种内存数据库恢复方法,包括接收内存数据库恢复指令;判断是否存在内存数据库实时镜像;当判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;若包。
2、括,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;若未包括,将所述内存数据库实时镜像加载到内存中,以恢复内存数据库。本发明实施例还公开了一种内存数据库恢复设备和终端。采用本发明实施例,可以提高内存数据库恢复的效率,降低内存数据库恢复对系统性能的影响。51INTCL权利要求书4页说明书17页附图8页19中华人民共和国国家知识产权局12发明专利申请权利要求书4页说明书17页附图8页10申请公布号CN104216802ACN104216802A1/4页21一种内存数据库恢复方法,其特征在于,包括。
3、接收内存数据库恢复指令;判断是否存在内存数据库实时镜像;当判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;若包括,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;若未包括,将所述内存数据库实时镜像加载到内存中,以恢复内存数据库。2如权利要求1所述的方法,其特征在于,所述判断数据库操作日志中包括所述内存数据库实时镜像中未包括的数据之后,所述将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中之前,还包括判断是否存在所。
4、述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;若不存在,执行所述将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中的步骤。3如权利要求2所述的方法,其特征在于,所述判断是否存在所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像之后,还包括若存在,将所述内存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像;判断所述数据库操作日志中是否包括所述新的内存数据库实时镜像中未包括的数据;若包括,将所述数据库操作日志中包括的所述新的内存数据库实时镜像中未包括的数据加载到所述。
5、新的内存数据库实时镜像中,并将该新的内存数据库实时镜像加载到内存中,以恢复内存数据库;若未包括,将所述新的内存数据库实时镜像加载到内存中,以恢复内存数据库。4如权利要求3所述的方法,其特征在于,所述将所述内存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像之后,所述判断所述数据库操作日志中是否包括所述新的内存数据库实时镜像中未包括的数据之前,还包括将所述新的内存数据库实时镜像的生成时间记录为所述内存数据库差异镜像中的生成时间最晚的内存数据库差异镜像的生成时间。5如权利要求2所述的方法,其特征在于,所述判断是否存在所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应。
6、的内存数据库差异镜像,包括根据自身记录的所述内存数据库实时镜像的生成时间,以及所述数据库操作日志中当前的最后一条记录的时间,查询生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像;若查询到,判断存在所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;若未查询到,判断不存在所述数据库操作日志中包括的所述内存数据库实时镜像中未权利要求书CN104216802A2/4页3包括的数据对应的内存数据库差异镜像。6如权利要求1所述的方法,其特征在于,所述判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括。
7、的数据,包括根据自身记录的所述内存数据库实时镜像的生成时间,查询所述数据库操作日志;若所述数据库操作日志中存在时间晚于所述生成时间的记录,判断所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据;若所述数据库操作日志中不存在时间晚于所述生成时间的记录,判断所述数据库操作日志中未包括所述内存数据库实时镜像中未包括的数据。7如权利要求1所述的方法,其特征在于,所述判断是否存在内存数据库实时镜像之后,还包括当判断结果为不存在时,查询最新的内存数据库镜像;其中,所述最新的内存数据库镜像为生成时间与当前时间的时间间隔最小的内存数据库镜像;判断数据库操作日志中是否包括该最新的内存数据库镜像中未包括。
8、的数据;若包括,将所述数据库操作日志中包括的该最新的内存数据库镜像中未包括的数据加载到该最新的内存数据库镜像中,并将该最新的内存数据库镜像加载到内存中,以恢复内存数据库;若未包括,将该最新的内存数据库镜像加载到内存中,以恢复内存数据库。8如权利要求1所述的方法,其特征在于,所述接收内存数据库恢复指令之前,还包括以第一预设周期生成内存数据库镜像;或/和,以第二预设周期生成内存数据库实时镜像;或/和,以第三预设周期生成内存数据库差异镜像;其中,所述第一预设周期大于所述第二预设周期,所述第二预设周期大于所述第三预设周期。9如权利要求1所述的方法,其特征在于,所述内存数据库恢复指令为运行指定程序的指令。
9、。10如权利要求9所述的方法,其特征在于,所述接收内存数据库恢复指令之前,还包括将所述指令程序设置为开机自启动程序。11一种内存数据库恢复设备,其特征在于,包括接收模块,用于接收内存数据库恢复指令;第一判断模块,用于判断是否存在内存数据库实时镜像;第二判断模块,用于当所述第一判断模块的判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;第一处理模块,用于当所述第二判断模块的判断结果为是时,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;第二处理模块,用于当所述。
10、第二判断模块的判断结果为否时,将所述内存数据库实时镜像加载到内存中,以恢复内存数据库。权利要求书CN104216802A3/4页412如权利要求11所述的设备,其特征在于,还包括第三判断模块,用于当所述第一判断模块的判断结果为是时,判断是否存在所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;所述第一处理模块具体用于,当所述第三判断模块的判断结果为否时,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中。13如权利要求12所述的设备,其特征在于,所述第一处理模块还用于,当所述第三判断模块的判断结果为是时,将将所述内。
11、存数据库差异镜像与所述内存数据库实时镜像合并为新的内存数据库实时镜像;所述第二判断模块还用于,判断所述数据库操作日志中是否包括所述新的内存数据库实时镜像中未包括的数据;所述第一处理模块还用于,当所述第二判断模块判断为包括时,将所述数据库操作日志中包括的所述新的内存数据库实时镜像中未包括的数据加载到所述新的内存数据库实时镜像中,并将该新的内存数据库实时镜像加载到内存中,以恢复内存数据库;所述第二处理模块还用于,当所述第二判断模块判断为未包括时,将所述新的内存数据库实时镜像加载到内存中,以恢复内存数据库。14如权利要求13所述的设备,其特征在于,所述第一处理模块还用于,将所述内存数据库差异镜像与所。
12、述内存数据库实时镜像合并为新的内存数据库实时镜像之后,将所述新的内存数据库实时镜像的生成时间记录为所述内存数据库差异镜像中的生成时间最晚的内存数据库差异镜像的生成时间。15如权利要求12所述的设备,其特征在于,所述第三判断模块包括第一查询单元,用于根据自身记录的所述内存数据库实时镜像的生成时间,以及所述数据库操作日志中当前的最后一条记录的时间,查询生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像;第一判断单元,用于当所述第一查询单元查询到生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存。
13、数据库差异镜像时,判断存在所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像;当所述第一查询单元未查询到生成时间在该内存数据库实时镜像的生成时间和所述数据库操作日志中当前的最后一条记录的时间之间的内存数据库差异镜像时,判断不存在所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。16如权利要求11所述的设备,其特征在于,所述第二判断模块包括第二查询单元,用于根据自身记录的所述内存数据库实时镜像的生成时间,查询所述数据库操作日志;第二判断单元,用于当所述第二查询单元查询到所述数据库操作日志中存在时间晚于所述生成时间的记录,判。
14、断所述数据库操作日志中包括所述内存数据库实时镜像中未包括的数据;当所述第二查询单元查询到所述数据库操作日志中不存在时间晚于所述生成时间权利要求书CN104216802A4/4页5的记录,判断所述数据库操作日志中未包括所述内存数据库实时镜像中未包括的数据。17如权利要求11所述的设备,其特征在于,还包括查询模块,用于当所述第一判断模块的判断结果为不存在时,查询最新的内存数据库镜像;其中,所述最新的内存数据库镜像为生成时间与当前时间的时间间隔最小的内存数据库镜像;第四判断模块,用于判断数据库操作日志中是否包括该最新的内存数据库镜像中未包括的数据;所述第一处理模块还用于,当所述第四判断模块判断为是时。
15、,将所述数据库操作日志中包括的该最新的内存数据库镜像中未包括的数据加载到该最新的内存数据库镜像中,并将该最新的内存数据库镜像加载到内存中,以恢复内存数据库;所述第二处理模块还用于,当所述第四判断模块判断为否时,将该最新的内存数据库镜像加载到内存中,以恢复内存数据库。18如权利要求11所述的设备,其特征在于,还包括生成模块,用于以第一预设周期生成内存数据库镜像;或/和,以第二预设周期生成内存数据库实时镜像;或/和,以第三预设周期生成内存数据库差异镜像;其中,所述第一预设周期大于所述第二预设周期,所述第二预设周期大于所述第三预设周期;存储模块,用于存储所述内存数据库镜像、内存数据库实时镜像、或/和。
16、,内存数据库差异镜像。19如权利要求11所述的设备,其特征在于,所述内存数据库恢复指令为运行指定程序的指令。20如权利要求19所述的设备,其特征在于,还包括设置模块,用于将所述指定程序设置为开机自启动程序。21一种终端,其特征在于,包括权利要求1119任一项所述的内存数据库恢复设备。权利要求书CN104216802A1/17页6一种内存数据库恢复方法和设备技术领域0001本发明涉及互联网技术领域,尤其涉及一种内存数据库恢复方法和设备。背景技术0002随着互联网的不断发展,对数据访问的速度要求也越来越高,内存数据库因为其快速的数据访问能力,使其使用也变得越来越频繁。0003内存数据库是指将数据放。
17、在内存中直接操作的数据库。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大提高应用的性能。但是由于所有操作都是基于内存的操作,内存数据库极其容易因系统问题导致数据被破坏或者丢失,特别是由于宕机导致的数据丢失。0004现有技术中,通常根据数据库操作日志,即造成内存数据库数据改变的操作如增、删、改等操作以及结果的日志记录,进行内存数据库恢复,即完全根据数据库操作日志中的记录恢复内存数据库,但是该内存数据库恢复方案中,内存数据库恢复效率较低,且当日志数据量比较大时,会造成较大的系统负荷,影响系统性能。发明内容0005本发明实施例所要解决的技术问题在于,提供一。
18、种内存数据库恢复方法和设备。可以提高内存数据库恢复的效率,降低内存数据库恢复对系统性能的影响。0006为了解决上述技术问题,本发明实施例提供了一种内存数据库恢复方法,包括0007接收内存数据库恢复指令;0008判断是否存在内存数据库实时镜像;0009当判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;0010若包括,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;0011若未包括,将所述内存数据库实时镜像加载到内存中,以恢复内存数据库。0012相应地,本发明。
19、实施例还提供了一种内存数据库恢复设备,包括0013接收模块,用于接收内存数据库恢复指令;0014第一判断模块,用于判断是否存在内存数据库实时镜像;0015第二判断模块,用于当所述第一判断模块的判断结果为存在时,判断数据库操作日志中是否包括所述内存数据库实时镜像中未包括的数据;0016第一处理模块,用于当所述第二判断模块的判断结果为是时,将所述数据库操作日志中包括的所述内存数据库实时镜像中未包括的数据加载到所述内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;0017第二处理模块,用于当所述第二判断模块的判断结果为否时,将所述内存数据库说明书CN104216802A2。
20、/17页7实时镜像加载到内存中,以恢复内存数据库。0018相应地,本发明实施例还提供了一种终端,包括如上所述的内存数据库恢复设备。0019实施本发明实施例,具有如下有益效果0020当接收到内存数据库恢复指令时,判断是否存在内存数据库实时镜像,当存在内存数据库实时镜像时,进一步判断数据库操作日志中是否包括内存数据库实时镜像中未包括的数据,当包括时,将数据库操作日志中包括的该内存数据库实时镜像中未包括的数据加载到内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库;当不包括时,将该内存数据库实时镜像加载到内存中,以恢复内存数据库,提高了内存数据库恢复的效率,降低了内存数据库。
21、恢复对系统性能的影响。附图说明0021为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0022图1是本发明实施例提供的一种内存数据库恢复方法的流程示意图;0023图2是本发明实施例提供的另一种内存数据库恢复方法的流程示意图;0024图3是本发明实施例提供的另一种内存数据库恢复方法的流程示意图;0025图4是本发明实施例提供的一种内存数据库恢复设备的结构示意图;0026图5是本发明实施例提供。
22、的另一种内存数据库恢复设备的结构示意图;0027图6是本发明实施例提供的另一种内存数据库恢复设备的结构示意图;0028图7是本发明实施例提供的另一种内存数据库恢复设备的结构示意图;0029图8是本发明实施例提供的另一种内存数据库恢复设备的结构示意图;0030图9是本发明实施例提供的另一种内存数据库恢复设备的结构示意图;0031图10是本发明实施例提供的另一种内存数据库恢复设备的结构示意图;0032图11是本发明实施例提供的另一种内存数据库恢复设备的结构示意图。具体实施方式0033下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部。
23、分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0034如图1所示,为本发明实施例提供的一种内存数据库恢复方法的流程示意图,可以包括以下步骤0035步骤101、接收内存数据库恢复指令。0036本发明实施例中,内存数据库恢复指令可以包括运行指定程序的指令,即当接收到运行指定程序的指令时,确定需要进行内存数据库恢复指令。0037作为一种可选的实施方式,上述指定程序可以配置为开机自启动,即当设备开机包括宕机后重新启动、用户主动选择重新启动设备、用户关机后重新开机等时,自动运说明书CN104216802A3。
24、/17页8行上述指定程序,从而触发内存数据库恢复。0038作为另一种可选的实施方式,上述指定程序也可以在接收到用户输入的启动该指定程序的操作指令后运行,从而触发内存数据库恢复。0039举例来说,用户可以通过点击上述指定程序在设备显示界面中的快捷方式图标,向设备输入启动该指定程序的指令,从而触发内存数据库恢复。0040其中,设备下同可以为任意应用内存数据库的设备,如其通常为服务器数据访问量较大,但也可以是其他用户终端如PC机、手机、平板电脑等,本发明实施例不做限定。0041步骤102、判断是否存在内存数据库实时镜像。并当判断结果为存在时,转至步骤103。0042步骤103、判断数据操作日志中是否。
25、包括内存数据库实时镜像中未包括的数据。若判断为是,转至步骤104;否则,转至步骤105。0043步骤104、将该数据操作日志中包括的内存数据库实时镜像中未包括的数据加载到该内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库。0044步骤105、将该内存数据库实时镜像加载到内存中,以恢复内存数据库。0045本发明实施例中,设备运行过程中,可以定时生成内存数据库实时镜像,该内存数据库实时镜像是指内存数据库在磁盘中的备份,其数据格式与内存数据库相同。0046举例来说,以设备为数据服务器为例,应用本发明实施例提供的技术方案后,该数据服务器可以周期性地如每半个小时、20分钟等生。
26、成内存数据库实时镜像。例如,假设以0点为起始时刻,数据服务器可以每隔半个小时将内存数据库进行镜像,得到对应的内存数据库实时镜像。其中,数据服务器生成数据库实时镜像时,可以对应记录该数据库实时镜像的生成时间。0047作为一种可选的实施方式,在本发明实施例中,设备生成最新的内存数据库实时镜像时,可以覆盖之前的生成的内存数据库实时镜像,即设备中最多仅存在一份内存数据库实时镜像。0048作为另一种可选的实施方式,在本发明实施例中,设备可以定时清除过期的内存数据库实时镜像或不清除内存数据库实时镜像。0049举例来说,假设设备每隔半个小时生成一份内存数据库实时镜像,对于各内存数据库实时镜像,可以设置一个有。
27、效时间,如2小时、或12小时等,当内存数据库实时镜像过期时,设备可以清除该过期的内存数据库实时镜像。0050在该实施方式中,上述步骤103中,判断数据库操作日志中是否包括内存数据库实时镜像中未包括的数据时,可以为判断数据库操作日志中是否包括生成时间最新最晚的内存数据库实时镜像中未包括的数据。相应地,步骤104和步骤105中,内存数据库实时镜像也是指生成时间最新最晚的内存数据库实时镜像。0051本发明实施例中,当接收到内存数据库恢复指令时,并不会直接根据数据库操作日志进行内存数据库恢复,而是会判断是否存在内存数据库实时镜像,并当存在内存数据库实时镜像时,可以进一步判断数据库操作日志中是否包括该内。
28、存数据库实时镜像中未包括的数据。说明书CN104216802A4/17页90052具体的,可以根据数据库实时镜像的生成时间以及数据库操作日志中各记录的时间当设备检测到造成内存数据库中数据改变的操作时,在数据库操作日志中生成相应的日志记录,并记录该日志记录的生成时间,判断数据库操作日志中是否存在时间晚于该数据库实时镜像生成时间的记录,若存在,则判断数据库操作日志中包括该内存数据库实时镜像中未包括的数据;若不存在,则判断数据库操作日志中未包括该内存数据库实时镜像中未包括的数据。0053举例来说,当接收到内存数据恢复指令时,假设确定存在内存数据库实时镜像,且该内存数据库实时镜像的生成时间为030,则。
29、可以进一步查询数据操作日志中各记录的时间,若数据操作日志中存在时间晚于030的记录,如数据操作日志中包括一条时间为040的日志记录即在040发生了造成内存数据库数据改变的操作,则判断数据操作日志中包括该内存数据库实时镜像中未包括的数据;若数据操作日志中不存在时间晚于030的记录即在030之后未发生造成内存数据库数据改变的操作,则判断数据操作日志中未包括该内存数据库实时镜像中未包括的数据。0054本发明实施例中,当数据库操作日志中包括内存数据库实时镜像中未包括的数据时,可以将该数据库操作日志中包括的内存数据库实时镜像中未包括的数据增量数据加载到内存数据库实时镜像中,并将该内存数据库实时镜像加载了。
30、增量数据的内存数据库实时镜像加载到内存中,以恢复内存数据库;当数据库操作日志中未包括内存数据库实时镜像中未包括的数据时,将该内存数据库实时镜像加载到内存中,以恢复内存数据库。0055在图1所示的流程中,当接收到内存数据库恢复指令,且判断不存在内存数据库实时镜像时,可以根据数据库操作日志进行内存数据库恢复,也可以通过其它方式实现内存数据库恢复,本发明不做限定。0056如图2所示,为本发明实施例提供的另一种内存数据库恢复方法的流程示意图,可以包括0057步骤201、接收内存数据库恢复指令。0058本发明实施例中,内存数据库恢复指令可以包括运行指定程序的指令,即当接收到运行指定程序的指令时,确定需要。
31、进行内存数据库恢复指令。0059作为一种可选的实施方式,上述指定程序可以配置为开机自启动,即当设备开机包括宕机后重新启动、用户主动选择重新启动设备、用户关机后重新开机等时,自动运行上述指定程序,从而触发内存数据库恢复。0060作为另一种可选的实施方式,上述指定程序也可以在接收到用户输入的启动该指定程序的操作指令后运行,从而触发内存数据库恢复。0061举例来说,用户可以通过点击上述指定程序在设备显示界面中的快捷方式图标,向设备输入启动该指定程序的指令,从而触发内存数据库恢复。0062步骤202、判断是否存在内存数据库实时镜像。若判断为是,转至步骤203;否则,转至步骤206。0063步骤203、。
32、判断数据库操作日志中是否包括该内存数据库实时镜像中未包括的数据。若判断为是,转至步骤204;否则,转至步骤205。0064步骤204、将该数据操作日志中包括的内存数据库实时镜像中未包括的数据加载到该内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据说明书CN104216802A5/17页10库。0065步骤205、将该内存数据库实时镜像加载到内存中,以恢复内存数据库。0066本发明实施例中,设备运行过程中,可以定时生成内存数据库实时镜像,该内存数据库实时镜像是指内存数据库在磁盘中的备份,其数据格式与内存数据库相同。0067举例来说,以设备为数据服务器为例,应用本发明实施。
33、例提供的技术方案后,该数据服务器可以周期性地如每半个小时、20分钟等生成内存数据库实时镜像。例如,假设以0点为起始时刻,数据服务器可以每隔半个小时将内存数据库进行镜像,得到对应的内存数据库实时镜像。其中,数据服务器生成数据库实时镜像时,可以对应记录该内存数据库实时镜像的生成时间。0068作为一种可选的实施方式,在本发明实施例中,设备生成最新的内存数据库实时镜像时,可以覆盖之前的生成的内存数据库实时镜像,即设备中最多仅存在一份内存数据库实时镜像。0069作为另一种可选的实施方式,在本发明实施例中,设备可以定时清除过期的内存数据库实时镜像或不清除内存数据库实时镜像。0070举例来说,假设设备每隔半。
34、个小时生成一份内存数据库实时镜像,对于各内存数据库实时镜像,可以设置一个有效时间,如2小时、或12小时等,当内存数据库实时镜像过期时,设备可以清除该过期的内存数据库实时镜像。0071在该实施方式中,上述步骤203中,判断数据库操作日志中是否包括内存数据库实时镜像中未包括的数据时,可以为判断数据库操作日志中是否包括生成时间最新最晚的内存数据库实时镜像中未包括的数据。相应地,步骤204和步骤205中,内存数据库实时镜像也是指生成时间最新最晚的内存数据库实时镜像。0072本发明实施例中,当接收到内存数据库恢复指令时,并不会直接根据数据库操作日志进行内存数据库恢复,而是会判断是否存在内存数据库实时镜像。
35、,并当存在内存数据库实时镜像时,可以进一步判断数据库操作日志中是否包括该内存数据库实时镜像中未包括的数据。0073具体的,可以根据数据库实时镜像的生成时间以及数据库操作日志中各记录的时间当设备检测到造成内存数据库中数据改变的操作时,在数据库操作日志中生成相应的日志记录,并记录该日志记录的生成时间,判断数据库操作日志中是否存在时间晚于该数据库实时镜像生成时间的记录,若存在,则判断数据库操作日志中包括该内存数据库实时镜像中未包括的数据;若不存在,则判断数据库操作日志中未包括该内存数据库实时镜像中未包括的数据。0074举例来说,当接收到内存数据恢复指令时,假设确定存在内存数据库实时镜像,且该内存数据。
36、库的生成时间为030,则可以进一步查询数据操作日志中各记录的时间,若数据操作日志中存在时间晚于030的记录,如数据操作日志中包括一条时间为040的日志记录即在040发生了造成内存数据库数据改变的操作,则判断数据操作日志中包括该内存数据库实时镜像中未包括的数据;若数据操作日志中不存在时间晚于030的记录即在030之后未发生造成内存数据库数据改变的操作,则判断数据操作日志中未包括该内存数据库实时镜像中未包括的数据。0075本发明实施例中,当数据库操作日志中包括内存数据库实时镜像中未包括的数据说明书CN104216802A106/17页11时,可以将该数据库操作日志中包括的内存数据库实时镜像中未包括。
37、的数据增量数据加载到内存数据库实时镜像中,并将该内存数据库实时镜像加载了增量数据的内存数据实时镜像加载到内存中,以恢复内存数据库;当数据库操作日志中未包括内存数据库实时镜像中未包括的数据时,将该内存数据库实时镜像加载到内存中,以恢复内存数据库。0076步骤206、查询最新的内存数据库镜像。0077步骤207、判断数据库操作日志中是否包括该最新的内存数据库镜像中未包括的数据。若判断为是,转至步骤208;否则,转至步骤209。0078步骤208、将该内存数据库操作日志中包括的该最新的内存数据库镜像中未包括的数据加载到该最新的内存数据库镜像中,并将该最新的内存数据库镜像加载的内存中,以恢复内存数据库。
38、。0079步骤209、将该最新的内存数据库镜像加载到内存中,以恢复内存数据库。0080本发明实施例中,设备运行过程中,除了可以定时生成内存数据库实时镜像之外,还可以定时生成内存数据库镜像,该内存数据库镜像是指内存数据在磁盘中的备份,其数据格式与内存数据库相同,其与内存数据库实时镜像的区别在于,内存数据库镜像的备份间隔更长。0081举例来说,以设备为数据服务器为例,应用本发明实施例提供的技术方案后,该数据服务器可以以第一预设周期如12个小时、1天等生成内存数据库镜像,并以第二预设周期如半个小时、20分钟等生成内存数据库实时镜像。例如,假设以0点为起始时刻,数据服务器可以每隔半个小时将内存数据库进。
39、行镜像备份,得到对应的内存数据库实时镜像即数据服务器可以在当天的030、100、1200、第二天000、第二天030生成内存数据库实时镜像;同时,数据服务器还可以每隔12小时将内存数据库进行镜像备份,得到对应的内存数据库镜像即数据服务器可以在当天的1200、第二天000、第二天1200生成内存数据库镜像。其中,数据服务器生成内存数据库实时镜像内存数据库镜像时,可以对应记录该内存数据库实时镜像内存数据库镜像的生成时间,上述第一预设周期大于上述第二预设周期。0082作为一种可选的实施方式,在本发明实施例中,设备生成最新的内存数据库镜像时,可以覆盖之前的生成的内存数据库镜像,即设备中最多仅存在一份内。
40、存数据库镜像。0083作为另一种可选的实施方式,在本发明实施例中,设备可以定时清除过期的内存数据库镜像或不清除内存数据库镜像。0084举例来说,假设设备每隔12个小时生成一份内存数据库镜像,对于各内存数据库镜像,可以设置一个有效时间,如24小时、或48小时等,当内存数据库镜像过期时,设备可以清除该过期的内存数据库镜像。0085本发明实施例中,当接收到内存数据库恢复指令,且判断不存在内存数据库实时镜像时,可以判断是否存在内存数据库镜像,并当存在时,查询最新的内存数据库镜像即生成时间与当前时间的时间间隔最小的内存数据库镜像,可以进一步判断数据库操作日志中是否包括该最新的内存数据库镜像中未包括的数据。
41、。0086具体的,可以根据该最新的数据库镜像的生成时间以及数据库操作日志中各记录的时间,判断数据库操作日志中是否存在时间晚于该最新的数据库镜像生成时间的记录,若存在,则判断数据库操作日志中包括该最新的内存数据库镜像中未包括的数据;若不存说明书CN104216802A117/17页12在,则判断数据库操作日志中未包括该最新的内存数据库镜像中未包括的数据。0087举例来说,当接收到内存数据恢复指令,且判断不存在内存数据库实时镜像时,假设确定存在内存数据库镜像,且最新的内存数据库镜像的生成时间为1200,则可以进一步查询数据操作日志中各记录的时间,若数据操作日志中存在时间晚于1200的记录,如数据操。
42、作日志中包括一条时间为1240的日志记录即在1240发生了造成内存数据库数据改变的操作,则判断数据操作日志中包括该最新的内存数据库镜像中未包括的数据;若数据操作日志中不存在时间晚于1200的记录即在1200之后未发生造成内存数据库数据改变的操作,则判断数据操作日志中未包括该最新的内存数据库镜像中未包括的数据。0088本发明实施例中,当数据库操作日志中包括该最新的内存数据库镜像中未包括的数据时,可以将该数据库操作日志中包括的该最新的内存数据库镜像中未包括的数据增量数据加载到该最新的内存数据库镜像中,并将该最新的内存数据库镜像加载了增量数据的内存数据库镜像加载到内存中,以恢复内存数据库;当数据库操。
43、作日志中未包括该最新的内存数据库镜像中未包括的数据时,将该最新的内存数据库镜像加载到内存中,以恢复内存数据库。0089本发明实施例中,当需要恢复内存数据库,且判断不存在内存数据库实时镜像、内存数据库镜像时,可以根据数据库操作日志进行内存数据库恢复,其具体实现与现有方案中内存数据库恢复的方案相类似,在此不再赘述。0090如图3所示,为本发明实施例提供的另一种内存数据库恢复方法的流程示意图,可以包括以下步骤0091步骤301、以预设周期生成内存数据库镜像、内存数据库实时镜像,以及内存数据库差异镜像。0092本发明实施例中,可以通过配置,使设备在运行过程中,以预设周期生成内存数据库镜像、内存数据库实。
44、时镜像,以及内存数据库差异镜像。该内存数据库差异镜像是指内存数据库在不同时刻的差异部分,例如,内存数据库在时刻1与时刻2的差异部分,该内存数据库差异镜像可以根据数据库操作日志在时刻1至时刻2这一时间段内的记录生成。其中,设备生成内存数据库差异镜像时,可以对应记录该内存数据库差异镜像的生成时间0093举例来说,以设备为数据服务器,应用本发明实施例提供的技术方案后,该数据服务器可以周期性地如每5分钟、10分钟等生成内存数据库差异镜像。例如,假设以0点为起始时刻,在该起始时刻内存数据库中存在一份成绩表,其中记录有学生A、B和C的成绩,如A90分;B95分;C100分。假设在005时,发生了对该成绩表。
45、的修改操作,如将A的成绩修改为95分,删除C的成绩,则根据000至005这一时间段内内存数据库的差异可以生成一份内存数据库差异镜像,该内存数据库差异镜像中记录有该时间段内内存数据库中数据发生的变化,即“A的成绩由90分变为了95分;C的成绩被删除”。0094本发明实施例中,设备可以以第一预设周期生成内存数据库镜像,以第二预设周期生成内存数据库实时镜像、以第三预设周期生成内存数据库差异镜像,且第一预设周期大于第二预设周期,第二预设周期大于第三预设周期。0095例如,设备可以每隔24小时生成一份内存数据库镜像,每隔半个小时生成一份内存数据库实时镜像,每隔10分钟生成一份内存数据库差异镜像。0096。
46、步骤302、接收内存数据库恢复指令。说明书CN104216802A128/17页130097本发明实施例中,内存数据库恢复指令可以包括运行指定程序的指令,即当接收到运行指定程序的指令时,确定需要进行内存数据库恢复指令。0098作为一种可选的实施方式,上述指定程序可以配置为开机自启动,即当设备开机包括宕机后重新启动、用户主动选择重新启动设备、用户关机后重新开机等时,自动运行上述指定程序,从而触发内存数据库恢复。0099作为另一种可选的实施方式,上述指定程序也可以在接收到用户输入的启动该指定程序的操作指令后运行,从而触发内存数据库恢复。0100举例来说,用户可以通过点击上述指定程序在设备显示界面中。
47、的快捷方式图标,向设备输入启动该指定程序的指令,从而触发内存数据库恢复。0101步骤303、判断是否存在内存数据库实时镜像。若判断为是,转至步骤304;否则,转至步骤309。0102步骤304、判断数据库操作日志中是否包括该内存数据库实时镜像中未包括的数据。若判断为是,转至步骤305;否则,转至步骤308。0103步骤305、判断是否存在数据库操作日志中包括的该内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。若判断为是,转至步骤306;否则,转至步骤307。0104步骤306、将该内存数据库差异镜像与内存数据库实时镜像合并为新的内存数据库实时镜像,并转至步骤304。0105步骤307。
48、、将数据库操作日志中包括的内存数据库实时镜像中未包括的数据加载的该内存数据库实时镜像中,并将该内存数据库实时镜像加载到内存中,以恢复内存数据库。0106步骤308、将该内存数据库实时镜像加载到内存中,以恢复内存数据库。0107本发明实施例中,当接收到内存数据库恢复指令时,并不会直接根据数据库操作日志进行内存数据库恢复,而是会判断是否存在内存数据库实时镜像,并当存在内存数据库实时镜像时,可以进一步判断数据库操作日志中是否包括该内存数据库实时镜像中未包括的数据。0108具体的,可以根据数据库实时镜像的生成时间以及数据库操作日志中各记录的时间当设备检测到造成内存数据库中数据改变的操作时,在数据库操作。
49、日志中生成相应的日志记录,并记录该日志记录的生成时间,判断数据库操作日志中是否存在时间晚于该数据库实时镜像生成时间的记录,若存在,则判断数据库操作日志中包括该内存数据库实时镜像中未包括的数据;若不存在,则判断数据库操作日志中未包括该内存数据库实时镜像中未包括的数据。0109举例来说,当接收到内存数据恢复指令时,假设确定存在内存数据库实时镜像,且该内存数据库的生成时间为030,则可以进一步查询数据操作日志中各记录的时间,若数据操作日志中存在时间晚于030的记录,如数据操作日志中包括一条时间为040的日志记录即在040发生了造成内存数据库数据改变的操作,则判断数据操作日志中包括该内存数据库实时镜像中未包括的数据;若数据操作日志中不存在时间晚于030的记录即在030之后未发生造成内存数据库数据改变的操作,则判断数据操作日志中未包括该内存数据库实时镜像中未包括的数据。0110本发明实施例中,当判断数据操作日志中包括内存数据库实时镜像中未包括的数说明书CN104216802A139/17页14据时,可以进一步判断是否存在数据库操作日志中包括的该内存数据库实时镜像中未包括的数据对应的内存数据库差异镜像。0111具体的,可以根据自身记录的内存数据库实时镜像的生成时间,以及数据库操作日志中当前的最后一条记录的时间,查询生成时间在该内存数据库实时镜像的生成时间和数据库操作日志中当前的最后一条记录。