数据库第6章数据库恢复技术.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库第6章数据库恢复技术

数据库系统与应用 _第6章 数据库恢复技术 6.1 事务概念 6.2 数据库恢复概述 6.3 恢复的实现技术 6.4 故障的种类及恢复策略 6.5 * RAID 6.1 事务概念 产生不一致的结果 并发执行的错误 何时更新数据库 事务的定义 事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位 事务的显式定义 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 … … COMMIT ROLLBACK END TRANSACTION END TRANSACTION 当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务 事务的ACID特性 原子性(Atomicity):事务的所有操作在数据库中要么全部正确反映,要么全部不反映 一致性(Consistency):是指当事务完成时,必须使所有数据都具有一致的状态 隔离性(Isolation):当多个事务并发执行时,一个事务的执行不能被其他事务干扰 持续性(Durability):一个事务一旦提交,它对数据库中数据的改变应该是永久性的,即使系统可能出现故障 事务的状态 6.2 数据库恢复概述 恢复机制涉及两个关键问题 如何建立冗余数据 如何利用冗余数据实施数据库恢复 恢复技术是衡量数据库管理系统优劣的重要指标 6.3 恢复的实现技术 恢复机制常用的技术 记录日志文件 数据转储 6.3.1 日志 日志是DBMS用来记录事务对数据库的更新操作的文件,是日志记录的序列 日志记录描述内容主要包括: 事务标识符:执行写操作事务的唯一标识符。 数据项标识符:事务操作对象的唯一标识符。 前像(BI):更新前数据的旧值。 后像(AI):更新后数据的新值。 日志记录形式包括: T START:表示事务T已开始。 T COMMIT:表示事务T已提交。 T ABORT:表示事务T不能成功完成,已中止。 T,X,V1,V2:表示事务T对数据项X执行写操作。写之前的旧值为V1,写之后的新值为V2。 每次事务执行写操作,必须在数据库修改前建立此次写操作的日志记录 日志必须存储在稳定存储器上 稳定存储器中的日志记录顺序必须与写入日志缓冲区中的日志记录顺序完全一样 先写日志规则 :在主存中的数据块输出到数据库前,所有与该数据块中数据有关的日志记录必须已输出到稳定存储器上 6.3.2 更新事务的执行与恢复 (1)后像(AI)在事务提交后才写入数据库 通过在日志中记录所有的数据库修改,将一个事务的所有写操作延迟到事务的操作结束时才执行,以此保证事务的原子性。 忽略未完成的事务并重复已提交事务的改变 事务T的执行步骤 在T开始执行前,向日志中写入记录T START T的一次write(X)操作导致向日志中写入一条新记录 最后,当T全部操作结束,向日志中写入记录T COMMIT 恢复机制使用以下恢复过程: Redo(Ti):将事务Ti更新的所有数据项的值设为新值 更新日志记录结构简化省去旧值字段。即日志记录T,X,V1表示:事务T对数据项X执行写操作,写入新值V1 【例6-1】 药品价格调整。设T1事务调整药品A,B的价格,药品A上调10%,药品B下浮5%。 T1: read(A) A:=A+A*0.1 write(A) read(B) B:=B-B*0.05 Write(B) 假设事务T1执行前药品A,B上的价格分别为20元和30元 。该事务一个可能的执行序列如书中图6-3所示。 故障发生后,恢复机制检查日志 ,使用日志恢复数据 : ① 从后向前扫描日志,将提交的事务放入队列redo-list。 ② 从日志文件开始处扫描日志。对遇到的每一T,X,V1记录。 如果T不是redo-list中的事务,则什么也不做。 如果T是redo-list中的事务,则为数据项X写入值V1。 ③ 对每个未完成的事务,在日志中写入一个T,ABSORT记录并刷新日志。 不同故障时刻的日志记录 若故障发生在事务提交之前,如图6-4(a)所示。则T1为一个未完成的事务。磁盘上的A,B没有任何改变。恢复管理器只需在日志中增加一条T1,ABSORT记录。 若故障发生在图6-

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档