数据库异常的恢复方法、存储介质及设备技术

技术编号:38554451 阅读:13 留言:0更新日期:2023-08-22 20:59
本发明专利技术提供了一种数据库异常的恢复方法、存储介质及设备。数据库异常的恢复方法包括:获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号;根据第一序列号和第二序列号检测日志文件中的日志是否发生故障;若日志文件中的日志发生故障,输出故障信息;利用日志文件中的日志对数据库进行恢复。进行数据库恢复的过程中,会先对日志文件中的日志进行预检测,使得数据库能够在日志文件中的日志存在故障的情况下预先检测出故障,然后将故障信息进行输出,以便于数据库管理员快速获悉数据库的恢复情况。库的恢复情况。库的恢复情况。

【技术实现步骤摘要】
数据库异常的恢复方法、存储介质及设备


[0001]本专利技术涉及数据库
,特别是涉及一种数据库异常的恢复方法、存储介质及设备。

技术介绍

[0002]在数据库的使用过程中,伴随着对数据库进行的修改,会产生相应的数据库的日志。通常情况下,数据库是先写日志,再执行对数据库的修改。换句话说,数据库会先对日志进行持久化存储,然后后续定期将数据库修改刷新到磁盘中。在数据库发生崩溃时,重启的数据库为磁盘中记录的状态,对于尚未刷新到磁盘的数据库修改,以日志的形式存储。
[0003]而因为数据库日志反映了针对数据库所做的修改,所以,当数据库发生崩溃并重启后,可以根据数据库日志重放对数据库的修改,从而将数据库恢复至崩溃前时刻的状态。但是,在利用数据库日志对数据库进行恢复时,一旦遇到故障的数据库日志,数据库就会停止恢复。恢复停止后,需要管理员对数据库的恢复情况进行检查,处理效率有待提高。

技术实现思路

