数据库数据的恢复方法技术

技术编号:39842254 阅读:11 留言:0更新日期:2023-12-29 16:29
本发明专利技术提供了一种数据库数据的恢复方法

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


[0001]本专利技术涉及数据库领域,特别是涉及一种数据库数据的恢复方法

存储介质与设备


技术介绍

[0002]在正常运行的主备数据库系统中,一般包含主数据库

备用数据库与数据库备份,当发生故障的时候,主数据库会将主切换到备数据库,在这个过程中,会出现某些场景下的数据丢失,在一些磁盘损毁的场景下,数据库的正常的数据文件也会出现损坏,这就需要数据库提供数据恢复技术

[0003]通常的数据恢复技术分为两类,依赖数据备份进行数据恢复和依赖日志文件进行数据恢复

即,对现有数据库的数据文件及日志文件整体进行归档,或者采取从日志文件恢复成
sql
执行语句,然后重新执行
sql
语句进行数据恢复

大多数数据库都提供归档与恢复功能,和基于日志解析成
sql
,然后重放
sql
进行数据恢复


技术实现思路

[0004]本专利技术的一个目的是提高数据块恢复速度

[0005]本专利技术的一个进一步的目的是直接找到日志文件中对应位置进行恢复

[0006]特别地,本专利技术提供了一种数据库数据的恢复方法,包括:确定待恢复的目标数据块对应的目标信息;根据目标信息在日志文件中获取对应的目标全页写日志,全页写日志用于记录数据块在某一检查点的基础数据信息;根据目标全页写日志对目标数据块进行恢复

[0007]可选地,根据目标信息在日志文件中获取对应的目标全页写日志的步骤包括:对日志文件进行解析并读取至缓存中,得到日志读缓存;判断日志读缓存是否为全页写日志;若是,则根据目标信息在日志读缓存中获取目标全页写日志

[0008]可选地,目标信息包括目标数据块的标识;根据目标信息在日志读缓存中获取目标全页写日志的步骤包括:根据目标数据块的标识确定目标全页写日志的索引号;根据索引号确定日志读缓存中是否存在目标全页写日志;若是,则获取目标全页写日志

[0009]可选地,目标信息包括目标数据块的大小;根据目标全页写日志对目标数据块进行恢复的步骤包括:根据目标信息计算恢复目标数据块所需的目标日志块在目标全页写日志中的偏移量,目标日志块用于记录目标数据块在某一检查点的基础数据信息;根据偏移量确定目标日志块在目标全页写日志中的起始点;
根据目标数据块的大小从起始点开始复制相同大小的日志块至内存中,作为目标日志块;对目标日志块进行校验处理;在目标日志块通过校验处理的情况下,根据目标日志块中的数据对目标数据块进行数据恢复;根据日志文件中全页写日志之后的记录对目标数据块进行更新

[0010]可选地,对目标日志块进行校验处理的步骤包括:判断目标日志块是否经过压缩处理;若是,则判断目标日志块是否存在内存空洞;在目标日志块不存在内存空洞的情况下,对目标日志块进行解压处理,判定目标日志块通过校验处理

[0011]可选地,判断目标日志块是否存在内存空洞的步骤之后还包括:在目标日志块存在内存空洞的情况下,对内存空洞进行零值填充;判定填充完毕后的目标日志块通过校验处理

[0012]可选地,确定待恢复的目标数据块对应的目标信息的步骤包括:通过预设检测工具对数据库进行实时检测;判断数据库中是否出现异常数据;若是,则确定异常数据对应的目标数据块;获取目标数据块的目标信息

[0013]可选地,确定待恢复的目标数据块对应的目标信息的步骤还包括:接收来自客户端指定的目标数据块及其对应的目标信息

[0014]根据本专利技术的又一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的数据库数据的恢复方法

[0015]根据本专利技术的再一个方面,还提供了一种计算机设备,包括存储器

处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库数据的恢复方法

[0016]本专利技术的方案中,确定待恢复的目标数据块对应的目标信息;根据目标信息在日志文件中获取对应的目标全页写日志,全页写日志用于记录数据块在某一检查点之后的基础数据信息;根据目标全页写日志对目标数据块进行恢复

