欢迎来到天天文库
浏览记录
ID:43883965
大小:35.55 KB
页数:7页
时间:2019-10-16
《基于数据库空间实时内存恢复机制探究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于数据库空间实时内存恢复机制探究摘要:为了能够满足于内存空间的实际应用对于数据操作管理的实时性与可靠性程度,对于Swallow空间的实时内存数据库进行数据库恢复机制的分析与设计,通过使用日志驱动修改操作、影子页面处理与模糊点检测等各方面的思想能够很好地达到内存数据库数据信息与日志迅速备份和在实际内存空间数据库产生任务故障与系统故障情况下实行恢复策略的目的。关键词:内存数据库实时数据库数据库恢复中图分类号:TP311.1文献标识码:A文章编号:1007-9416(2013)04-0079-021引言内存空间的实际应用对于数据操作管理的实时性与可靠性程度带来较好的作用。传统模式的数据库
2、主要在于执行长久稳定数据信息的操作处理,不能很好地满足于当前阶段实时应用操作的实际需求,然而内存数据库因为其相应的工作版本一般都存放与内存空间中,全部数据的存取与管理操作在内存空间中实行,相应的访问速度相对于传统模式数据库高出1-2个数量级,所以对于实时性的具体要求较高的内存空间数据操作管理系统是一个很好的抉择。因为内存空间具有易失性的相关特点,内存空间数据库应当在磁盘或者其它具有非易失性的存储器中实行保存备份,从而能够防止操作程序发生错误与系统掉电等各种系统问题故障引起数据损坏与丢失的后果。然而备份操作所需使用的许多磁盘I/O处理操作都会影响到系统效率,所以具有高效特性的恢复策略是
3、作为内存空间数据库的关键技术部分。当前阶段下应用较为广泛的是应用基于日志与检查点的方式来实现内存空间数据库恢复处理。为了能够减少日志的相关数量,一般使用本地更新的形式来实信对数据处理操作,记录日志的过程时不但需要对被修改数据后像进行相应的记录工作,即为Redo0志,同时应当减少系统恢复所需要使用的日志数量,使用检查点将会MMDB备份到磁盘。2恢复模型的介绍Swallow的主要组成模块分为任务管理器、内存池空间页面管理器、数据存储管理模块与数据恢复模块等。在内存空间中的数据是以分页的形式而存在的,经过内存池空间页面管理器的作用能够实现管理与维护操作的统一,在这基础之上提供了数据库多种类
4、型的常用接口,同时实际的页面管理器会对于一个页表进行维护,记录着由上次检查点到被实现更新后的操作页面。系统是经过多线程的作用来对多个任务的并发操作实现支持,并且由事务管理器处于系统中实现一个事务信息表的维护工作,每当系统成功接收到一个新的任务线程,都会在相关的任务信息表里进行相关数据信息的记录。数据存储管理模块应当负责MMDB与磁盘数据库文件的数据信息交换处理工作。数据恢复模块应当包含全局日志的写入操作,检查点的实行与故障之后的系统恢复操作,Swallow的数据恢复模型如图1所示。任务对于MMDB的修改操作是根据相应的日志进行驱动的,对于某一个具体任务要对在MMDB中的相关页面实行更
5、新操作处理时,并不能够直接对于MMDB实行修改,只能够将其Redo日志记录于其相对应的私有日志区域内,当任务进入到提交阶段时,把其相对应的私有日志送入到全局日志缓冲区域,写日志线程以定期形式把全局日志缓冲区域刷新写入到磁盘相应的日志文件中,任务提交完成后由相关的页面管理器根据日志对于MMDB实行相应的修改处理。3重要的数据结构与算法3.1数据结构(1)页表,在MMDB中对于每一个具体页面都有相应的一个外页头,其存储着此页的有关数据信息,内存空间池页面管理器能够经过外页头的作用来实现对页面的组织处理。位于页表中的全部页面都会在下一次检测点的时候刷入磁盘相应的数据库文件。(2)任务数据信
6、息表,任务管理器对于每一个新接收到的具体任务都会加入到任务数据信息表中,从表中能够记录了任务相应的标识号TransID^事务状态标识TransState与日志头指针,日志头指针是指向于任务的私有日志。(1)任务私有日志,任务的日志分为3种类型,任务开始、Redo节点与任务提交。在TransBe-ginLog中记录相关任务的ID号与日志的长度(LogLength);在TransCommitLog中记录了相关任务完成时的时间戳。(2)全局日志缓冲,全局日志作为一个临界区的资源,提交相关的任务线程对于其实行同步访问具有重要意义。任务把私有日志挂载入全局日志链的过程时应当需要先获得其相应的写
7、锁,不同类型的任务根据提交时的先后次序把私有日志链挂载进入到全局日志链的环节上,这能够充分保证数据库状态操作的一致性。如果日志缓冲达到一定数量程度或者检查点线程通知即将要执行下一个检查点时,写日志线程把全局日志缓冲写入到磁盘中。3.2任务执行算法本系统使用了日志驱动修改操作的方法来实现内存空间数据库页面的相关更新处理操作。对于需要进行更新的数据库页面,任务在提交处理前不能够进行直接的修改,应当把全部的更新操作处理都记录于私有日志中。如果任务能够成功地提交,
此文档下载收益归作者所有