[0004]本专利技术的一个目的是要提供一种能够解决上述任一问题的数据库异常的恢复方法、存储介质及设备。
[0005]本专利技术一个进一步的目的是要提高数据库恢复的效率。
[0006]特别地,本专利技术提供了一种数据库异常的恢复方法,包括:
[0007]获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号;
[0008]根据第一序列号和第二序列号检测日志文件中的日志是否发生故障;
[0009]若日志文件中的日志发生故障,输出故障信息;
[0010]利用日志文件中的日志对数据库进行恢复。
[0011]可选地,根据第一序列号和第二序列号检测日志文件中的日志是否发生故障的步骤包括:
[0012]计算第一序列号和第二序列号之间的日志个数,记为理论个数;
[0013]检测日志文件中的日志个数与理论个数是否一致,若不一致,则发生故障。
[0014]可选地,根据第一序列号和第二序列号检测日志文件中的日志是否发生故障的步骤包括:
[0015]获取第一序列号和第二序列号之间的所有日志的校验码,记为理论校验码,校验码为每个日志在写入日志文件后按照预设生成方式生成并存储;
[0016]按照预设生成方式重新计算日志文件中的所有日志的校验码,记为实际校验码;
[0017]比较实际校验码和理论校验码是否一致,若不一致,则判定日志文件中的日志发生故障。
[0018]可选地,校验码为每个日志在写入日志文件后按照MD5算法生成并存储。
[0019]可选地,输出故障信息的步骤之前包括:
[0020]检测并获取日志文件中故障日志的日志类型,日志类型包括激活日志和当前日志,激活日志为在数据库异常前完整写入日志文件中的日志,当前日志为在数据库异常时正在写入日志文件中的日志;
[0021]若故障日志为当前日志,输出故障信息。
[0022]可选地,检测并获取日志文件中故障日志的日志类型的步骤之后包括:
[0023]若故障日志为激活日志,从归档日志中将故障的激活日志对应的备份拷贝至日志文件中,归档日志为述日志文件中的完整日志转储后形成的日志。
[0024]可选地,利用日志文件中的日志对数据库进行恢复的步骤包括:
[0025]根据日志文件中的日志重放对数据库的操作,直至遇到故障的当前日志。
[0026]可选地,根据第一序列号和第二序列号检测日志文件中的日志是否发生故障的步骤之后包括:
[0027]若日志文件中的日志未发生故障,利用日志文件中的日志对数据库进行恢复。
[0028]根据本专利技术的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现根据上述任一项的数据库异常的恢复方法。
[0029]根据本专利技术的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现根据上述任一项的数据库异常的恢复方法。
[0030]本专利技术的数据库异常的恢复方法通过获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号,再根据第一序列号和第二序列号检测日志文件中的日志是否发生故障。如果日志文件中的日志发生故障,输出故障信息。也就是说,进行数据库恢复的过程中,会先对日志文件中的日志进行预检测,从而确认日志文件中的日志是否发生故障,也就是是否完整。所以,使得数据库能够在日志文件中的日志存在故障的情况下预先检测出故障,然后将故障信息进行输出,从而能够为数据库管理员提供相应的故障信息,以便于数据库管理员快速获悉数据库的恢复情况,有助于提高处理效率。
[0031]进一步地,本专利技术的数据库异常的恢复方法通过将日志文件中的日志配置为激活日志和当前日志,并为激活日志配置归档日志,在检测到日志文件中的日志发生故障后获取故障日志的日志类型,在故障日志为当前日志的情况下,输出故障信息,使得数据库管理员能够获悉数据库不能完全恢复的信息,以及未恢复日志的区间,便于数据库管理员做出对策。在故障日志为激活日志的情况下,从归档日志中拷贝故障的激活日志的备份,从而自动修复日志文件,提高了数据库恢复的效率。
[0032]根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
附图说明
[0033]后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些
附图未必是按比例绘制的。附图中:
[0034]图1是根据本专利技术一个实施例的数据库异常的恢复方法的示意性流程图;
[0035]图2是根据本专利技术一个实施例的数据库异常的恢复方法中检测日志文件中的日志是否发生故障步骤的第一示意性流程图;
[0036]图3是根据本专利技术一个实施例的数据库异常的恢复方法中检测日志文件中的日志是否发生故障步骤的第二示意性流程图;
[0037]图4是根据本专利技术另一个实施例的数据库异常的恢复方法的示意性流程图;
[0038]图5是根据本专利技术又一个实施例的数据库异常的恢复方法的示意性流程图;
[0039]图6是根据本专利技术一个实施例的机器可读存储介质的示意图;
[0040]图7是根据本专利技术一个实施例的计算机设备的示意图。
具体实施方式
[0041]本领域技术人员应当理解的是,下文所描述的实施例仅仅是本专利技术的一部分实施例,而不是本专利技术的全部实施例,该一部分实施例旨在用于解释本专利技术的技术原理,并非用于限制本专利技术的保护范围。基于本专利技术提供的实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本专利技术的保护范围之内。
[0042]需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库异常的恢复方法,包括:获取数据库检查点的日志序列号和最后一次向日志文件中写日志的日志序列号,分别记为第一序列号和第二序列号;根据所述第一序列号和所述第二序列号检测所述日志文件中的日志是否发生故障;若所述日志文件中的日志发生故障,输出故障信息;利用所述日志文件中的日志对数据库进行恢复。2.根据权利要求1所述的数据库异常的恢复方法,其中,所述根据所述第一序列号和所述第二序列号检测所述日志文件中的日志是否发生故障的步骤包括:计算所述第一序列号和所述第二序列号之间的日志个数,记为理论个数;检测所述日志文件中的日志个数与所述理论个数是否一致,若不一致,则发生故障。3.根据权利要求1所述的数据库异常的恢复方法,其中,所述根据所述第一序列号和所述第二序列号检测所述日志文件中的日志是否发生故障的步骤包括:获取所述第一序列号和所述第二序列号之间的所有日志的校验码,记为理论校验码,所述校验码为每个日志在写入所述日志文件后按照预设生成方式生成并存储;按照所述预设生成方式重新计算所述日志文件中的所有日志的校验码,记为实际校验码;比较所述实际校验码和所述理论校验码是否一致,若不一致,则判定所述日志文件中的日志发生故障。4.根据权利要求3所述的数据库异常的恢复方法,其中,所述校验码为每个日志在写入所述日志文件后按照MD5算法生成并存储。5.根据权利要求1所述的数据库异常的恢复方法,其中,所述输出故障信息的步骤之前包括:检测并获取所述日志文件中故...

【专利技术属性】
技术研发人员:李伟沈志伟杨尚孙文奇冷建全
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

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

1