发明名称 一种基于闪存的数据库恢复方法
摘要 本发明涉及一种基于闪存的数据库恢复方法,其特征在于:它包括一内存、一闪存、一检查点管理模块、一系统启动模块和一系统关闭模块,内存中存储有数据页缓冲区、日志缓冲区和日志区摘要;闪存中存储有日志区、数据区、页表和用来标识闪存空间分配状况的位示图;检查点管理模块在日志区中设立检查点;系统启动模块启动时需要扫描日志区,将获得的日志和数据进行合并;系统关闭模块启动时需要在日志区中插入一系列日志,同时进行一系列的操作来完成系统关闭;日志缓冲区记录一部分日志,并把日志刷写到闪存上。本发明能减少对闪存的擦除,并充分发挥闪存的优越性。本发明可以广泛应用于系统数据库的恢复中。
申请公布号 CN102012849B 申请公布日期 2012.10.24
申请号 CN201010552789.3 申请日期 2010.11.19
申请人 中国人民大学 发明人 孟小峰;向锂;范玉雷
分类号 G06F11/14(2006.01)I 主分类号 G06F11/14(2006.01)I
代理机构 北京纪凯知识产权代理有限公司 11245 代理人 徐宁;关畅
主权项 一种基于闪存的数据库恢复方法,其特征在于:它包括一内存、一闪存、一检查点管理模块、一系统启动模块和一系统关闭模块,所述内存中存储有数据页缓冲区、日志缓冲区和日志区摘要;所述闪存中存储有日志区、数据区、页表和用来标识所述闪存空间分配状况的位示图;所述检查点管理模块在所述日志区中设立检查点;所述系统启动模块启动时需要扫描所述日志区,将获得的日志和数据进行合并;所述系统关闭模块启动时需要在所述日志区中插入一系列日志,同时进行一系列的操作来完成系统关闭;所述日志缓冲区记录一部分日志,并把日志刷写到所述闪存上;所述检查点管理模块的检查点的建立步骤如下;(1)在日志区中插入一条记录<检查点编号,活动事务列表,开始>来标志这个检查点的开始;(2)等活动事务列表里面的所有活跃事务都已经显式提交或者撤销之后,插入另外一条记录<检查点编号,结束>到日志区中,标志着该检查点的正常结束;所述系统启动模块的启动过程如下:(1)检查日志区的尾部,判断是否有标志正常关机的检查点结束记录<检查点编号,结束>存在;若无该条记录,则判断在关机检查点的活跃事务列表中是否存在提交或者撤销的事务,存在则在日志区的尾部添加一条<事务编号,放弃>记录来显式撤销该事务,然后再插入<检查点编号,结束>记录来标志该检查点的结束;相反,则直接插入<检查点编号,结束>记录来标志该检查点的结束;(2)扫描日志区,在内存中重建日志区摘要;所述系统关闭模块启动时的步骤如下:(1)插入标志检查点开始的记录<检查点编号,活动事务列表,开始>,开始系统关闭操作;(2)将数据页缓冲区的数据扫出到闪存的数据区内,并添加相关的日志记录到日志缓冲区中;(3)将页表日志区的日志记录扫出到闪存的日志区中;(4)插入标志检查点结束的记录<检查点编号,结束>。
地址 100872 北京市海淀区中关村大街59号信息学院