第十讲 事务及数据库恢复技术.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十讲 事务及数据库恢复技术

第十讲 数据库恢复技术 数据库恢复技术 一、事务的基本概念 二、故障及其种类 三、恢复的实现技术 四、恢复策略 五、具有检查点的恢复技术 数据库恢复技术 一、事务的基本概念 事务的基本概念 事务(Transaction)的定义 一个数据库操作序列; 一个不可分割的工作单位; 恢复和并发控制的基本单位。 一个事务就是将一系列的数据操纵SQL语句作为一个逻辑单元,逻辑单元里面的单个操作要么全做,要么全部不做,以保证数据的完整性。 事务的基本概念(续) 事务的ACID特性: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability ) 事务的基本概念(续) PL/SQL事务支持的相关语句 Commit, rollback, savepoint, rollback to savepoint, PL/SQL未提供事务开始的显式定义语句 事务的提交与回滚 Commit, rollback 基于保存点的事务回滚 savepoint sp1; SQL的数据更新语句; rollback to sp1; 事务的基本概念(续) T-SQL的事务 begin transaction [trans_name],commit transaction [trans_name] ,rollback transaction [trans_name] [st_name],save transaction st_name 相关全局变量:@@ERROR, @@TRANSCOUNT T-SQL事务的分类: 显式事务:用begin transaction定义 隐式事务:通过set implcit_transaction on打开隐式事务模式,下一个语句自动开启一个新事务,事务结束后的下一个语句又将开启一个新事务。 自动提交事务(默认模式):将每条SQL语句视为一个事务,执行成功则自动提交;失败则自动回滚。 数据库恢复技术 二、故障及其种类 故障及其种类 故障是不可避免的 系统故障:计算机软、硬件故障; 人为故障:操作员的失误、恶意的破坏等。 数据库的恢复 把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)。 故障的种类 事务内部的故障 系统故障 介质故障 数据库恢复技术 三、恢复实现技术 恢复实现技术 恢复操作的基本原理:冗余 利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据。 恢复机制涉及的关键问题 如何建立冗余数据 数据转储(backup) 登录日志文件(logging) 如何利用这些冗余数据实施数据库恢复 恢复实现技术(续) 数据转储 转储是指DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程,备用的数据称为后备副本或后援副本。 转储方法 静态转储与动态转储 海量转储与增量转储 恢复实现技术(续) 登记日志文件 什么是日志文件 日志文件(log)是用来记录事务对数据库的更新操作的文件。 日志文件的格式 以记录为单位的日志文件 事务标识(标明是哪个事务) 操作类型(插入、删除或修改) 操作对象(记录内部标识) 更新前数据的旧值(对插入操作而言,此项为空值) 更新后数据的新值(对删除操作而言, 此项为空值) 以数据块为单位的日志文件 事务标识(标明是那个事务) 被更新的数据块 恢复实现技术(续) 日志文件的作用 进行事务故障恢复 进行系统故障恢复 协助后备副本进行介质故障恢复 如何登记日志文件 登记的次序严格按并行事务执行的时间次序 必须先写日志文件,后写数据库 写日志文件操作:把表示这个修改的日志记录写到日志文件 写数据库操作:把对数据的修改写到数据库中 数据库恢复技术 四、恢复策略 恢复策略 事务故障的恢复 1. 反向扫描文件日志,查找该事务的更新操作。 2. 对该事务的更新操作执行逆操作。 插入操作:则相当于做删除操作 删除操作:利用“更新前的值”做插入操作 修改操作:用修改前值代替修改后值 3. 继续反向扫描,查找该事务的其他更新操作,并做同样处理。 4. 直至读到此事务的开始标记,事务故障恢复就完成了。 恢复策略(续) 系统故障的恢复 1. 正向扫描日志文件,得到REDO和UNDO队列 重做(REDO) 队列:在故障发生前已经提交的事务 撤销 (Undo)队列:故障发生时尚未完成的事务 2. 对撤销(Undo)队列事务进行撤销(UNDO)处理 反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作 即将日志记录中“更新前的值”写入数据库 3. 对重做(Redo)队列事务进行重做(REDO)处理 正向扫描

文档评论(0)

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

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

1亿VIP精品文档

相关文档