数据库原理 (全套完整课件)_精品课件.ppt

  1. 1、本文档共465页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 数据库系统 * 2、日志文件和恢复 日志(log):用来记录对数据库的更新操作的文件。 动态转储方式必须建立日志文件 静态转储方式最好建立日志文件 日志文件的格式和内容 以记录为单位的日志文件 系统把 事务开始(BEGIN TRANSANCTION) 事务提交(COMMIT)或 事务撤消(ROLLBACK) 对数据库的插入、删除、修改等 每一个操作作为一条记录存放到日志文件中 * 数据库系统 * 事务标识(哪个事务) 操作类型(插删改) 操作对象(哪条记录) 更新前数据的旧值 更新后数据的新值 每条日志记录的主要内容 对插入此项为空 对删除此项为空 以数据块为单位的日志文件 将事务标识及更新前后的数据块均放在日志文件中。 日志文件的作用 静态转储:数据库毁坏后,重装后援副本,根据日志文件,重做已完成的事务,并撤消未完成的事务。 动态转储:用后援副本和日志文件综合起来恢复数据库 * 数据库系统 * 日志超前写规则 写数据库和写日志文件是两个不同的操作,在这两个操作之间有可能发生故障,若先写数据库数据,再写日志的话,万一在写日志前发生故障,则这次的数据库修改未登记,从而不能恢复。若写日志后发生故障而未修改数据库,则事务一定未完成,在恢复时会执行撤消处理。 登记日志文件 原则:严格按并发事务执行的时间次序登记; 先写日志文件,后写数据库。 如:欲将数据库中某记录字段的值由5改为8,登记日志文件后发生故障,则字段值仍为5,日志中不会登记该事务的COMMIT或ROLLBACK记录,事务未完成,恢复时对该操作做撤消处理,将字段值改为该修改操作的旧值5,数据库内容不变。 * 数据库系统 * §4 恢复策略 利用日志文件进行恢复 基本策略: 对于尚未提交的事务,执行撤消处理(UNDO) 对于已经提交的事务,执行重做处理(REDO) 基本方法: 扫描日志文件,确定所有已开始但尚未提交的事务 (对它们需UNDO),再确定所有已提交的事务 (对它们需REDO) 发生故障时,利用数据库后援副本和日志文件可以将数据库恢复到某个一致性状态,但不同故障的恢复策略和方法是不一样的。 * 数据库系统 * UNDO处理:若事务提交前出现异常,则对已执行的操作 进行撤消处理,使数据库恢复到该事务开始前的状态。 具体做法是:反向扫描日志文件,对每个需UNDO的 事务的更新操作执行反操作。即对已插入的记录执行 删除,对已删除的记录重新插入,对已修改的记录用 旧值代替新值。 UNDO处理是维护事务的原子性所必须的 REDO处理:重做已提交事务的操作。 具体做法是:正向扫描日志文件重新执行登记的操作 * 数据库系统 * 有些事务虽已发出COMMIT操作,但更新的结果可能只是写到缓冲区而未能写入磁盘,或磁盘上数据库被破坏,因此需要REDO处理。 例如:事务T1在学生表S上执行下面三个操作: INSERT INTO S VALUES (‘S4’, ‘D’, ‘CS’, 19); DELETE FROM S WHERE S# =‘S1’; UPDATE S SET SD=‘CS’ WHERE S# =‘S2’; * 数据库系统 * S1 A CS 20 S2 B CI 21 S3 C MA 19 事务T1执行前的S S1 A CS 20 S2 B CI 21 S3 C MA 19 S4 D CS 19 INSERT INTO S VALUES (‘S4’, ‘D’, ‘CS’, 19); S2 B CS 21 S3 C MA 19 S4 D CS 19 S2 B CI 21 S3 C MA 19 S4 D CS 19 DELETE FROM S WHERE S#=‘S1’; UPDATE S SET SD=‘CS’ WHERE S#=‘S2’; 写日志 事务T1开始 T1 在S中插入键 为S4的记录 S4 D CS

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档