第9章 事务管理.ppt

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

* * 介质故障的恢复 发生介质故障后,磁盘上的物理数据和日志文件被破坏,这是最严重的一种故障,恢复方法是重装数据库,然后重做已完成的事务。 介质故障的恢复需要DBA介入。DBA需要重装最近转储的数据库副本和有关的各日志文件副本,然后执行系统提供的恢复命令即可,具体的恢复操作由DBMS完成。 * * 介质故障的恢复步骤 1. 装入最新的数据库后备副本(离故障发生时刻最近的转储副本),使数据库恢复到最近一次转储时的一致性状态。 对于动态转储的数据库副本,还须同时装入转储开始时刻的日志文件副本,利用恢复系统故障的方法(即REDO+UNDO),才能将数据库恢复到一致性状态。 2. 装入相应的日志文件副本(转储结束时刻的日志文件副本),重做已完成的事务。 * * 具有检查点的恢复技术 利用日志技术进行数据库恢复时,需要检查所有日志记录。存在两个问题: 1. 搜索整个日志将耗费大量的时间。 2. 需要REDO处理很多已经将操作结果写到数据库中的操作,浪费了大量时间。 具有检查点的恢复技术:在日志文件中增加一类新的记录--检查点记录(checkpoint),增加一个重新开始文件,并让恢复子系统在登录日志文件期间动态地维护日志。 * * 检查点记录的内容 检查点记录的内容包括: 1. 建立检查点时刻所有正在执行的事务清单。 2. 这些事务最近一个日志记录的地址。 重新开始文件用来记录各个检查点记录在日志文件中的地址。 重新开始文件和日志文件结构。 * * 动态维护日志文件 动态维护日志文件的方法是,周期性地执行如下操作:建立检查点,保存数据库状态。 具体步骤是: 1. 将当前日志缓冲中的所有日志记录写入磁盘的日志文件上。 2. 在日志文件中写入一个检查点记录。 3. 将当前数据缓冲的所有数据记录写入磁盘的数据库中。 4. 把检查点记录在日志文件中的地址写入一个重新开始文件。 恢复子系统可以定期或不定期地建立检查点保存数据库状态。 * * 用检查点方法进行恢复的步骤 系统使用检查点方法进行恢复的步骤是: 1. 从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。 2. 由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST。 建立两个事务队列: UNDO-LIST;REDO-LIST。把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空。 3. 从检查点开始正向扫描日志文件 如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列;如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列; 4. 对UNDO-LIST中的每个事务执行UNDO操作, 对REDO-LIST中的每个事务执行REDO操作 * * 具有检查点的日志恢复 * * 数据库镜像 介质故障是对系统影响最为严重的一种故障。 许多数据库管理系统提供了数据库镜像(Mirror)功能用于数据库恢复。即根据DBA的要求,自动把整个数据库或其中的关键数据复制到另一个磁盘上。 DBMS自动保证镜像数据与主数据的一致性。 一旦出现介质故障,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。 * * * 封锁协议 对数据对象加锁时,还需要约定一些规则,称这些规则为封锁协议。 一级封锁协议 事务T在修改数据之前必须先对其加X锁,直到事务结束才释放。 二级封锁协议 一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。 三级封锁协议 一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。 封锁机制(续) * * 活锁和死锁 活锁 某一事务的请求可能永远得不到,该事务一直处于等待状态 解决方法:先来先服务策略 死锁 两个事务处于相互等待状态,永远不能结束 死锁的预防 一次封锁法——降低了并发度 顺序封锁法 死锁的诊断与解除 超时法,等待图法 封锁机制(续) * * T1 T2 T1 T2 T1 T2 (1) 读A=16 (1)读A=50 (1)读C=100 读B=100 C ?C×2

文档评论(0)

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

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

1亿VIP精品文档

相关文档