CN103412803A - 数据恢复的方法及装置 - Google Patents
数据恢复的方法及装置 Download PDFInfo
- Publication number
- CN103412803A CN103412803A CN2013103560941A CN201310356094A CN103412803A CN 103412803 A CN103412803 A CN 103412803A CN 2013103560941 A CN2013103560941 A CN 2013103560941A CN 201310356094 A CN201310356094 A CN 201310356094A CN 103412803 A CN103412803 A CN 103412803A
- Authority
- CN
- China
- Prior art keywords
- data page
- virtual
- daily record
- record
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据恢复的方法及装置,能够解决在数据库恢复过程中,因频繁向磁盘读取数据文件,导致数据库性能低的问题;以及因连续日志对应于不连续数据页,导致数据库恢复速度慢的问题。所述方法包括:从日志文件中的恢复起点获取至少一条日志;根据所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,所述虚拟数据页用于表示根据Redo日志进行重做后得到的数据页;根据待恢复的原始数据页的存储顺序,将每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。本发明主要应用于数据库恢复的过程中。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据恢复的方法及装置。
背景技术
目前数据库已得到广泛应用,在数据库的运行过程中,会出现因断电、死机等突发原因导致数据库意外关闭的情况,此时需要对数据库进行恢复。
现有技术中,当对数据库的数据文件进行操作时,对该操作进行记录,形成一条日志,存放到日志文件中。日志文件和数据文件(数据页)一同存放在磁盘中。根据操作指令对数据文件进行修改是在内存中执行的,内存在根据操作指令对数据页进行处理之后,会产生脏页,脏页为被修改但尚未存储到磁盘中的数据页。将日志文件存放到磁盘的操作在时间上先于将脏页存储到磁盘中的操作,在根据日志文件恢复数据库的过程中,首先根据检查点确定日志恢复的起始点,然后从该起始点起逐次顺序逐条读取日志文件中的每一条日志,根据每一条日志调取磁盘中的数据文件进行重做(Redo),将重做后的数据文件存回到磁盘中,当对所有日志均进行重做并将重做的数据文件存回到磁盘之后,完成数据库恢复操作。
在实现上述数据恢复的过程中,发明人发现现有技术中至少存在如下问题:根据日志调取磁盘中的数据文件,对于日志文件中的涉及的数据页均需要访问一次磁盘,此时增加了磁盘的读写次数,进而占用部分或全部磁盘输入输出(Input/Output,简称I/O)资源。例如,日志文件中包含有N条日志,涉及M个数据页,则需要进行M次数据读操作,即每个涉及的数据页均需要从磁盘中读取。在数据库正常运行时,如果数据库操作涉及从磁盘中读取数据,则其速度将因磁盘I/O资源紧缺导致数据库反应速度低,即数据库性能低的问题。
发明内容
本发明提供的一种数据恢复的方法及装置,以减少数据库恢复阶段的磁盘IO开销,加快数据库恢复速度,提高数据库的可用性。
第一方面,本发明提供了一种数据恢复的方法,包括:
从日志文件中的恢复起点获取至少一条日志;
根据所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,所述虚拟数据页用于表示根据Redo日志进行重做后得到的数据页;
根据待恢复的原始数据页的存储顺序,将每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。
在所述第一方面的第一种可能的实现方式中,所述从日志文件中的恢复起点获取至少一条日志,包括:
根据检查点确定日志的恢复起点,所述恢复起点用于表示需要恢复的第一条日志;
从所述恢复起点开始从日志文件中逐次顺序读取一条日志。
在所述第一方面或所述第一方面的第一种可能的实现方式中,还提供了所述第一方面的第二种可能的实现方式,在所述第一方面的第二种可能的实现方式中,所述方法还包括:
根据所述至少一条日志中的每一条刷新日志中的全部记录所对应的虚拟数据页页头中的页号,将各页号的集合确定为页号集合;
从已生成的虚拟数据页中,删除页号包含在所述页号集合中的至少一个虚拟数据页。
在所述第一方面或所述第一方面的第一种可能或第二种可能的实现方式中,还提供了所述第一方面的第三种可能的实现方式,在所述第一方面的第三种可能的实现方式中,所述根据所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,包括:
如果查找到与所述每一条Redo日志对应的虚拟数据页,则根据所述每一条Redo日志对所述与所述该日志相对应的虚拟数据页进行重做,将重做的虚拟数据页确定为所述与该日志对应的虚拟数据页;
如果未查找到与所述每一条Redo日志对应的虚拟数据页,则根据所述每一条Redo日志构造与所述每一条Redo日志相对应的虚拟数据页。
在所述第一方面或所述第一方面的第一种可能、第二种可能或第三种可能的实现方式中,还提供了所述第一方面的第四种可能的实现方式,在所述第一方面的第四种可能的实现方式中,所述根据所述每一条Redo日志构造与所述每一条Redo日志相对应的虚拟数据页,包括:
根据所述每一条Redo日志调取与该日志相对应的原始数据页的模板;
在所述模板的页头中构造虚拟数据页标志位;
将所述每一条Redo日志的日志号、页大小、记录数目添加到所述页头中;
根据所述每一条Redo日志所记载的修改内容,在所述模板中生成与所述修改内容对应的虚拟记录和所述虚拟记录的偏移量,所述页头、虚拟记录和虚拟记录的偏移量构成所述与所述每一条Redo日志相对应的虚拟数据页。
在所述第一方面或所述第一方面的第一种可能、第二种可能、第三种可能或第四种可能的实现方式中,还提供了所述第一方面的第五种可能的实现方式,在所述第一方面的第五种可能的实现方式中,所述根据所述每一条Redo日志所记载的修改内容,在所述模板中生成与所述修改内容对应的虚拟记录,具体包括:
根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位、虚拟字段标志位以及原始记录号,或者,根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位和原始记录号,其中,所述虚拟记录标志位用于表示每一条Redo记录为虚拟记录,所述字段标志位用于记录虚拟记录中被修改的字段,所述原始记录号用于表示原始数据页中与每一条Redo记录对应的记录号;
如果所述每一条Redo日志用于修改字段数据,则在所述虚拟数据页中生成与所述每一条Redo日志对应的至少一个字段数据,并将生成的全部字段数据合并,以得到与所述修改内容对应的虚拟记录,所述修改字段数据包括下述至少任意一种操作:添加字段数据、更改字段数据、删除字段数据。
在所述第一方面或所述第一方面的第一种可能、第二种可能、第三种可能、第四种可能或第五种可能中的实现方式中,还提供了所述第一方面的第六种可能的实现方式,在所述第一方面的第六种可能的实现方式中,所述根据所述每一条Redo日志对所述与所述该日志相对应的虚拟数据页进行重做,包括:
根据每条Redo日志修改所述与所述该日志相对应的虚拟数据页的页头中的日志号;
根据所述每一条Redo日志修改所述与所述该日志相对应的虚拟数据页中的字段数据。
在所述第一方面或所述第一方面的第一种可能、第二种可能、第三种可能、第四种可能、第五种可能或第六种可能中的实现方式中,还提供了所述第一方面的第七种可能的实现方式,在所述第一方面的第七种可能的实现方式中,所述根据待恢复的原始数据页的存储顺序,将每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页,包括:
如果所述日志文件中的全部Redo日志均已获取并处理完毕,则根据各虚拟数据页的页头中的日志号,从预设对应关系表中获取所述各虚拟数据页对应的各原始数据页的存储位置;
对所有存储位置进行顺序排序,得到原始数据页序列以及与之对应的虚拟数据页序列;
根据存储位置从原始数据页序列中,由近及远的读取至少一个原始数据页;
将所述至少一个原始数据页与虚拟数据页序列中与所述至少一个原始数据页对应的至少一个虚拟数据页进行合并,得到至少一个结果数据页,结果数据页为已恢复的原始数据页。
在所述第一方面或所述第一方面的第一种可能、第二种可能、第三种可能、第四种可能、第五种可能、第六种可能或第七种可能中的实现方式中,还提供了所述第一方面的第八种可能的实现方式,在所述第一方面的第八种可能的实现方式中,所述将所述至少一个原始数据页与虚拟数据页序列中与所述至少一个原始数据页对应的至少一个虚拟数据页进行合并,包括:
如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,则将所述每一个虚拟数据页替换为原始数据页,得到结果数据页;
如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中包含有虚拟字段标志位,则根据虚拟记录中的原始记录号和所述虚拟字段标志位对字段数据进行替换,得到结果数据页;
如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中未包含有虚拟字段标志位,则根据所述虚拟数据页中的虚拟记录中包含的原始记录号确定原始数据页中与所述原始记录号对应的原始记录,将没有字段数据的虚拟记录替换为所述原始记录,得到结果数据页。
在所述第一方面或所述第一方面的第一种可能、第二种可能、第三种可能、第四种可能、第五种可能、第六种可能、第七种可能或第八种可能中的实现方式中,还提供了所述第一方面的第九种可能的实现方式,在所述第一方面的第九种可能的实现方式中,所述虚拟记录的长度不大于原始数据页理论最小长度。
第二方面,本发明还提供了一种数据恢复的装置,包括:
获取单元,用于从日志文件中的恢复起点获取至少一条日志;
生成单元,用于根据所述获取单元获取的所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,所述虚拟数据页用于表示根据Redo日志进行重做后得到的数据页;
合并单元,用于根据待恢复的原始数据页的存储顺序,将所述生成单元生成的每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。
在所述第二方面的第一种可能的实现方式中,所述获取单元还用于:
根据检查点确定日志的恢复起点,所述恢复起点用于表示需要恢复的第一条日志;
从所述恢复起点开始从日志文件中逐次顺序读取一条日志。
在所述第二方面或所述第二方面的第一种可能的实现方式中,还提供了所述第二方面的第二种可能的实现方式,在所述第二方面的第二种可能的实现方式中,所述装置还包括:
确定单元,用于根据所述获取单元获取的所述至少一条日志中的每一条刷新日志中的全部记录所对应的虚拟数据页页头中的页号,将各页号的集合确定为页号集合;
删除单元,用于从已生成的虚拟数据页中,删除页号包含在所述确定单元确定的所述页号集合中的至少一个虚拟数据页。
在所述第二方面或所述第二方面的第一种可能或第二种可能的实现方式中,还提供了所述第二方面的第三种可能的实现方式,在所述第二方面的第三种可能的实现方式中,所述生成单元还用于:
当查找到与所述每一条Redo日志对应的虚拟数据页时,则根据所述每一条Redo日志对所述与所述该日志相对应的虚拟数据页进行重做,将重做的虚拟数据页确定为所述与该日志对应的虚拟数据页;
当未查找到与所述每一条Redo日志对应的虚拟数据页时,则根据所述每一条Redo日志构造与所述每一条Redo日志相对应的虚拟数据页。
在所述第二方面或所述第二方面的第一种可能、第二种可能或第三种可能的实现方式中,还提供了所述第二方面的第四种可能的实现方式,在所述第二方面的第四种可能的实现方式中,所述生成单元还用于:
根据所述每一条Redo日志调取与该日志相对应的原始数据页的模板;
在所述模板的页头中构造虚拟数据页标志位;
将所述每一条Redo日志的日志号、页大小、记录数目添加到所述页头中;
根据所述每一条Redo日志所记载的修改内容,在所述模板中生成与所述修改内容对应的虚拟记录和所述虚拟记录的偏移量,所述页头、虚拟记录和虚拟记录的偏移量构成所述与所述每一条Redo日志相对应的虚拟数据页。
在所述第二方面或所述第二方面的第一种可能、第二种可能、第三种可能或第四种可能的实现方式中,还提供了所述第二方面的第五种可能的实现方式,在所述第二方面的第五种可能的实现方式中,所述生成单元还用于:
根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位、虚拟字段标志位以及原始记录号,或者,根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位和原始记录号,其中,所述虚拟记录标志位用于表示每一条Redo记录为虚拟记录,所述字段标志位用于记录虚拟记录中被修改的字段,所述原始记录号用于表示原始数据页中与每一条Redo记录对应的记录号;
当所述每一条Redo日志用于修改字段数据是,则在所述虚拟数据页中生成与所述每一条Redo日志对应的至少一个字段数据,并将生成的全部字段数据合并,以得到与所述修改内容对应的虚拟记录,所述修改字段数据包括下述至少任意一种操作:添加字段数据、更改字段数据、删除字段数据。
在所述第二方面或所述第二方面的第一种可能、第二种可能、第三种可能、第四种可能或第五种可能中的实现方式中,还提供了所述第二方面的第六种可能的实现方式,在所述第二方面的第六种可能的实现方式中,所述生成单元还用于包括:
根据每条Redo日志修改所述与所述该日志相对应的虚拟数据页的页头中的日志号;
根据所述每一条Redo日志修改所述与所述该日志相对应的虚拟数据页中的字段数据。
在所述第二方面或所述第二方面的第一种可能、第二种可能、第三种可能、第四种可能、第五种可能或第六种可能中的实现方式中,还提供了所述第二方面的第七种可能的实现方式,在所述第二方面的第七种可能的实现方式中,所述合并单元还用于:
当所述日志文件中的全部Redo日志均已获取并处理完毕时,根据各虚拟数据页的页头中的日志号,从预设对应关系表中获取所述各虚拟数据页对应的各原始数据页的存储位置;
对所有存储位置进行顺序排序,得到原始数据页序列以及与之对应的虚拟数据页序列;
根据存储位置从原始数据页序列中,由近及远的读取至少一个原始数据页;
将所述至少一个原始数据页与虚拟数据页序列中与所述至少一个原始数据页对应的至少一个虚拟数据页进行合并,得到至少一个结果数据页,结果数据页为已恢复的原始数据页。
在所述第二方面或所述第二方面的第一种可能、第二种可能、第三种可能、第四种可能、第五种可能、第六种可能或第七种可能中的实现方式中,还提供了所述第二方面的第八种可能的实现方式,在所述第二方面的第八种可能的实现方式中,所述合并单元还用于:
当每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号时,将所述每一个虚拟数据页替换为原始数据页,得到结果数据页;
当每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中包含有虚拟字段标志位时,根据虚拟记录中的原始记录号和所述虚拟字段标志位对字段数据进行替换,得到结果数据页;
当每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中未包含有虚拟字段标志位时,根据所述虚拟数据页中的虚拟记录中包含的原始记录号确定原始数据页中与所述原始记录号对应的原始记录,将没有字段数据的虚拟记录替换为所述原始记录,得到结果数据页。
本发明提供的数据恢复的方法及装置,能够从日志文件中的恢复起点获取至少一条日志;根据所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,所述虚拟数据页用于表示根据Redo日志进行重做后得到的数据页;根据待恢复的原始数据页的存储顺序,将每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。本发明实施例根据日志文件中的Redo日志在磁盘外部生成虚拟数据页,此过程中不需要访问磁盘,进而减少数据库恢复过程中磁盘的读次数。本发明中,能够根据虚拟数据页进行重做操作,避免在数据库恢复的过程中进行磁盘读操作,将磁盘读操作推迟到重做操作之后,进而提高磁盘数据的读操作的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中第一个数据恢复的方法的流程图;
图2为本发明实施例中第二个数据恢复的方法的流程图;
图3为本发明实施例中第三个数据恢复的方法的流程图;
图4为本发明实施例中第四个数据恢复的方法的流程图;
图5为本发明实施例中原始数据页的示意图;
图6为本发明实施例中虚拟数据页的示意图;
图7为本发明实施例中一个虚拟记录的示意图;
图8为本发明实施例中另一个虚拟记录的示意图;
图9为本发明实施例中数据库支持增量更新时虚拟记录的示意图;
图10为本发明实施例中数据库不支持增量更新时虚拟记录的示意图;
图11为本发明实施例中第五个数据恢复的方法的流程图;
图12为本发明实施例中第一个数据恢复的装置的结构示意图;
图13为本发明实施例中第二个数据恢复的装置的结构示意图;
图14为本发明实施例中第三个数据恢复的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,在数据库恢复技术中,最常用的恢复技术是基于预写日志系统(Write-Ahead Logging,简称WAL)日志来实现,本发明适用于基于WAL日志进行重做(Redo)的数据库系统,也可以适用于基于数据页和并且采用物理日志重做的其它事务处理系统,本发明不做特别限定。
本发明实施例提供了一种数据恢复的方法,所述方法应用于具有数据库管理功能的服务器中,如图1所示,包括:
步骤101、从日志文件中的恢复起点获取至少一条日志。
数据库在日常运行的过程中会定期产生检查点,当达到检查点时数据库对日志文件进行更新等其他操作。根据数据库类型的不同,检查点的产生形式,如定期式或触发式,也有所不同,但均会产生检查点。日志文件中的各条日志按照日志发生的先后顺序,对日志进行顺序编号(日志号),因此,日志号越大表示日志发生的时间越接近当前时刻。数据库运行过程中存在检查点,检查点用于将脏页刷新到磁盘,以防止突发的异常情况导致数据库恢复时间过长。数据库恢复的起点是当异常发生后,未刷新到磁盘的脏页中最早被修改的脏页。这往往需要通过检查点来找到。有的数据库恢复的起点就是最近一次检查点。日志文件中记录有多种类型的日志,例如:Redo日志,Undo日志、刷新日志等。
步骤102、根据至少一条日志中的每一条Redo日志,生成一个虚拟数据页,虚拟数据页用于表示根据Redo日志进行重做后得到的数据页。
如果步骤101获取的当前日志的类型为Redo日志,则根据Redo日志生成虚拟数据页。如果内存中不存在该虚拟数据页,则构造一个虚拟数据页。如果内存中已存在该虚拟数据页,则在已存在的虚拟数据页中执行Redo日志的内容。即使日志文件中存在对同一个原始数据页的多条Redo日志,最终形成的虚拟数据页将体现上述多条Redo日志的操作结果,虚拟数据页的个数为一个,而非多个。根据当前日志进行步骤102之后,获取下一条日志进行处理,以为恢复起点之后的每一条Redo日志构造一个虚拟数据页。
步骤103、根据待恢复的原始数据页的存储顺序,将每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。
所述日志文件中的全部Redo日志均已获取并处理完毕,此时形成需要将磁盘外(内存)的虚拟数据页与磁盘中的原始数据页进行合并。处理指对日志进行类型判断、如果是Redo日志根据日志生成虚拟数据页的步骤。在合并过程中,先根据原始数据页的存储顺序对虚拟数据页进行排序。现有技术中,数据库均保存有一张原始数据页页号与存储位置的对应关系,在排序时,由于日志中包含有与之对应的原始数据页的页号,因此可以得到存储位置与日志号的对应关系。通过对存储位置进行顺序排序,与原始数据页对应的日志的顺序也随之改变。例如:原始的日志文件中日志的序列为:{1、2、3、4、5},对应的原始数据页的存储位置为:{100、50、98、99、30}。对存储位置进行顺序排序后得到{30、50、98、99、100},对应到日志号的序列为{5、2、3、4、1}。此时,根据{5、2、3、4、1}的顺序将虚拟数据页依次进行存盘(存入磁盘)。现有技术为按照{1、2、3、4、5}的顺序从磁盘中读取原始数据页,因此需要5次的磁盘读操作。本发明只需从内存中获取原始数据页,无需进行磁盘读操作。此外,本发明在寻找到存储地址100之后,只需向小地址方向逐次移动,不存在移动方向改变的问题,同时由于按照存储顺序进行排序,对于存储地址为{100、99、98}三个日志,无需再进行寻道,可直接进行磁盘写操作。由此提高磁盘的读写效率,进而提高数据库恢复的速度。
需要说明的是,数据库的Redo日志必须是物理日志。物理日志和逻辑日志的区别在于物理日志是基于数据的物理操作,例如在数据页中插入或删除一条记录,而逻辑日志是基于数据的逻辑操作,比如一条SQL更新语句。因此,逻辑日志的重做需要执行逻辑搜索,定位数据记录,如果搜索过程中某些页面不完整,会造成执行错误,而物理日志则不存在这样的问题。数据页中添加、更新和删除记录都需要记录日志,并且日志记录中需要有数据页的记录数目,这是构建虚拟数据页的基础。另外,为了保证在恢复时构建的虚拟数据页和磁盘中的数据页一致,当数据库在刷新脏页到磁盘后,需要记录脏页刷新日志。脏页刷新日志中需要包含刷新的脏页号和脏页的日志号(LSN)。脏页刷新日志并不需要立刻刷新到磁盘,只要可以保证下次刷新脏页前被更新到磁盘即可。可以把多个脏页的刷新写到一条日志中来减少日志量。一般情况下,当事务提交时,脏页刷新日志也会附带被刷新到磁盘,不会对数据库性能带来冲击。
可以看出,本发明实施例提供的方案,在执行数据库恢复流程时,在Redo阶段并不加载脏页,而是预先购建一个“不完整”脏页,即虚拟数据页。通过在Redo日志中记录数据页的记录数目,在恢复阶段,就可以从日志中得到该数据页有多少记录,根据记录数可以构造一个虚拟数据页,即该数据页中各个记录的长度、位置和具体内容都不知道,仅仅知道记录个数,以这个“虚拟数据页来执行恢复,直至Redo完成。在Undo阶段(如果有undo阶段),如果需要访问到这些“虚拟数据页,则需要读磁盘来获得原始页与内存中的虚拟数据页和并,而后,继续执行。恢复完成后,还需启动后台线程继续把所有的虚拟数据页和磁盘的原始页进行合并,得到恢复后的数据页。
本发明提供的数据恢复的方法,能够从日志文件中的恢复起点获取至少一条日志;根据所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,所述虚拟数据页用于表示根据Redo日志进行重做后得到的数据页;根据待恢复的原始数据页的存储顺序,将每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。本发明实施例根据日志文件中的Redo日志在磁盘外部生成虚拟数据页,此过程中不需要访问磁盘,进而减少数据库恢复过程中磁盘的读次数。本发明中,能够根据虚拟数据页进行重做操作,避免在数据库恢复的过程中进行磁盘读操作,将磁盘读操作推迟到重做操作之后,进而提高磁盘数据的读操作的效率。
本发明还提供了一种数据库恢复的方法,作为对图1所示方法的具体说明,如图2所示,步骤101在实施过程中可采用如下具体方式:
步骤201、根据检查点确定日志的恢复起点,恢复起点用于表示需要恢复的第一条日志。
步骤202、从恢复起点开始从日志文件中逐次顺序读取一条日志。
恢复起点决定数据恢复需要根据哪些日志进行恢复。从恢复起点对应的日志到日志文件最后写入的日志为需要进行恢复的日志。恢复点的确定在上述实施例中已进行描述,此处不再赘述。在确定恢复起点之后,从恢复起点开始逐条顺序获取日志。
本发明还实例还提供了一种数据恢复的方法,作为对图1所示方法的进一步说明,如图3所示,所述方法还包括:
步骤301、根据至少一条日志中的每一条刷新日志中的全部记录所对应的虚拟数据页页头中的页号,将各页号的集合确定为页号集合。
刷新日志中记载有已恢复的原始数据页的页号和用于恢复该原始数据页的记录号。
步骤302、从已生成的虚拟数据页中,删除页号包含在页号集合中的至少一个虚拟数据页。
在获取当前日志之后,如果当前日志为Redo日志,则执行图1所示方法,如果当前日志为刷新日志,则根据刷新日志对日志文件中的日志进行调整。现有技术中,当磁盘中存储的原始数据页被替换或修改之后,会在日志文件中添加一条更新日志。对于本发明中的场景,由于刷新日志的日志号大于恢复起点对应日志的日志号,因此刷新日志是在恢复起点对应时刻之后进行的。换句话说,刷新日志描述的原始数据页已被改变,因此无需在对该原始数据页继续Redo操作,此时删除日志号包含在日志号集合中的至少一个虚拟数据页。例如:日志文件中对日志顺序排序,起始点序号为2,当前日志的日志号为10,当前日志的类型为刷新日志,当前日志指向的页号集合为{110、111},当前已生成的虚拟数据页中具有以下页号的虚拟数据页:100、102、110、120。由于110包含于页号集合{110、111}中,因此将页头中页号为110的虚拟数据页删除。
本发明实施例提供的数据恢复的方法,能够在当前日志的类型为刷新日志时,根据刷新日志的内容将,对已生成的虚拟数据页进行删减,进而减少后续合并的次数,进一步提高数据恢复的效率。
本发明实施例还提供了一种数据恢复的方法,作为对图1所示方法的具体说明,如图4所示,步骤102可以通过下述步骤进行实施,包括:
步骤401、查找与每一条Redo日志对应的虚拟数据页,得到查找结果。
步骤402、如果查找到与每一条Redo日志对应的虚拟数据页,则根据每一条Redo日志对与该日志相对应的虚拟数据页进行重做,将重做的虚拟数据页确定为与该日志对应的虚拟数据页。
步骤403、如果未查找到与每一条Redo日志对应的虚拟数据页,则根据每一条Redo日志构造与每一条Redo日志相对应的虚拟数据页。
在生成虚拟数据页时,可能存在两种情况,一种为当前内存中已存在与当前日志对应的虚拟数据页,即已构造与当前日志对应的虚拟数据页;另一种为当前内存中不存在与当前日志对应的虚拟数据页。由此可见,在本发明中,一个虚拟数据页对应于磁盘中的一个原始数据页,即使日志文件存在多条对应于同一个原始数据页的日志,在执行第一个日志时需要构造虚拟数据页,之后的各日志在执行时,均在对第一个日志进行执行时构造的虚拟数据页的基础上继续执行日志内容。
具体的,根据所述每一条Redo日志构造与所述每一条Redo日志相对应的虚拟数据页,操作如下:
1、根据所述每一条Redo日志调取与该日志相对应的原始数据页的模板。
2、在所述模板的页头中构造虚拟数据页标志位。
3、将所述每一条Redo日志的日志号、页大小、记录数目添加到所述页头中。
4、根据所述每一条Redo日志所记载的修改内容,在所述模板中生成与所述修改内容对应的虚拟记录和所述虚拟记录的偏移量,所述页头、虚拟记录和虚拟记录的偏移量构成所述与所述每一条Redo日志相对应的虚拟数据页。
虚拟数据页的文件构成与日志对应的原始数据页相同,不同之处在于虚拟数据页的页头信息中除具有现有技术涵盖的日志号、记录数目、页剩余空间、页大小等信息之外,还有虚拟页标识。该虚拟页标识用于表示本页为虚拟数据页,不能直接存储到磁盘。在构造虚拟数据页的页头时,需要将日志的日志号No.X写入页头中,表示虚拟数据页最后一次的被操作对象为No.X日志。
2、根据当前日志,在虚拟数据页中生成虚拟记录和所述虚拟记录的偏移量,具体如下:
1)根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位、虚拟字段标志位以及原始记录号,或者,根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位和原始记录号,其中,所述虚拟记录标志位用于表示每一条Redo记录为虚拟记录,所述字段标志位用于记录虚拟记录中被修改的字段,所述原始记录号用于表示原始数据页中与每一条Redo记录对应的记录号;
2)如果所述每一条Redo日志用于修改字段数据,则在所述虚拟数据页中生成与所述每一条Redo日志对应的至少一个字段数据,并将生成的全部字段数据合并,以得到与所述修改内容对应的虚拟记录,所述修改字段数据包括下述至少任意一种操作:添加字段数据、更改字段数据、删除字段数据。
现有技术中提供的原始数据页如图5所示,在页头之后顺序存储记录偏移量,在数据页的尾部存储页尾信息(标识页尾),从页尾依次向前存储各条记录。本发明中,虚拟数据页如图6所示,除了页头信息中多出了虚拟标志位之外,虚拟数据页中的每条记录变为虚拟记录。虚拟数据页的存储结构与原始数据页相一致,以便后续进行合并。
有些数据库不支持增量更新,而有些支持增量更新。因此,针对不同的数据库,虚拟记录的格式略有不同。如果数据库支持增量更新,则需要标明哪些字段发生了改变,此时虚拟记录的初始格式如图7所示,由虚拟记录标志位、虚拟字段标志位以及原始记录号组成。如果数据库不支持增量更新,则不需要标明哪些字段进行更新,此时虚拟记录的初始格式如图8所示,由虚拟记录标志位和原始记录号组成。
一条日志可能包含有对原始数据页中部分记录的修改,因此对于没有进行修改的记录,在虚拟数据页中只需要在虚拟记录中构造到原始记录号即可。对于进行修改的记录,在虚拟数据页中除了在虚拟记录中构造到原始记录号,还需要根据日志的内容构造字段数据。例如:虚拟数据页一共有一条虚拟记录,日志表示的修改字段数据操作为,更改该记录中的2、3字段。如果数据库支持增量更新,则此时构造出的虚拟记录如图9所示,该记录的2、3字段为新的内容FieldData2和FieldData3,1、4字段的内容为NULL(空),对应的虚拟字段标志位为0、1、1、0,用于表示增量更新的字段位置。如果数据库不支持增量更新,则此时构造出虚拟记录如图10所示,该记录的字段数据有1、2、3、4共四个字段组成,其中1、4为新增,2、3为原有,但不会在虚拟记录中体现。
需要说明的是,所述虚拟记录的长度不大于原始数据页理论最小长度,如5个字节。因为如果大于,则可能会造成日志重做过程中虚拟数据页溢出的情况。记录偏移量的生成与现有技术相一致,此处不再赘述。
具体的,步骤402、如果查找到与每一条Redo日志对应的虚拟数据页,则根据每一条Redo日志对与该日志相对应的虚拟数据页进行重做,将重做的虚拟数据页确定为与该日志对应的虚拟数据页。可以通过下述步骤进行实施:
步骤402-1、根据每条Redo日志修改所述与所述该日志相对应的虚拟数据页的页头中的日志号。
步骤402-2、根据所述每一条Redo日志修改所述与所述该日志相对应的虚拟数据页中的字段数据。
根据日志进行重做的步骤于现有技术相同,此处不再赘述。
本发明实施例提供的数据恢复的方法,提供了构造虚拟数据页的具体步骤以及针对不同数据库的虚拟记录格式,能够实现对增量操作的准确表示,进而减少合并时的合并内容,进而加快数据恢复速度。对于非增量的虚拟记录格式,减少了虚拟字段标志位,进而减少虚拟数据页的存储空间。本发明实施例还提供了当已存在虚拟数据页则在该虚拟数据页的基础上进行重做的技术方案,由于数据重做的工作量小于构造虚拟数据页的工作量,因此能够加快数据恢复的速度。
本发明实施例还提供了一种数据恢复的方法,作为对图1所示方法的进一步的说明,如图11所示,步骤103可以通过下述方式进行实施。
步骤1101、如果所述日志文件中的全部Redo日志均已获取并处理完毕,则根据各虚拟数据页的页头中的日志号,从预设对应关系表中获取所述各虚拟数据页对应的各原始数据页的存储位置。
因为合并操作需要对日志对应的原始数据页的存储位置进行排序,所以为了避免在排序时疏漏某些原始数据页,合并操作需要在所有Redo日志全部处理完毕后执行。
步骤1102、对所有存储位置进行顺序排序,得到原始数据页序列以及与之对应的虚拟数据页序列。
现有技术中,数据库维护会数据页号和数据页内存地址的对应关系。数据页号本身就是磁盘位置的体现。由于日志中记录了所修改的页号,所以根据日志号可以得到页号。
在步骤1101得到所有虚拟数据页对应的原始数据页的存储位置之后,对所有存储位置进行顺序排序,该顺序排序可以是升序也可以是降序。例如:顺序排序前的存储位置分别为:2、5、10、3、4、1,此时虚拟数据页的顺序为101,102,103,104,105,106。顺序排序后原始数据页序列的存储位置序列为{1,2,3,4,5,10},虚拟数据页序列为{106、101、104、105、102、103}。
步骤1103、根据存储位置从原始数据页序列中,由近及远的读取至少一个原始数据页。
在从磁盘中读取原始数据页的过程中,可以根据步骤1102的排序结果,将存储位置相邻的原始数据页通过一次读操作读出。在上例中,可以将存储位置为{1,2,3,4,5}的五个原始数据页通过一次读操作读出,再读出存储位置为10的原始数据页。通过此种方式,避免了单个读取原始数据页花费的磁头寻道的时间。
步骤1104、将所述至少一个原始数据页与虚拟数据页序列中与所述至少一个原始数据页对应的至少一个虚拟数据页进行合并,得到至少一个结果数据页,结果数据页为已恢复的原始数据页。
具体的:
1、如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,则将所述每一个虚拟数据页替换为原始数据页,得到结果数据页。
由于日志文件中根据日志的发生顺序进行顺序编号,因此日志号越大的日志其发生的时间越接近当前时刻。通过判断虚拟数据页对应的日志号是否大于原始数据页对应的日志号,能够确定原始数据页是否需要根据虚拟数据页进行刷新。
2a、如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中包含有虚拟字段标志位,则根据虚拟记录中的原始记录号和所述虚拟字段标志位对字段数据进行替换,得到结果数据页。
如果虚拟数据页对应的日志号不大于原始数据页对应的日志号,则表明原始数据页最后一次被操作是在虚拟数据页之后发生的,即原始数据页的数据已更改,只是刷新日志没有被记录到磁盘。合并过程不包含对记录偏移量的合并,合并后的记录偏移量与原始记录中一致。
2b、如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中未包含有虚拟字段标志位,则根据所述虚拟数据页中的虚拟记录中包含的原始记录号确定原始数据页中与所述原始记录号对应的原始记录,将没有字段数据的虚拟记录替换为所述原始记录,得到结果数据页。
如果数据库支持增量更新,则虚拟记录中包含有虚拟字段标志位。该虚拟字段标志位可通过1、0的方式,表示哪些字段需要更新(1表示),哪些字段未发生变化(0表示)。通过原始记录号能够找到原始数据页中与当前虚拟记录对应的记录。虚拟字段标志位为0对应的字段数据为NULL,此时用原始记录中的字段数据替换NULL,完成虚拟记录的合并,得到结果数据页。合并过程不包含对记录偏移量的合并,合并后的记录偏移量与虚拟记录中一致。
2c、如果所述判断结果为是,且所述虚拟数据页的虚拟记录中未包含有虚拟字段标志位,则根据所述虚拟数据页中的虚拟记录中包含的原始记录号确定原始数据页中与所述原始记录号对应的原始记录,将没有字段数据的虚拟记录替换为所述原始记录,得到结果数据页。
由于没有虚拟字段标志位,则根据日志进行重做后的虚拟数据页中,只存在两种虚拟记录,一种为没有空缺字段的更新记录,另一种为数据字段全部为空的记录。对于后者,需要用原始记录将其替换,得到具有真实数据的记录。合并过程不包含对记录偏移量的合并,合并后的记录偏移量与虚拟记录中一致。
在执行完合并过程之后,当到达检查点时,将合并后的数据页存放到磁盘中,完成数据恢复。
本发明实施例提供的数据恢复的方法,能够按照日志对应的原始数据页的存储位置进行磁盘读写操作,减少磁头的寻道时间,加快磁盘读写速度。在合并过程中,根据数据库支持增量更新情况的不同,对虚拟数据页进行不同的操作,达到适应不同数据库的效果。在合并时,只需要将虚拟数据页中没有填充数据的部分用原始数据页中的原始记录进行填充,即可得到结果数据页,能够加快数据库的恢复速度。
本发明实施例还提供了一种数据恢复的装置,所述装置位于具有数据库管理功能的服务器中,如图12所示,所述装置包括:
获取单元1201,用于从日志文件中的恢复起点获取至少一条日志。
生成单元1202,用于根据所述获取单元1201获取的所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,所述虚拟数据页用于表示根据Redo日志进行重做后得到的数据页。
合并单元1203,用于根据待恢复的原始数据页的存储顺序,将所述生成单元1202生成的每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。
本发明提供的数据恢复的装置,能够从日志文件中的恢复起点获取至少一条日志;根据所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,所述虚拟数据页用于表示根据Redo日志进行重做后得到的数据页;根据待恢复的原始数据页的存储顺序,将每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。本发明实施例根据日志文件中的Redo日志在磁盘外部生成虚拟数据页,此过程中不需要访问磁盘,进而减少数据库恢复过程中磁盘的读次数。本发明中,能够根据虚拟数据页进行重做操作,避免在数据库恢复的过程中进行磁盘读操作,将磁盘读操作推迟到重做操作之后,进而提高磁盘数据的读操作的效率。
本发明实施例还提供了一种数据恢复的装置,作为对图12所述装置的进一步,如图13所示,所述装置还包括:确定单元1301、删除单元1302。
进一步的,所述获取单元1201还用于:
根据检查点确定日志的恢复起点,所述恢复起点用于表示需要恢复的第一条日志;
从所述恢复起点开始从日志文件中逐次顺序读取一条日志。
进一步的,所述确定单元1301,用于根据所述获取单元1201获取的所述至少一条日志中的每一条刷新日志中的全部记录所对应的虚拟数据页页头中的页号,将各页号的集合确定为页号集合;
所述删除单元1302,用于从已生成的虚拟数据页中,删除页号包含在所述确定单元1301确定的所述页号集合中的至少一个虚拟数据页。
进一步的,所述生成单元1202还用于:
当查找到与所述每一条Redo日志对应的虚拟数据页时,则根据所述每一条Redo日志对所述与所述该日志相对应的虚拟数据页进行重做,将重做的虚拟数据页确定为所述与该日志对应的虚拟数据页;
当未查找到与所述每一条Redo日志对应的虚拟数据页时,则根据所述每一条Redo日志构造与所述每一条Redo日志相对应的虚拟数据页。
进一步的,所述生成单元1202还用于:
根据所述每一条Redo日志调取与该日志相对应的原始数据页的模板;
在所述模板的页头中构造虚拟数据页标志位;
将所述每一条Redo日志的日志号、页大小、记录数目添加到所述页头中;
根据所述每一条Redo日志所记载的修改内容,在所述模板中生成与所述修改内容对应的虚拟记录和所述虚拟记录的偏移量,所述页头、虚拟记录和虚拟记录的偏移量构成所述与所述每一条Redo日志相对应的虚拟数据页。
进一步的,所述生成单元1202还用于:
根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位、虚拟字段标志位以及原始记录号,或者,根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位和原始记录号,其中,所述虚拟记录标志位用于表示每一条Redo记录为虚拟记录,所述字段标志位用于记录虚拟记录中被修改的字段,所述原始记录号用于表示原始数据页中与每一条Redo记录对应的记录号;
当所述每一条Redo日志用于修改字段数据是,则在所述虚拟数据页中生成与所述每一条Redo日志对应的至少一个字段数据,并将生成的全部字段数据合并,以得到与所述修改内容对应的虚拟记录,所述修改字段数据包括下述至少任意一种操作:添加字段数据、更改字段数据、删除字段数据。
进一步的,所述生成单元1202还用于包括:
根据每条Redo日志修改所述与所述该日志相对应的虚拟数据页的页头中的日志号;
根据所述每一条Redo日志修改所述与所述该日志相对应的虚拟数据页中的字段数据。
进一步的,所述合并单元1303还用于:
当所述日志文件中的全部Redo日志均已获取并处理完毕时,根据各虚拟数据页的页头中的日志号,从预设对应关系表中获取所述各虚拟数据页对应的各原始数据页的存储位置;
对所有存储位置进行顺序排序,得到原始数据页序列以及与之对应的虚拟数据页序列;
根据存储位置从原始数据页序列中,由近及远的读取至少一个原始数据页;
将所述至少一个原始数据页与虚拟数据页序列中与所述至少一个原始数据页对应的至少一个虚拟数据页进行合并,得到至少一个结果数据页,结果数据页为已恢复的原始数据页。
进一步的,所述合并单元1303还用于:
当每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号时,将所述每一个虚拟数据页替换为原始数据页,得到结果数据页;
当每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中包含有虚拟字段标志位时,根据虚拟记录中的原始记录号和所述虚拟字段标志位对字段数据进行替换,得到结果数据页;
当每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中未包含有虚拟字段标志位时,根据所述虚拟数据页中的虚拟记录中包含的原始记录号确定原始数据页中与所述原始记录号对应的原始记录,将没有字段数据的虚拟记录替换为所述原始记录,得到结果数据页。
此外,本发明实施例提供的数据恢复的装置,提供了构造虚拟数据页的具体步骤以及针对不同数据库的虚拟记录格式,能够实现对增量操作的准确表示,进而减少合并时的合并内容,进而加快数据恢复速度。对于非增量的虚拟记录格式,减少了虚拟字段标志位,进而减少虚拟数据页的存储空间。本发明实施例还提供了当已存在虚拟数据页则在该虚拟数据页的基础上进行重做的技术方案,由于数据重做的工作量小于构造虚拟数据页的工作量,因此能够加快数据恢复的速度。
此外,本发明实施例提供的数据恢复的装置,能够按照日志对应的原始数据页的存储位置进行磁盘读写操作,减少磁头的寻道时间,加快磁盘读写速度。在合并过程中,根据数据库支持增量更新情况的不同,对虚拟数据页进行不同的操作,达到适应不同数据库的效果。在合并时,只需要将虚拟数据页中没有填充数据的部分用原始数据页中的原始记录进行填充,即可得到结果数据页,能够加快数据库的恢复速度。
本发明实施例提供的数据恢复的装置,能够在当前日志的类型为刷新日志时,根据刷新日志的内容将,对已生成的虚拟数据页进行删减,进而减少后续合并的次数,进一步提高数据恢复的效率。此外,本发明实施例提供的数据恢复的装置,提供了构造虚拟数据页的具体步骤以及针对不同数据库的虚拟记录格式,能够实现对增量操作的准确表示,进而减少合并时的合并内容,进而加快数据恢复速度。对于非增量的虚拟记录格式,减少了虚拟字段标志位,进而减少虚拟数据页的存储空间。本发明实施例还提供了当已存在虚拟数据页则在该虚拟数据页的基础上进行重做的技术方案,由于数据重做的工作量小于构造虚拟数据页的工作量,因此能够加快数据恢复的速度。另外,本发明实施例提供的数据恢复的装置,能够按照日志对应的原始数据页的存储位置进行磁盘读写操作,减少磁头的寻道时间,加快磁盘读写速度。在合并过程中,根据数据库支持增量更新情况的不同,对虚拟数据页进行不同的操作,达到适应不同数据库的效果。在合并时,只需要将虚拟数据页中没有填充数据的部分用原始数据页中的原始记录进行填充,即可得到结果数据页,能够加快数据库的恢复速度。
本发明实施例还提供了一种数据恢复的装置,所述装置位于具有数据库管理功能的服务器中,如图14所示,所述装置包括:处理器1401和磁盘1402,所述磁盘1402中存储有与图1所示方法一致的程序文件,所述处理器1401从所述磁盘1402中读取该程序文件进行处理。所述磁盘1402为磁盘,还保存有原始数据页、日志文件以及存储位置与日志号的对一个关系表等信息。处理器1401在从磁盘中读取上述数据之后,在内存1403中逐次获取日志,生成虚拟数据页,最后在内存1403中进行合并得到结果数据页。处理器1401将结果数据页存储到磁盘,完成数据恢复操作。
所述处理器1401,用于从日志文件中的恢复起点获取至少一条日志;
根据所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,所述虚拟数据页用于表示根据Redo日志进行重做后得到的数据页;
根据待恢复的原始数据页的存储顺序,将每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。
本发明提供的数据恢复的装置,能够从日志文件中的恢复起点获取至少一条日志;根据所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,所述虚拟数据页用于表示根据Redo日志进行重做后得到的数据页;根据待恢复的原始数据页的存储顺序,将每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。本发明实施例根据日志文件中的Redo日志在磁盘外部生成虚拟数据页,此过程中不需要访问磁盘,进而减少数据库恢复过程中磁盘的读次数。本发明中,能够根据虚拟数据页进行重做操作,避免在数据库恢复的过程中进行磁盘读操作,将磁盘读操作推迟到重做操作之后,进而提高磁盘数据的读操作的效率。
进一步的,所述处理器1401还用于:
根据检查点确定日志的恢复起点,所述恢复起点用于表示需要恢复的第一条日志;
从所述恢复起点开始从日志文件中逐次顺序读取一条日志。
进一步的,所述处理器1401还用于:
根据所述至少一条日志中的每一条刷新日志中的全部记录所对应的虚拟数据页页头中的页号,将各页号的集合确定为页号集合;
从已生成的虚拟数据页中,删除页号包含在所述页号集合中的至少一个虚拟数据页。
进一步的,所述处理器1401还用于:
如果查找到与所述每一条Redo日志对应的虚拟数据页,则根据所述每一条Redo日志对所述与所述该日志相对应的虚拟数据页进行重做,将重做的虚拟数据页确定为所述与该日志对应的虚拟数据页;
如果未查找到与所述每一条Redo日志对应的虚拟数据页,则根据所述每一条Redo日志构造与所述每一条Redo日志相对应的虚拟数据页。
进一步的,所述处理器1401还用于:
根据所述每一条Redo日志调取与该日志相对应的原始数据页的模板;
在所述模板的页头中构造虚拟数据页标志位;
将所述每一条Redo日志的日志号、页大小、记录数目添加到所述页头中;
根据所述每一条Redo日志所记载的修改内容,在所述模板中生成与所述修改内容对应的虚拟记录和所述虚拟记录的偏移量,所述页头、虚拟记录和虚拟记录的偏移量构成所述与所述每一条Redo日志相对应的虚拟数据页。
进一步的,所述处理器1401还用于:
根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位、虚拟字段标志位以及原始记录号,或者,根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位和原始记录号,其中,所述虚拟记录标志位用于表示每一条Redo记录为虚拟记录,所述字段标志位用于记录虚拟记录中被修改的字段,所述原始记录号用于表示原始数据页中与每一条Redo记录对应的记录号;
如果所述每一条Redo日志用于修改字段数据,则在所述虚拟数据页中生成与所述每一条Redo日志对应的至少一个字段数据,并将生成的全部字段数据合并,以得到与所述修改内容对应的虚拟记录,所述修改字段数据包括下述至少任意一种操作:添加字段数据、更改字段数据、删除字段数据。
进一步的,所述处理器1401还用于:
根据每条Redo日志修改所述与所述该日志相对应的虚拟数据页的页头中的日志号;
根据所述每一条Redo日志修改所述与所述该日志相对应的虚拟数据页中的字段数据。
进一步的,所述处理器1401还用于:
如果所述日志文件中的全部Redo日志均已获取并处理完毕,则根据各虚拟数据页的页头中的日志号,从预设对应关系表中获取所述各虚拟数据页对应的各原始数据页的存储位置;
对所有存储位置进行顺序排序,得到原始数据页序列以及与之对应的虚拟数据页序列;
根据存储位置从原始数据页序列中,由近及远的读取至少一个原始数据页;
将所述至少一个原始数据页与虚拟数据页序列中与所述至少一个原始数据页对应的至少一个虚拟数据页进行合并,得到至少一个结果数据页,结果数据页为已恢复的原始数据页。
进一步的,所述处理器1401还用于:
如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,则将所述每一个虚拟数据页替换为原始数据页,得到结果数据页;
如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中包含有虚拟字段标志位,则根据虚拟记录中的原始记录号和所述虚拟字段标志位对字段数据进行替换,得到结果数据页;
如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中未包含有虚拟字段标志位,则根据所述虚拟数据页中的虚拟记录中包含的原始记录号确定原始数据页中与所述原始记录号对应的原始记录,将没有字段数据的虚拟记录替换为所述原始记录,得到结果数据页。
本发明实施例提供的数据恢复的装置,处理器1401能够在当前日志的类型为刷新日志时,根据刷新日志的内容将,对已生成的虚拟数据页进行删减,进而减少后续合并的次数,进一步提高数据恢复的效率。
此外,本发明实施例提供的数据恢复的装置,提供了构造虚拟数据页的具体步骤以及针对不同数据库的虚拟记录格式,能够实现对增量操作的准确表示,进而减少合并时的合并内容,进而加快数据恢复速度。对于非增量的虚拟记录格式,减少了虚拟字段标志位,进而减少虚拟数据页的存储空间。本发明实施例还提供了当已存在虚拟数据页则在该虚拟数据页的基础上进行重做的技术方案,由于数据重做的工作量小于构造虚拟数据页的工作量,因此能够加快数据恢复的速度。
此外,本发明实施例提供的数据恢复的装置,能够按照日志对应的原始数据页的存储位置进行磁盘读写操作,减少磁头的寻道时间,加快磁盘读写速度。在合并过程中,根据数据库支持增量更新情况的不同,对虚拟数据页进行不同的操作,达到适应不同数据库的效果。在合并时,只需要将虚拟数据页中没有填充数据的部分用原始数据页中的原始记录进行填充,即可得到结果数据页,能够加快数据库的恢复速度。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种数据恢复的方法,其特征在于,包括:
从日志文件中的恢复起点获取至少一条日志;
根据所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,所述虚拟数据页用于表示根据Redo日志进行重做后得到的数据页;
根据待恢复的原始数据页的存储顺序,将每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。
2.根据权利要求1所述的数据恢复的方法,其特征在于,所述从日志文件中的恢复起点获取至少一条日志,包括:
根据检查点确定日志的恢复起点,所述恢复起点用于表示需要恢复的第一条日志;
从所述恢复起点开始从日志文件中逐次顺序读取一条日志。
3.根据权利要求2所述的数据恢复的方法,其特征在于,所述方法还包括:
根据所述至少一条日志中的每一条刷新日志中的全部记录所对应的虚拟数据页页头中的页号,将各页号的集合确定为页号集合;
从已生成的虚拟数据页中,删除页号包含在所述页号集合中的至少一个虚拟数据页。
4.根据权利要求2所述的数据恢复的方法,其特征在于,所述根据所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,包括:
如果查找到与所述每一条Redo日志对应的虚拟数据页,则根据所述每一条Redo日志对所述与所述该日志相对应的虚拟数据页进行重做,将重做的虚拟数据页确定为所述与该日志对应的虚拟数据页;
如果未查找到与所述每一条Redo日志对应的虚拟数据页,则根据所述每一条Redo日志构造与所述每一条Redo日志相对应的虚拟数据页。
5.根据权利要求4所述的数据恢复的方法,其特征在于,所述根据所述每一条Redo日志构造与所述每一条Redo日志相对应的虚拟数据页,包括:
根据所述每一条Redo日志调取与该日志相对应的原始数据页的模板;
在所述模板的页头中构造虚拟数据页标志位;
将所述每一条Redo日志的日志号、页大小、记录数目添加到所述页头中;
根据所述每一条Redo日志所记载的修改内容,在所述模板中生成与所述修改内容对应的虚拟记录和所述虚拟记录的偏移量,所述页头、虚拟记录和虚拟记录的偏移量构成所述与所述每一条Redo日志相对应的虚拟数据页。
6.根据权利要求5所述的数据恢复的方法,其特征在于,所述根据所述每一条Redo日志所记载的修改内容,在所述模板中生成与所述修改内容对应的虚拟记录,具体包括:
根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位、虚拟字段标志位以及原始记录号,或者,根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位和原始记录号,其中,所述虚拟记录标志位用于表示每一条Redo记录为虚拟记录,所述字段标志位用于记录虚拟记录中被修改的字段,所述原始记录号用于表示原始数据页中与每一条Redo记录对应的记录号;
如果所述每一条Redo日志用于修改字段数据,则在所述虚拟数据页中生成与所述每一条Redo日志对应的至少一个字段数据,并将生成的全部字段数据合并,以得到与所述修改内容对应的虚拟记录,所述修改字段数据包括下述至少任意一种操作:添加字段数据、更改字段数据、删除字段数据。
7.根据权利要求4所述的数据恢复的方法,其特征在于,所述根据所述每一条Redo日志对所述与所述该日志相对应的虚拟数据页进行重做,包括:
根据每条Redo日志修改所述与所述该日志相对应的虚拟数据页的页头中的日志号;
根据所述每一条Redo日志修改所述与所述该日志相对应的虚拟数据页中的字段数据。
8.根据权利要求5所述的数据恢复的方法,其特征在于,所述根据待恢复的原始数据页的存储顺序,将每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页,包括:
如果所述日志文件中的全部Redo日志均已获取并处理完毕,则根据各虚拟数据页的页头中的日志号,从预设对应关系表中获取所述各虚拟数据页对应的各原始数据页的存储位置;
对所有存储位置进行顺序排序,得到原始数据页序列以及与之对应的虚拟数据页序列;
根据存储位置从原始数据页序列中,由近及远的读取至少一个原始数据页;
将所述至少一个原始数据页与虚拟数据页序列中与所述至少一个原始数据页对应的至少一个虚拟数据页进行合并,得到至少一个结果数据页,结果数据页为已恢复的原始数据页。
9.根据权利要求8所述的数据恢复的方法,其特征在于,所述将所述至少一个原始数据页与虚拟数据页序列中与所述至少一个原始数据页对应的至少一个虚拟数据页进行合并,包括:
如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,则将所述每一个虚拟数据页替换为原始数据页,得到结果数据页;
如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中包含有虚拟字段标志位,则根据虚拟记录中的原始记录号和所述虚拟字段标志位对字段数据进行替换,得到结果数据页;
如果每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中未包含有虚拟字段标志位,则根据所述虚拟数据页中的虚拟记录中包含的原始记录号确定原始数据页中与所述原始记录号对应的原始记录,将没有字段数据的虚拟记录替换为所述原始记录,得到结果数据页。
10.根据权利要求5所述的数据恢复的方法,其特征在于,所述虚拟记录的长度不大于原始数据页理论最小长度。
11.一种数据恢复的装置,其特征在于,包括:
获取单元,用于从日志文件中的恢复起点获取至少一条日志;
生成单元,用于根据所述获取单元获取的所述至少一条日志中的每一条Redo日志,生成一个虚拟数据页,所述虚拟数据页用于表示根据Redo日志进行重做后得到的数据页;
合并单元,用于根据待恢复的原始数据页的存储顺序,将所述生成单元生成的每个虚拟数据页与磁盘中对应的一个待恢复的原始数据页进行合并,得到恢复后的原始数据页。
12.根据权利要求11所述的数据恢复的装置,其特征在于,所述获取单元还用于:
根据检查点确定日志的恢复起点,所述恢复起点用于表示需要恢复的第一条日志;
从所述恢复起点开始从日志文件中逐次顺序读取一条日志。
13.根据权利要求12所述的数据恢复的装置,其特征在于,所述装置还包括:
确定单元,用于根据所述获取单元获取的所述至少一条日志中的每一条刷新日志中的全部记录所对应的虚拟数据页页头中的页号,将各页号的集合确定为页号集合;
删除单元,用于从已生成的虚拟数据页中,删除页号包含在所述确定单元确定的所述页号集合中的至少一个虚拟数据页。
14.根据权利要求12所述的数据恢复的装置,其特征在于,所述生成单元还用于:
当查找到与所述每一条Redo日志对应的虚拟数据页时,则根据所述每一条Redo日志对所述与所述该日志相对应的虚拟数据页进行重做,将重做的虚拟数据页确定为所述与该日志对应的虚拟数据页;
当未查找到与所述每一条Redo日志对应的虚拟数据页时,则根据所述每一条Redo日志构造与所述每一条Redo日志相对应的虚拟数据页。
15.根据权利要求14所述的数据恢复的装置,其特征在于,所述生成单元还用于:
根据所述每一条Redo日志调取与该日志相对应的原始数据页的模板;
在所述模板的页头中构造虚拟数据页标志位;
将所述每一条Redo日志的日志号、页大小、记录数目添加到所述页头中;
根据所述每一条Redo日志所记载的修改内容,在所述模板中生成与所述修改内容对应的虚拟记录和所述虚拟记录的偏移量,所述页头、虚拟记录和虚拟记录的偏移量构成所述与所述每一条Redo日志相对应的虚拟数据页。
16.根据权利要求15所述的数据恢复的装置,其特征在于,所述生成单元还用于:
根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位、虚拟字段标志位以及原始记录号,或者,根据所述每一条Redo日志所记载的修改内容,在所述每一条Redo日志对应的数据页模板中构造虚拟记录标志位和原始记录号,其中,所述虚拟记录标志位用于表示每一条Redo记录为虚拟记录,所述字段标志位用于记录虚拟记录中被修改的字段,所述原始记录号用于表示原始数据页中与每一条Redo记录对应的记录号;
当所述每一条Redo日志用于修改字段数据是,则在所述虚拟数据页中生成与所述每一条Redo日志对应的至少一个字段数据,并将生成的全部字段数据合并,以得到与所述修改内容对应的虚拟记录,所述修改字段数据包括下述至少任意一种操作:添加字段数据、更改字段数据、删除字段数据。
17.根据权利要求14所述的数据恢复的装置,其特征在于,所述生成单元还用于包括:
根据每条Redo日志修改所述与所述该日志相对应的虚拟数据页的页头中的日志号;
根据所述每一条Redo日志修改所述与所述该日志相对应的虚拟数据页中的字段数据。
18.根据权利要求15所述的数据恢复的装置,其特征在于,所述合并单元还用于:
当所述日志文件中的全部Redo日志均已获取并处理完毕时,根据各虚拟数据页的页头中的日志号,从预设对应关系表中获取所述各虚拟数据页对应的各原始数据页的存储位置;
对所有存储位置进行顺序排序,得到原始数据页序列以及与之对应的虚拟数据页序列;
根据存储位置从原始数据页序列中,由近及远的读取至少一个原始数据页;
将所述至少一个原始数据页与虚拟数据页序列中与所述至少一个原始数据页对应的至少一个虚拟数据页进行合并,得到至少一个结果数据页,结果数据页为已恢复的原始数据页。
19.根据权利要求18所述的数据恢复的装置,其特征在于,所述合并单元还用于:
当每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号时,将所述每一个虚拟数据页替换为原始数据页,得到结果数据页;
当每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中包含有虚拟字段标志位时,根据虚拟记录中的原始记录号和所述虚拟字段标志位对字段数据进行替换,得到结果数据页;
当每一个虚拟数据页对应的日志号不大于原始数据页对应的日志号,且所述每一个虚拟数据页的虚拟记录中未包含有虚拟字段标志位时,根据所述虚拟数据页中的虚拟记录中包含的原始记录号确定原始数据页中与所述原始记录号对应的原始记录,将没有字段数据的虚拟记录替换为所述原始记录,得到结果数据页。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310356094.1A CN103412803B (zh) | 2013-08-15 | 2013-08-15 | 数据恢复的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310356094.1A CN103412803B (zh) | 2013-08-15 | 2013-08-15 | 数据恢复的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103412803A true CN103412803A (zh) | 2013-11-27 |
CN103412803B CN103412803B (zh) | 2016-08-10 |
Family
ID=49605816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310356094.1A Active CN103412803B (zh) | 2013-08-15 | 2013-08-15 | 数据恢复的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103412803B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617277A (zh) * | 2013-12-09 | 2014-03-05 | 山东瀚高基础软件股份有限公司 | 一种还原误删除的数据表内容的方法 |
CN103678608A (zh) * | 2013-12-16 | 2014-03-26 | 华为技术有限公司 | 日志管理方法和装置 |
CN103744939A (zh) * | 2013-12-31 | 2014-04-23 | 华为技术有限公司 | 一种日志的记录方法、日志的恢复方法及日志管理器 |
CN104715041A (zh) * | 2015-03-24 | 2015-06-17 | 深圳市乾华数据科技有限公司 | 一种数据库恢复方法及系统 |
CN106250496A (zh) * | 2016-08-02 | 2016-12-21 | 北京集奥聚合科技有限公司 | 一种日志文件中的数据收集的方法及系统 |
CN106484834A (zh) * | 2016-09-30 | 2017-03-08 | 郑州云海信息技术有限公司 | 分布式文件系统用户配额数据保存方法、系统及服务器 |
CN106599006A (zh) * | 2015-10-20 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种数据恢复方法和装置 |
CN106610876A (zh) * | 2015-10-23 | 2017-05-03 | 中兴通讯股份有限公司 | 数据快照的恢复方法及装置 |
WO2017114263A1 (en) * | 2015-12-28 | 2017-07-06 | Huawei Technologies Co., Ltd. | System, apparatus and method for avoiding data loss on recovery of bulk load |
CN107204991A (zh) * | 2017-07-06 | 2017-09-26 | 深信服科技股份有限公司 | 一种服务器异常检测方法及系统 |
CN108664359A (zh) * | 2018-05-23 | 2018-10-16 | 上海达梦数据库有限公司 | 一种数据库恢复方法、装置、设备及存储介质 |
CN109271277A (zh) * | 2017-07-17 | 2019-01-25 | 阿里巴巴集团控股有限公司 | 数据库宕机后的访问方法、装置和系统 |
CN110442560A (zh) * | 2019-08-14 | 2019-11-12 | 上海达梦数据库有限公司 | 一种日志重演方法、装置、服务器和存储介质 |
CN111324665A (zh) * | 2020-01-23 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 一种日志回放方法及装置 |
CN112015586A (zh) * | 2019-05-28 | 2020-12-01 | 华为技术有限公司 | 一种数据重构计算的方法以及相关装置 |
CN112612648A (zh) * | 2020-12-29 | 2021-04-06 | 厦门市美亚柏科信息股份有限公司 | 一种SQL Server数据库恢复方法、终端设备及存储介质 |
WO2021093323A1 (zh) * | 2019-11-12 | 2021-05-20 | 华为技术有限公司 | 数据恢复方法及系统、数据存储节点、数据库管理节点 |
CN117873405A (zh) * | 2024-03-11 | 2024-04-12 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080086516A1 (en) * | 2006-10-04 | 2008-04-10 | Oracle International | Automatically changing a database system's redo transport mode to dynamically adapt to changing workload and network conditions |
CN102945278A (zh) * | 2012-11-09 | 2013-02-27 | 华为技术有限公司 | 一种数据库记录重做日志的方法和装置 |
CN103064761A (zh) * | 2012-12-24 | 2013-04-24 | 华为技术有限公司 | 一种数据同步方法、设备和系统 |
-
2013
- 2013-08-15 CN CN201310356094.1A patent/CN103412803B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080086516A1 (en) * | 2006-10-04 | 2008-04-10 | Oracle International | Automatically changing a database system's redo transport mode to dynamically adapt to changing workload and network conditions |
CN102945278A (zh) * | 2012-11-09 | 2013-02-27 | 华为技术有限公司 | 一种数据库记录重做日志的方法和装置 |
CN103064761A (zh) * | 2012-12-24 | 2013-04-24 | 华为技术有限公司 | 一种数据同步方法、设备和系统 |
Non-Patent Citations (1)
Title |
---|
胡君等: "oracle重做日志机制分析", 《电脑与信息技术》 * |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617277A (zh) * | 2013-12-09 | 2014-03-05 | 山东瀚高基础软件股份有限公司 | 一种还原误删除的数据表内容的方法 |
CN103678608A (zh) * | 2013-12-16 | 2014-03-26 | 华为技术有限公司 | 日志管理方法和装置 |
CN103678608B (zh) * | 2013-12-16 | 2017-10-17 | 华为技术有限公司 | 日志管理方法和装置 |
CN103744939A (zh) * | 2013-12-31 | 2014-04-23 | 华为技术有限公司 | 一种日志的记录方法、日志的恢复方法及日志管理器 |
CN104715041A (zh) * | 2015-03-24 | 2015-06-17 | 深圳市乾华数据科技有限公司 | 一种数据库恢复方法及系统 |
CN104715041B (zh) * | 2015-03-24 | 2018-09-14 | 深圳市乾华数据科技有限公司 | 一种数据库恢复方法及系统 |
CN106599006A (zh) * | 2015-10-20 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种数据恢复方法和装置 |
CN106599006B (zh) * | 2015-10-20 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 一种数据恢复方法和装置 |
CN106610876B (zh) * | 2015-10-23 | 2020-11-03 | 中兴通讯股份有限公司 | 数据快照的恢复方法及装置 |
CN106610876A (zh) * | 2015-10-23 | 2017-05-03 | 中兴通讯股份有限公司 | 数据快照的恢复方法及装置 |
WO2017114263A1 (en) * | 2015-12-28 | 2017-07-06 | Huawei Technologies Co., Ltd. | System, apparatus and method for avoiding data loss on recovery of bulk load |
CN106250496A (zh) * | 2016-08-02 | 2016-12-21 | 北京集奥聚合科技有限公司 | 一种日志文件中的数据收集的方法及系统 |
CN106484834A (zh) * | 2016-09-30 | 2017-03-08 | 郑州云海信息技术有限公司 | 分布式文件系统用户配额数据保存方法、系统及服务器 |
CN106484834B (zh) * | 2016-09-30 | 2020-02-07 | 苏州浪潮智能科技有限公司 | 分布式文件系统用户配额数据保存方法、系统及服务器 |
CN107204991A (zh) * | 2017-07-06 | 2017-09-26 | 深信服科技股份有限公司 | 一种服务器异常检测方法及系统 |
CN109271277A (zh) * | 2017-07-17 | 2019-01-25 | 阿里巴巴集团控股有限公司 | 数据库宕机后的访问方法、装置和系统 |
CN109271277B (zh) * | 2017-07-17 | 2022-03-08 | 阿里巴巴集团控股有限公司 | 数据库宕机后的访问方法、装置和系统 |
CN108664359A (zh) * | 2018-05-23 | 2018-10-16 | 上海达梦数据库有限公司 | 一种数据库恢复方法、装置、设备及存储介质 |
CN108664359B (zh) * | 2018-05-23 | 2020-12-29 | 上海达梦数据库有限公司 | 一种数据库恢复方法、装置、设备及存储介质 |
CN112015586B (zh) * | 2019-05-28 | 2024-04-26 | 华为云计算技术有限公司 | 一种数据重构计算的方法以及相关装置 |
CN112015586A (zh) * | 2019-05-28 | 2020-12-01 | 华为技术有限公司 | 一种数据重构计算的方法以及相关装置 |
CN110442560A (zh) * | 2019-08-14 | 2019-11-12 | 上海达梦数据库有限公司 | 一种日志重演方法、装置、服务器和存储介质 |
CN110442560B (zh) * | 2019-08-14 | 2022-03-08 | 上海达梦数据库有限公司 | 一种日志重演方法、装置、服务器和存储介质 |
WO2021093323A1 (zh) * | 2019-11-12 | 2021-05-20 | 华为技术有限公司 | 数据恢复方法及系统、数据存储节点、数据库管理节点 |
CN111324665B (zh) * | 2020-01-23 | 2023-06-27 | 阿里巴巴集团控股有限公司 | 一种日志回放方法及装置 |
CN111324665A (zh) * | 2020-01-23 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 一种日志回放方法及装置 |
CN112612648A (zh) * | 2020-12-29 | 2021-04-06 | 厦门市美亚柏科信息股份有限公司 | 一种SQL Server数据库恢复方法、终端设备及存储介质 |
CN112612648B (zh) * | 2020-12-29 | 2022-11-08 | 厦门市美亚柏科信息股份有限公司 | 一种SQL Server数据库恢复方法、终端设备及存储介质 |
CN117873405A (zh) * | 2024-03-11 | 2024-04-12 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103412803B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103412803A (zh) | 数据恢复的方法及装置 | |
KR101644125B1 (ko) | 비휘발성 메모리를 이용한 로깅 최적화 장치 및 방법 | |
CA2549917C (en) | File system storing transaction records in a storage media | |
US8959125B2 (en) | File system having inverted hierarchical structure | |
US7873683B2 (en) | File system having transaction record coalescing | |
US7809777B2 (en) | File system having deferred verification of data integrity | |
CA2818472C (en) | Optimized startup verification of file system integrity | |
US7650354B2 (en) | System, method, and program for checking index consistency in database | |
CN102541757B (zh) | 写缓存方法、缓存同步方法和装置 | |
CN102750317B (zh) | 数据持久化处理方法、装置及数据库系统 | |
CN103262043A (zh) | 从差异备份中执行数据库的精细恢复的方法和系统 | |
CN103744936A (zh) | 一种数据库中的多版本并发控制方法及数据库系统 | |
CN102541691B (zh) | 面向内存数据库oltp应用的日志检查点恢复方法 | |
CN107665219B (zh) | 一种日志管理方法及装置 | |
CN103106286A (zh) | 元数据的管理方法和装置 | |
WO2015093026A1 (ja) | 書き込み情報記憶装置、方法、及び、記録媒体 | |
EP0984369A2 (en) | Time-versioned data storage mechanism | |
CN110096509A (zh) | 大数据环境下实现历史数据拉链表存储建模处理的系统及方法 | |
CN103473298A (zh) | 数据归档方法和装置以及存储系统 | |
KR20110046118A (ko) | 적응적 로깅 장치 및 방법 | |
CN102043853A (zh) | 一种存储数据的更新方法和装置 | |
CN107133334A (zh) | 基于高带宽存储系统的数据同步方法 | |
CN102929976B (zh) | 备份数据访问方法及装置 | |
CN115086757B (zh) | 一种历史剪辑操作的回撤方法、装置、设备及存储介质 | |
CN103177085A (zh) | 一种检查点操作方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220217 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |