一种数据库恢复方法和装置与流程

文档序号:25543616发布日期:2021-06-18 20:40阅读:来源:国知局

技术特征:

1.一种数据库恢复方法,由数据库服务器执行,所述数据库服务器中存储有恢复文件,所述恢复文件包括在预设时刻数据表中的每个记录行的数据的存储地址,所述方法包括:

在所述数据库服务器故障后,从所述恢复文件中获取在预设时刻所述数据表中每个记录行的数据的存储地址;

在所述数据库服务器的内存中生成第一映射表,所述第一映射表中包括与所述数据表的记录行一一对应的各行,将所述恢复文件中记录的所述数据表的每个记录行的数据的存储地址记录至所述第一映射表中每个记录行对应的行中。

2.根据权利要求1所述的方法,还包括,在生成所述第一映射表之后,获取在所述预设时刻之后所述数据表中的记录行的数据变化;基于所述数据表中的记录行的数据变化修改所述第一映射表中与所述记录行对应的行。

3.根据权利要求1所述的方法,其特征在于,在所述数据库服务器故障前,所述方法还包括:

每隔一段时间设置一个检查时刻,每到达一个检查时刻,从所述数据库服务器的内存中存储的所述数据表对应的第二映射表中获取在该检查时刻所述数据表的每个记录行的数据的存储地址,所述第二映射表在所述数据库服务器故障前用于记录所述数据表中的记录行的数据的存储地址,所述第二映射表中包括与所述数据表的记录行一一对应的各行;

生成全量检查点文件,将获取的在所述检查时刻所述数据表的每个记录行的数据的存储地址记录至全量检查点文件中;

在所述数据库服务器故障后,将对应的检查时刻离所述数据库故障的时间最近的全量检查点文件作为所述恢复文件。

4.根据权利要求1所述的方法,其特征在于,在所述数据库服务器故障前,所述方法还包括:

每隔一段时间设置一个检查时刻,每到达一个检查时刻,判断所述数据表的热度是否大于一预设值;

若所述数据表的热度大于等于所述预设值,则从所述数据库服务器的内存中存储的所述数据表对应的第二映射表中获取在该检查时刻所述数据表的每个记录行的数据的存储地址,所述第二映射表在所述数据库服务器故障前用于记录所述数据表中的记录行的数据的存储地址,所述第二映射表中包括与所述数据表的记录行一一对应的各行;生成全量检查点文件,将获取的在所述检查时刻所述数据表的每个记录行的数据的存储地址记录至全量检查点文件中;

若所述数据表的热度小于所述预设值,则从所述第二映射表中获取在上次检查时刻与本次检查时刻之间产生的所述数据表的记录行的新数据的存储地址,并从所述第二映射表中获取在上次检查时刻与本次检查时刻之间删除的数据表的记录行;生成增量检查点文件,将所述新数据对应的第二映射表中的行标识及所述新数据的存储地址记录至增量检查点文件,并将所述删除的记录行对应的第二映射表中的行标识及对其的预定标注记录至增量检查点文件;

在所述数据库服务器故障后,将检查时刻离所述数据库故障的时间最近的全量检查点文件、及检查时刻在该全量检查点文件之后的增量检查点文件作为所述恢复文件。

5.根据权利要求4所述的方法,所述数据库服务器中还存储有控制文件,所述方法还包括,每到达一个检查时刻,在该检查时刻之后,在所述控制文件中记录数据表中在该检查时刻之后存入的数据的存储地址,其中,在所述数据库服务器故障后,获取在所述检查时刻之后所述数据表中被更改的记录行的数据的存储地址包括,在所述数据库服务器故障后,基于所述控制文件获取在所述检查时刻之后所述数据表中被更改的记录行的数据的存储地址。

6.根据权利要求1所述的方法,其特征在于,在所述数据库服务器故障前,所述数据库服务器的内存中包括第二映射表,所述第二映射表在所述数据库服务器故障前用于记录所述数据表中的记录行的数据的存储地址,所述第二映射表中包括与所述数据表的记录行一一对应的各行,所述第二映射表被划分为多个分区,每个分区包括多个行;所述方法还包括:

每隔一段时间设置一个检查时刻,每到达一个检查时刻时,判断每个分区对应的数据表的记录行的热度是否大于一预设值;

若所述分区对应的数据表的记录行的热度大于等于所述预设值,则从所述分区中获取在该检查时刻所述分区中的每个记录行的数据的存储地址;生成该分区的全量检查点文件,将获取的在该检查时刻所述分区对应的每个记录行的数据的存储地址记录至所述全量检查点文件中;

若所述分区对应的数据表的记录行热度小于所述预设值,则从所述分区中获取在上次检查时刻与本次检查时刻之间产生的所述数据表的记录行的新数据的存储地址,并从所述分区中获取在上次检查时刻与本次检查时刻之间删除的数据表的记录行;生成该分区的增量检查点文件,将所述新数据对应的第二映射表中的行标识及所述新数据的存储地址记录至增量检查点文件,并将所述删除的记录行对应的第二映射表中的行标识及对其的预定标注记录至增量检查点文件;

在所述数据库服务器故障后,将检查时刻离所述数据库故障的时间最近的所述分区的全量检查点文件、及检查时刻在该全量检查点文件之后的所述分区的增量检查点文件作为所述分区的恢复文件。

7.一种数据库恢复装置,部署于数据库服务器中,所述数据库服务器中存储有恢复文件,所述恢复文件包括在检查时刻数据表中的每个记录行的数据的存储地址,所述装置包括:

第一获取单元,用于在所述数据库服务器故障后,从所述恢复文件中获取在检查时刻所述数据表中每个记录行的数据的存储地址;

