数据库恢复方法及装置与流程
- 国知局
- 2024-10-21 14:54:05
本技术涉及数据库,特别涉及一种数据库恢复方法及装置。
背景技术:
1、数据库恢复技术用于将数据库恢复到曾经的状态(历史时间点)。目前主要有两种数据库恢复机制,一种是数据库时间点恢复(point-in-time recovery,pitr)机制,另一种是数据库闪回(flashback)机制。采用数据库时间点恢复机制时,每次进行数据库恢复都要使用数据库全量备份恢复出一个新的数据库实例,再在新的数据库实例上应用数据库增量备份以恢复到指定时间点的数据库,所需占用的存储空间较大。而数据库闪回机制是一种使数据库从当前状态回退到历史状态的数据库恢复机制,无需创建新的数据库实例,而是将当前数据库恢复成历史数据库,因此相较于数据库时间点恢复机制,所需占用的存储空间较小。
2、目前数据库闪回有两种启动模式,包括只读模式和读写模式。如果数据库闪回采用只读模式启动,则恢复得到的数据库支持读数据但不支持写数据。如果数据库闪回采用读写模式启动,则恢复得到的数据库支持读数据也支持写数据,但会丢弃闪回的历史时间点之后的备份数据,导致部分历史数据的丢失。因此目前数据库闪回机制的应用局限性较高。
技术实现思路
1、本技术提供了一种数据库恢复方法及装置,可以解决目前数据库闪回机制的应用局限性较高的问题。
2、第一方面,提供了一种数据库恢复方法。该方法包括:计算机设备响应于在第一时刻接收到针对数据库的第一恢复指令,根据第一恢复指令所指示的第一恢复时刻,从日志序列号(log sequence number,lsn)与时间关联日志中查询第一恢复时刻对应的第一lsn。lsn与时间关联日志用于记录数据库中的多个时刻分别对应的lsn。第一恢复时刻在时序上位于第一时刻之前。计算机设备根据第一lsn获取数据库的第一恢复数据。计算机设备采用第一恢复数据对数据库进行数据恢复,得到第一恢复时刻对应的数据库。之后针对第一恢复时刻对应的数据库使用的起始lsn大于第一时刻对应的lsn。
3、本技术中根据针对当前数据库的恢复指令将当前数据库回退到某个历史时刻之后,不再以该历史时刻对应的lsn为起点,而是以当前时刻对应的lsn为起点,进一步采用大于当前时刻对应的lsn的lsn来标识回退到历史时刻之后的数据库所产生的重做日志,通过lsn跳变机制保证数据库恢复之后使用的lsn与数据库恢复之前使用的lsn不冲突,这样数据库恢复之后也就不需要丢弃恢复时刻之后的重做日志,从而使得数据库支持多次任意时间点的恢复(闪回),提高了数据库恢复的灵活性。
4、可选地,针对第一恢复时刻对应的数据库使用的起始lsn为第一时刻对应的lsn的下一个lsn。
5、可选地,计算机设备在采用第一恢复数据对数据库进行数据恢复,得到第一恢复时刻对应的数据库之后,响应于接收到针对第一恢复时刻对应的数据库的操作指令,计算机设备执行操作指令,并生成操作指令对应的重做日志,该重做日志的lsn大于第一时刻对应的lsn。
6、可选地,计算机设备根据第一lsn获取数据库的第一恢复数据的一种实现方式,包括:计算机设备根据第一lsn从数据库的全量备份中获取第一全量备份快照,第一全量备份快照的lsn小于第一lsn;计算机设备根据第一全量备份快照的lsn和第一lsn,从数据库的增量备份中获取第一重做日志集合,第一重做日志集合包括lsn处于第一全量备份快照的lsn与第一lsn之间的重做日志。相应地,计算机设备采用第一恢复数据对数据库进行数据恢复,得到第一恢复时刻对应的数据库的实现过程,包括:计算机设备将数据库更新为采用第一全量备份快照恢复得到的第一数据库;计算机设备按照lsn由小到大的顺序,采用第一重做日志集合中的重做日志依次对第一数据库进行正向恢复处理,得到第一恢复时刻对应的数据库。
7、本实现方式中,计算机设备可以采用lsn小于第一恢复时刻对应的第一lsn的全量备份快照恢复出来的数据库来替换原始数据库,再采用重做日志将恢复出来的数据库正向恢复到第一恢复时刻对应的数据库,以实现历史时间点的数据库恢复。
8、可选地,计算机设备根据第一lsn获取数据库的第一恢复数据的另一种实现方式,包括:计算机设备根据第一lsn从数据库的全量备份中获取第二全量备份快照,第二全量备份快照的lsn大于第一lsn;计算机设备根据第一lsn和第二全量备份快照的lsn,从数据库的增量备份中获取第二重做日志集合,第二重做日志集合包括lsn处于第一lsn与第二全量备份快照的lsn之间的重做日志。相应地,计算机设备采用第一恢复数据对数据库进行数据恢复,得到第一恢复时刻对应的数据库的实现过程,包括:计算机设备将数据库更新为采用第二全量备份快照恢复得到的第二数据库;计算机设备按照lsn由大到小的顺序,采用第二重做日志集合中的重做日志依次对第二数据库进行逆向恢复处理,得到第一恢复时刻对应的数据库。
9、本实现方式中,计算机设备可以采用lsn大于第一恢复时刻对应的第一lsn的全量备份快照恢复出来的数据库来替换原始数据库,再采用重做日志将恢复出来的数据库逆向恢复到第一恢复时刻对应的数据库,以实现历史时间点的数据库恢复。
10、可选地,计算机设备根据第一lsn获取数据库的第一恢复数据的又一种实现方式,包括:计算机设备根据第一lsn从数据库的全量备份中获取第三全量备份快照,第三全量备份快照的lsn等于第一lsn。相应地,计算机设备采用第一恢复数据对数据库进行数据恢复,得到第一恢复时刻对应的数据库的实现过程,包括:计算机设备将数据库更新为采用第三全量备份快照恢复得到的第三数据库,并将第三数据库作为第一恢复时刻对应的数据库。
11、本实现方式中,在数据库的全量备份中存在第一恢复时刻对应的全量备份快照的情况下,可以直接基于该全量备份快照恢复得到第一恢复时刻对应的数据库,数据库恢复效率较高。
12、可选地,第一恢复指令为针对数据库的第一次恢复指令。计算机设备根据第一lsn获取数据库的第一恢复数据的再一种实现方式,包括:计算机设备根据第一lsn和第一时刻对应的lsn,从数据库的增量备份中获取第三重做日志集合,第三重做日志集合包括lsn处于第一lsn与第一时刻对应的lsn之间的重做日志。相应地,计算机设备采用第一恢复数据对数据库进行数据恢复,得到第一恢复时刻对应的数据库的实现方式,包括:计算机设备按照lsn由大到小的顺序,采用第三重做日志集合中的重做日志依次对数据库进行逆向恢复处理,得到第一恢复时刻对应的数据库。
13、本实现方式中,无需使用数据库的全量备份,只需采用重做日志就能够将数据库逆向恢复到第一恢复时刻对应的数据库,因此无需对数据库进行全量备份,可节约存储资源。
14、可选地,第一恢复指令为针对数据库的第n次恢复指令,n≥2。计算机设备根据第一lsn获取数据库的第一恢复数据的还一种实现方式,包括:计算机设备根据第一lsn和第一时刻对应的lsn,从数据库的增量备份中获取第四重做日志集合,第四重做日志集合包括lsn处于上一次恢复时刻对应的数据库使用的起始lsn与第一时刻对应的lsn之间的重做日志以及lsn处于上一次恢复时刻对应的lsn与第一lsn之间的重做日志。相应地,计算机设备采用第一恢复数据对数据库进行数据恢复,得到第一恢复时刻对应的数据库的实现过程,包括:计算机设备按照lsn由大到小的顺序,采用lsn处于上一次恢复时刻对应的数据库使用的起始lsn与第一时刻对应的lsn之间的重做日志依次对数据库进行逆向恢复处理,得到上一次恢复时刻对应的数据库;计算机设备采用lsn处于上一次恢复时刻对应的lsn与第一lsn之间的重做日志对上一次恢复时刻对应的数据库进行恢复处理,得到第一恢复时刻对应的数据库。
15、本实现方式中,计算机设备无需使用数据库的全量备份,只需采用重做日志就能够将数据库多次恢复到任意历史时间点,无需对数据库进行全量备份,可节约存储资源。
16、可选地,计算机设备在采用第一恢复数据对数据库进行数据恢复,得到第一恢复时刻对应的数据库之后,计算机设备响应于在第二时刻接收到针对数据库的第二恢复指令,根据第二恢复指令所指示的第二恢复时刻,从lsn与时间关联日志中查询第二恢复时刻对应的第二lsn,第二恢复时刻在时序上位于第二时刻之前。计算机设备根据第二lsn获取数据库的第二恢复数据。计算机设备采用第二恢复数据对数据库进行数据恢复,得到第二恢复时刻对应的数据库,之后针对第二恢复时刻对应的数据库使用的起始lsn大于第二时刻对应的lsn。
17、可选地,第二恢复时刻在时序上位于第一恢复时刻之后,且第二恢复时刻在时序上位于第一时刻之前。也就是说,本技术支持数据库恢复到上一次恢复时刻之后的任意时间点。
18、可选地,计算机设备还可以在时间线日志中添加第一恢复时刻对应的数据库恢复时间线信息,数据库恢复时间线信息包括恢复lsn、开始lsn和结束lsn,其中,恢复lsn为第一lsn,开始lsn为针对第一恢复时刻对应的数据库使用的起始lsn,结束lsn为下一次恢复指令的结束时刻对应的lsn。
19、本技术中,时间线日志中的时间线信息可用于数据过滤。例如在执行数据库任务时,可以每次加载一条时间线的数据和/或重做日志到内存中进行操作,以避免混淆不同时间线的数据库任务。
20、第二方面,提供了一种数据库恢复装置。所述装置包括多个功能模块,所述多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
21、第三方面,提供了一种数据库恢复装置,包括存储器和处理器,存储器存储有程序指令,处理器运行程序指令以执行上述第一方面及其各实施方式中的方法。
22、第四方面,提供了一种计算机可读存储介质,包括程序指令,当程序指令在计算机设备上运行时,使得计算机设备执行上述第一方面及其各实施方式中的方法。
23、第五方面,提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述第一方面及其各实施方式中的方法。
本文地址:https://www.jishuxx.com/zhuanli/20241021/319709.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。