网站大量收购独家精品文档,联系QQ:2885784924

第11章 数据库恢复技术.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
具体步骤 (1)装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到最近一次转储时的一致性状态。 对于动态转储的数据库副本,还需同时装入转储开始时刻的日志文件副本,利用恢复系统故障的方法(即REDO+UNDO),才能将数据库恢复到一致性状态。 (2)装入相应的日志文件副本(转储结束时刻的日志文件副本),重做已完成的事务。 即:首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列; 然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。 这样就可以将数据库恢复至故障前某一时刻的一致状态了。 介质故障的恢复需要DBA介入。 11.5 具有检查点的恢复技术 利用日志技术进行数据库恢复时,恢复子系统必须搜索日志,确定哪些事务需要REDO,哪些事务需要UNDO。一般来说,需要检查所有日志记录,这样做有两个问题: (1)搜索整个日志将耗费大量时间; (2)很多需要REDO处理的事务实际上已经将它们的更新操作结果写到数据库中了,然而恢复子系统又重新执行了这些操作,浪费大量时间。 为了解决这些问题,又发展了具有检查点的恢复技术。 基本方法: (1)在日志文件中增加一类新的记录—检查点(checkpoint)记录; (2)增加一个重新开始文件, 记录各个检查点记录在日志文件中的地址。 恢复子系统在登录日志文件期间动态地维护日志。 检查点记录的内容: ① 建立检查点时刻所有正在执行的事务清单; ② 这些事务最近一个日志记录的地址。 动态维护日志文件的方法 周期性地执行如下操作: 1. 建立检查点; 2. 保存数库状态。 具体步骤: ①将当前日志缓冲区中的所有日志记录写入磁盘的日志文件; ②在日志文件中写入一个检查点记录; ③将当前数据缓冲的所有数据记录写入数据库中; ④把检查点记录在日志文件中的地址写入重新开始文件。 系统使用检查点方法进行恢复的步骤 ①从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。 ②由该检查点记录得到检查点建立时刻所有正在执行的事务清单 ACTIVE-LIST; 建立两个事务队列: .UNDO-LIST:需要执行UNDO操作的事务集合; .REDO-LIST:需要执行REDO操作的事务集合; 对于ACTIVE-LISTLIST队列,执行如下操作: ③从检查点开始正向扫描日志文件: .如有新开始的事务Ti,则将Ti暂时放在UNDO-LIST队列; .如有提交的事务Tj,则将Tj 从UNDO-LIST队列移到REDO-LIST队列,直到日志文件结束。 ④对UNDO-LIST中的每个事务执行UNDO操作,对REDO-LIST中的每个事务执行REDO操作。 11.6 数据库镜像 为避免磁盘介质出现故障影响数据库的可用性,许多数据库管理系统提供了数据库镜像(Mirror)功能用于数据库恢复。 (1)根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上; (2)每当主数据库更新时,DBMS自动把更新后的数据复制过去,保证镜像数据与主数据的一致性; (3)一旦出现介质故障,DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。 当没有故障时,数据库镜像还可以用于并发操作,即当一个用户对数据加排它锁修改数据时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放。 第11章 数据库恢复技术 11.1 事务的基本概念 1.事务的概念 事务是用户定义的不可分割的一系列数据库操作,这些操作要么全做,要么全不做。 事务是数据库应用程序的基本逻辑单元。 事务处理技术:主要包括数据库恢复技术和并发控制技术。 数据库恢复机制和并发控制机制是数据库管理系统的重要组成部分。 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句序列或整个程序。 事务的开始与结束可以由用户显式控制。如果用户没有显式地定义事务则由DBMS按缺省规定自动划分事务(隐式事务)。 在SQL语言中,定义事务的语句有: BEGIN TRANSACTION 定义事务开始

文档评论(0)

love + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档