通过此方法,能够在日志文件中直接找到目标数据块所对应的目标全页写日志,从而根据目标全页写日志中的记录恢复得到目标数据块在某一检查点的基础数据,随后继续根据后续的日志记录进行更新恢复

即直接跳转至目标数据块在某一检查点的记录开始进行数据恢复,无需从零开始进行数据恢复,进而提高数据块恢复的速度

[0017]根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的

优点和特征

附图说明
[0018]后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例

附图中相同的附图标记标示了相同或类似的部件或部分

本领域技术人员应该理解,这些
附图未必是按比例绘制的

附图中:图1是根据本专利技术一个实施例的数据库数据的恢复方法的流程示意图;图2是根据本专利技术另一个实施例的数据库数据的恢复方法的流程示意图;图3是根据本专利技术一个实施例的数据库数据的恢复方法的效果示意图;图4是根据本专利技术一个实施例的数据库数据的恢复方法中机器可读存储介质的示意图;以及图5是根据本专利技术一个实施例的数据库数据的恢复方法计算机设备的示意图

具体实施方式
[0019]本领域技术人员应当理解的是,下文所描述的实施例仅仅是本专利技术的一部分实施例,而不是本专利技术的全部实施例,该一部分实施例旨在用于解释本专利技术的技术原理,并非用于限制本专利技术的保护范围

基于本专利技术提供的实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本专利技术的保护范围之内

[0020]图1是根据本专利技术一个实施例的数据库数据的恢复方法的流程示意图

在一些可选的实施例中,在数据库需要进行数据恢复时,一种可选的方式是依靠日志进行离线恢复或者是依赖备份数据进行恢复,其恢复的过程一般是在日志中从零开始对待恢复的数据进行建表操作,随后将后续所有的
sql
语句重新执行,从而实现数据恢复

此类方法的问题是,在数据恢复过程中会通过对应的日志重放每一条
sql
语句,然后取出
sql
语句执行,速度会相当慢

[0021]为解决上述问题,本实施例的流程一般可以包括:步骤
S101...

【技术保护点】

【技术特征摘要】
1.
一种数据库数据的恢复方法,包括:确定待恢复的目标数据块对应的目标信息;根据所述目标信息在日志文件中获取对应的目标全页写日志,所述全页写日志用于记录数据块在某一检查点的基础数据信息;根据所述目标全页写日志对所述目标数据块进行恢复
。2.
根据权利要求1所述的数据库数据的恢复方法,其中,所述根据所述目标信息在日志文件中获取对应的目标全页写日志的步骤包括:对所述日志文件进行解析并读取至缓存中,得到日志读缓存;判断所述日志读缓存是否为全页写日志;若是,则根据所述目标信息在所述日志读缓存中获取所述目标全页写日志
。3.
根据权利要求2所述的数据库数据的恢复方法,其中,所述目标信息包括所述目标数据块的标识;所述根据所述目标信息在所述日志读缓存中获取所述目标全页写日志的步骤包括:根据所述目标数据块的标识确定所述目标全页写日志的索引号;根据所述索引号确定所述日志读缓存中是否存在所述目标全页写日志;若是,则获取所述目标全页写日志
。4.
根据权利要求1所述的数据库数据的恢复方法,其中,所述目标信息包括所述目标数据块的大小;所述根据所述目标全页写日志对所述目标数据块进行恢复的步骤包括:根据所述目标信息计算恢复所述目标数据块所需的目标日志块在所述目标全页写日志中的偏移量,所述目标日志块用于记录所述目标数据块在某一检查点的基础数据信息;根据所述偏移量确定所述目标日志块在所述目标全页写日志中的起始点;根据所述目标数据块的大小从所述起始点开始复制相同大小的日志块至内存中,作为所述目标日志块;对所述目标日志块进行校验处理;在所述目标日志块通过所述校验处理的情况下,根据所述目标日志块中的数据对所述目标数据块进行数据恢复;根据所述日志文件中所述全...

【专利技术属性】
技术研发人员:黄德敏李翔
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

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

1