- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库 DB-chapter_13
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * redo日志的检查点 redo日志的非静止检查点的步骤如下: 写入日志记录START CKPT(T1,T2,…,Tk),其中T1, T2,…,Tk是所有活跃(即未提交的)事务,并刷新日志 将START CKPT记录写入日志时所有提交事务已经写到缓冲区但还没有写到磁盘的数据库元素写到磁盘 写入日志记录END CKPT,并刷新日志 13.2 使用日志的数据库恢复技术 * 图8-8给出了一个可能的redo日志,其中发生了一个检查点。 当我们开始检查点时,只有T2是活跃的,但T1所写的A值可能已经到达磁盘。如果没有,那么我们必须在检查点结束前,将A拷贝到磁盘。 检查点的结尾出现在几个其他的事件发生后, T2为数据库元素C写入一个值,一个新事务T3开始并为D写入一个值, 在检查点结束后发生的唯一的事情是T2和T3提交。 * 使用带检查点的redo日志的恢复 假设在崩溃发生前日志中的最后一条检查点记录是END CKPT 在对应的START CKPT(T1,T2,…,Tk)前提交的事务已经将其修改写到了磁盘,因此我们不必关心如何恢复这些事务的影响 只关心最后一个START CKPT(T1,T2,…,Tk)中提到的事务Ti,以及该日志记录在日志中出现后开始的事务 在有哪些信誉好的足球投注网站日志时.我们在找到最早的START Ti记录后就不必继续向后看了 13.2 使用日志的数据库恢复技术 * 使用带检查点的redo日志的恢复 假设日志中的最后一条检查点记录是START CKPT(T1,T2,…,Tk) 我们不能确定在此检查点开始前提交的事务是否已经将其修改写到磁盘上 因此,我们必须有哪些信誉好的足球投注网站到前一END CKPT记录,找到与之匹配的START CKPT(S1,S2,…,Sm)记录,并重做这些已经提交的、要么在START CKPT后开始要么在Si中的事务 13.2 使用日志的数据库恢复技术 * 发生故障 发生故障 发生故障 * HD-ITR * 使用日志的数据库恢复技术 推迟更新技术 即时更新技术 13.2 使用日志的数据库恢复技术 * HD-ITR * 即时更新技术 即时更新技术允许事务直接更新数据库。处于活动状态的事务直接在数据库上实施的更新称为非提交更新。任何即时更新技术都必须遵循如下的即时更新协议: (1) 所有T, X, V1, V2型日志记录安全地存储到永恒存储器之前,事务T不能更新数据库。 (2) 所有T, X, V1, V2型日志记录安全地存储到永恒存储器之前,不允许事务T提交。 13.2 使用日志的数据库恢复技术 * HD-ITR * 即时更新协议保证在系统故障发生时,每个运行事务的更新操作的描述信息都安全地记录在日志中。 一旦系统故障导致事务T失败,即时更新技术将根据T, X, V1, V2型日志记录,把数据项X的值恢复为它的原始值V1。 13.2 使用日志的数据库恢复技术 * HD-ITR * 即时更新协议 T开始执行时,记录T, starts被写到日志。 在T运行期间,当T发出一个write(X)操作时,记录T, X, V1, V2首先被写入日志,然后直接在数据库上执行write(X)。 当T部分提交时,记录T, commits被写到日志。 为了满足即时更新协议的要求,在WRITE(X)操作直接应用到数据库之前,有关这个操作的日志记录必须安全地写入永恒存储器。 13.2 使用日志的数据库恢复技术 * HD-ITR * 仍以事务T0和T1为例说明即时更新技术。 设事务T0和T1按调度T0, T1顺序执行。日志中有关这两个事务的记录如下: 13.2 使用日志的数据库恢复技术 * HD-ITR * 当T0和T1运行时,数据库和日志按照即时更新协议变化过程: 13.2 使用日志的数据库恢复技术 * HD-ITR * 即时更新技术需要如下两个操作: (1) undo(T): FOR 日志中每个型为T, X, V1, V2的记录 DO 把数据库中数据项X的值改为V1; ENDFOR。 (2) redo(T): FOR 日志中每个型为T, X, V1, V2的记录 DO 把数据库中数据项X的值改为V2; ENDFOR。 undo和redo操作必须是幂等的,即执行多次和执行一次的效果相同。 13.2 使用日志的数据库恢复技术 * HD-ITR * 系统发生故障后,即时更新技术将调用如下的过程进行数据库的恢复处理: (1) 从后向前扫描日志记录,建立两个事务表:一个表称为提交事务表,包含全部具有日志记录T, commits的事务T,即已提交的事务;
文档评论(0)