第一生成单元,用于在所述数据库服务器的内存中生成第一映射表,所述第一映射表中包括与所述数据表的记录行一一对应的各行,将所述恢复文件中记录的所述数据表的每个记录行的数据的存储地址记录至所述第一映射表中每个记录行对应的行中。

8.根据权利要求7所述的装置,还包括:第二获取单元,用于获取在所述预设时刻之后所述数据表中的记录行的数据变化;修改单元,用于基于所述数据表中的记录行的数据变化修改所述第一映射表中与所述记录行对应的行。

9.根据权利要求7所述的装置,其特征在于,在所述数据库服务器故障前,所述装置还包括第一运行模块,所述第一运行模块包括:

获取子单元,用于每隔一段时间设置一个检查时刻,每到达一个检查时刻,从所述数据库服务器的内存中存储的所述数据表对应的第二映射表中获取在该检查时刻所述数据表的每个记录行的数据的存储地址,所述第二映射表在所述数据库服务器故障前用于记录所述数据表中的记录行的数据的存储地址,所述第二映射表中包括与所述数据表的记录行一一对应的各行;

生成子单元,用于生成全量检查点文件,将获取的在所述检查时刻所述数据表的每个记录行的数据的存储地址记录至全量检查点文件中;

在所述数据库服务器故障后,将对应的检查时刻离所述数据库故障的时间最近的全量检查点文件作为所述恢复文件。

10.根据权利要求7所述的装置,其特征在于,在所述数据库服务器故障前,所述装置还包括第二运行模块,所述第二运行模块包括:

判断子单元,用于每隔一段时间设置一个检查时刻,每到达一个检查时刻,判断所述数据表的热度是否大于一预设值;

第一获取子单元,用于若所述数据表的热度大于等于所述预设值,则从所述数据库服务器的内存中存储的所述数据表对应的第二映射表中获取在该检查时刻所述数据表的每个记录行的数据的存储地址,所述第二映射表在所述数据库服务器故障前用于记录所述数据表中的记录行的数据的存储地址,所述第二映射表中包括与所述数据表的记录行一一对应的各行;第一生成单元,用于生成全量检查点文件,将获取的在所述检查时刻所述数据表的每个记录行的数据的存储地址记录至全量检查点文件中;

第二获取子单元,用于若所述数据表的热度小于所述预设值,则从所述第二映射表中获取在上次检查时刻与本次检查时刻之间产生的所述数据表的记录行的新数据的存储地址,并从所述第二映射表中获取在上次检查时刻与本次检查时刻之间删除的数据表的记录行;第二生成单元,用于生成增量检查点文件,将所述新数据对应的第二映射表中的行标识及所述新数据的存储地址记录至增量检查点文件,并将所述删除的记录行对应的第二映射表中的行标识及对其的预定标注记录至增量检查点文件;

在所述数据库服务器故障后,将检查时刻离所述数据库故障的时间最近的全量检查点文件、及检查时刻在该全量检查点文件之后的增量检查点文件作为所述恢复文件。

11.根据权利要求10所述的装置,所述数据库服务器中还存储有控制文件,所述第二运行模块还包括,记录子单元,用于每到达一个检查时刻,在该检查时刻之后,在所述控制文件中记录数据表中在该检查时刻之后存入的数据的存储地址,其中,所述第二获取单元还用于在所述数据库服务器故障后,基于所述控制文件获取在所述检查时刻之后所述数据表中被更改的记录行的数据的存储地址。

12.根据权利要求7所述的装置,其特征在于,在所述数据库服务器故障前,所述数据库服务器的内存中包括第二映射表,所述第二映射表在所述数据库服务器故障前用于记录所述数据表中的记录行的数据的存储地址,所述第二映射表中包括与所述数据表的记录行一一对应的各行,所述第二映射表被划分为多个分区,每个分区包括多个行;所述装置还包括第三运行模块,所述第三运行模块包括:

判断子单元,用于每隔一段时间设置一个检查时刻,每到达一个检查时刻时,判断每个分区对应的数据表的记录行的热度是否大于一预设值;

第一获取子单元,用于若所述分区对应的数据表的记录行的热度大于等于所述预设值,则从所述第二映射表中获取在该检查时刻所述分区对应的每个记录行的数据的存储地址;第一生成子单元,用于生成该分区的全量检查点文件,将获取的在该检查时刻所述分区对应的每个记录行的数据的存储地址记录至所述全量检查点文件中;

第二获取子单元,用于若所述分区对应的数据表的记录行热度小于所述预设值,则从所述第二映射表中获取在上次检查时刻与本次检查时刻之间产生的所述分区对应的数据表的记录行的新数据的存储地址;第二生成子单元,用于生成该分区的增量检查点文件并将所述新数据对应的第二映射表中的行标识及所述新数据的存储地址记录至增量检查点文件;

在所述数据库服务器故障后,将检查时刻离所述数据库故障的时间最近的所述分区的全量检查点文件、及检查时刻在该全量检查点文件之后的所述分区的增量检查点文件作为所述分区的恢复文件。

13.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-6中任一项的所述的方法。

14.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-6中任一项所述的方法。


技术总结
本申请实施例提供一种由数据库服务器执行的数据库恢复方法和装置,所述数据库服务器中存储有恢复文件,所述方法包括:在数据库服务器故障后,从恢复文件中获取在检查时刻数据表中每个记录行的数据的存储地址;在内存中生成第一映射表,将恢复文件中记录的所述数据表的每个记录行的数据的存储地址记录至所述第一映射表中每个记录行对应的行中。通过所述方法和装置加快了数据库恢复时间,节省了存储资源和计算资源。

技术研发人员:陈平增;邹蛟同
受保护的技术使用者:华为技术有限公司
技术研发日:2019.12.13
技术公布日:2021.06.18
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1