第16讲事务的概念及恢复技术_第1页
第16讲事务的概念及恢复技术_第2页
第16讲事务的概念及恢复技术_第3页
第16讲事务的概念及恢复技术_第4页
第16讲事务的概念及恢复技术_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第16讲讲 事务及其恢复机制事务及其恢复机制数据库原理与应用第第8章章 事务管理事务管理 事务及其恢复事务及其恢复 第第16讲讲 事务及其恢复机制事务及其恢复机制引言引言 为什么要引入“事务”? 什么是事务( TRANSACTION )? 如何对事务进行管理使其发挥作用?第第16讲讲 事务及其恢复机制事务及其恢复机制本章内容本章内容 事务的概念事务的概念 事务管理事务管理 恢复恢复 并发控制并发控制第第16讲讲 事务及其恢复机制事务及其恢复机制事务的概念事务的概念 事务的概念事务的概念 事务管理事务管理 恢复恢复 并发控制并发控制第第16讲讲 事务及其恢复机制事务及其恢复机制【例例】从客户从

2、客户A A的账户中转账的账户中转账50005000元给客户元给客户B B。 从账户从账户A划出划出5000元元向账户向账户B划入划入5000元元Read(A,t1) ; t1 := t1-5000; Write(A,t1);Read(B,t2) ; t2 := t2+5000; Write(B,t2);故障故障如何保证在发生故障后如何保证在发生故障后数据库的正确性?数据库的正确性? 事务的概念事务的概念第第16讲讲 事务及其恢复机制事务及其恢复机制【例例】从客户从客户A A的账户(的账户(500500元)中同时转账元)中同时转账5050元和元和100100元给客元给客户户B B和客户和客户C

3、C。 时间步骤步骤终端终端1A账户值账户值终端终端21 1500Read(A,t1) ;2 2Read(A,t1) ; t1 := t1-100; 3 3 t1 := t1-50; 400Write(A,t1); 4 4Write(A,t1);450Read(C,t2) ; 5 5Read(B,t2) ; t2 := t2+100; 6 6t2 := t2+50; Write(C,t2);7 7Write(B,t2);如何保证存在并行操作如何保证存在并行操作的数据库的正确性?的数据库的正确性? 事务的概念事务的概念第第16讲讲 事务及其恢复机制事务及其恢复机制 1976年,年,James Gr

4、ay提出了提出了“事务处理技术事务处理技术” Transaction Processing: Concepts and Techniques http:/www.lgdx.mtn/jyjs/wljx/virtualclassroom.html 获获1998年图灵奖年图灵奖事务的概念事务的概念第第16讲讲 事务及其恢复机制事务及其恢复机制事务的概念 在数据库应用系统中,数据库用于建立在数据库应用系统中,数据库用于建立现实世界中一些企业状态的模型。现实世界中一些企业状态的模型。 事务就是一种为了维护企业状态与数据事务就是一种为了维护企业状态与数据库状态一致的与数据库交互的程序。库状态一致的与数据库

5、交互的程序。 事务可能是为了响应现实世界中影响企业状事务可能是为了响应现实世界中影响企业状态的事件而对数据库进行的更新。态的事件而对数据库进行的更新。 事务的概念事务的概念第第16讲讲 事务及其恢复机制事务及其恢复机制事务的概念 在数据库系统中,事务是一组需要一起在数据库系统中,事务是一组需要一起执行的操作序列,是数据库系统中的逻执行的操作序列,是数据库系统中的逻辑工作单元。辑工作单元。 在关系数据库中,一个事务中包含的操作可在关系数据库中,一个事务中包含的操作可以是一条以是一条 SQL 语句、一组语句、一组 SQL 语句或整个语句或整个程序。程序。事务的概念事务的概念第第16讲讲 事务及其恢

6、复机制事务及其恢复机制事务的定义 事务的开始与结束可以由程序员显式控制事务的开始与结束可以由程序员显式控制,或由,或由 DBMS 按缺省规定自动划分事务。按缺省规定自动划分事务。 在在 SQL 语言中,定义事务的语句有三条语言中,定义事务的语句有三条 BEGIN TRANSACTION:事务开始:事务开始 COMMIT:提交,事务正常结束:提交,事务正常结束 ROLLBACK:撤消事务,回滚到开始状态:撤消事务,回滚到开始状态事务的概念事务的概念第第16讲讲 事务及其恢复机制事务及其恢复机制事务的概念事务的概念【例例】从客户从客户A A的账户中转账的账户中转账50005000元给客户元给客户B

7、 B。 Ti: Begin transaction Read(A,t1) ; t1 := t1-5000; IF( t1 0 )THEN 打印打印 金额不足,不能转帐金额不足,不能转帐 ; ROLLBACK ; ELSE Write(A,t1); Read(B,t2) ; t2 := t2+5000; Write(B,t2); Commit; Select t1:=num from accountwhere accountno=AUpdate account Set num= t1where accountno=A第第16讲讲 事务及其恢复机制事务及其恢复机制事务的特性 事务具有四个特性事务具

8、有四个特性 原子性(原子性( Atomicity ) 一致性(一致性( Consistency ) 隔离性(隔离性( Isolation ) 持久性(持久性( Durability )事务的事务的ACID特性特性事务的概念事务的概念第第16讲讲 事务及其恢复机制事务及其恢复机制事务的特性 原子性原子性(Atomicity) 一个事务对数据库的所有操作,是一个不一个事务对数据库的所有操作,是一个不可分割的工作单元。事务中包括的诸操作可分割的工作单元。事务中包括的诸操作要么都执行完,要么要么都执行完,要么没有执行没有执行。 每个事务要么提交,要么因异常中止而回每个事务要么提交,要么因异常中止而回滚

9、。滚。 事务的概念事务的概念第第16讲讲 事务及其恢复机制事务及其恢复机制事务的概念事务的概念原子性要求系统要原子性要求系统要撤销该事务撤销该事务故障故障【例例】从客户从客户A A的账户中转账的账户中转账50005000元给客户元给客户B B。 Ti: Begin transaction Read(A,t1) ; t1 := t1-5000; Write(A,t1); Read(B,t2) ; t2 := t2+5000; Write(B,t2) Commit 第第16讲讲 事务及其恢复机制事务及其恢复机制事务的特性 一致性一致性( Consistency ) 事务执行的结果必须是使数据库从一

10、个一致事务执行的结果必须是使数据库从一个一致性状态变到另性状态变到另一个一致性一个一致性状态。状态。 执行完事务后数据库状态满足完整性约束;执行完事务后数据库状态满足完整性约束; 新状态反映事务成功提交的结果。新状态反映事务成功提交的结果。事务的概念事务的概念数据库中所有数数据库中所有数据的正确性。据的正确性。第第16讲讲 事务及其恢复机制事务及其恢复机制事务的概念事务的概念【例例】从客户从客户A A的账户中转账的账户中转账50005000元给客户元给客户B B。 Ti: Begin transaction Read(A,t1) ; t1 := t1-5000; Write(A,t1); Re

11、ad(B,t2) ; t2 := t2+5000; Write(B,t2) Commit 完整性约束:完整性约束: 不能透支转账不能透支转账一致性要求转账结束一致性要求转账结束后账户总额不变后账户总额不变第第16讲讲 事务及其恢复机制事务及其恢复机制事务的特性 隔离性隔离性( Isolation )一个事务内部的操作及使用的数据对其他并发事务一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发是隔离的,并发执行的事务间不能互相干扰。执行的事务间不能互相干扰。任一事务的更新操作在其成功提交前对其他事务是任一事务的更新操作在其成功提交前对其他事务是不可见的。不可见的。事务的概念事务的概念第第

12、16讲讲 事务及其恢复机制事务及其恢复机制事务的概念事务的概念【例例】从客户从客户A A的账户(的账户(500500元)中同时转账元)中同时转账5050元和元和100100元给客元给客户户B B和客户和客户C C。 时间步骤步骤终端终端1A账户值账户值终端终端21 1500Read(A,t1) ;2 2Read(A,t1) ; t1 := t1-100; 3 3 t1 := t1-50; 400Write(A,t1); 4 4Write(A,t1);450Read(C,t2) ; 5 5Read(B,t2) ; t2 := t2+100; 6 6t2 := t2+50; Write(C,t2)

13、;7 7Write(B,t2);第第16讲讲 事务及其恢复机制事务及其恢复机制事务的概念事务的概念 T1T2 TimeRead(A,t1) t1 := t1-50 Write(A,t1)Read(B,t2) t2 := t2+50 Write(B,t2)Read(A,t1) t1 := t1-100 Write(A,t1)Read(C,t2) t2 := t2+100 Write(C,t2)Begin transactionBegin transaction Commit Commit 【例例】从客户从客户A A的账户(的账户(500500元)中同时转账元)中同时转账5050元和元和10010

14、0元给客元给客户户B B和客户和客户C C。 第第16讲讲 事务及其恢复机制事务及其恢复机制事务的特性 隔离性隔离性( Isolation ) 多事务并发执行的整体效果必须等同于某一多事务并发执行的整体效果必须等同于某一次序下事务顺序(串行)执行的效果。次序下事务顺序(串行)执行的效果。事务的概念事务的概念第第16讲讲 事务及其恢复机制事务及其恢复机制事务的特性 持久性持久性( Durability ) 持久性也称永久性(持久性也称永久性( Permanence ),指一),指一个事务一旦提交,它对数据库中数据的改变个事务一旦提交,它对数据库中数据的改变就应该是永久性的。就应该是永久性的。 其

15、他操作或故障不应该对其执行结果有任何影其他操作或故障不应该对其执行结果有任何影响。响。 事务的概念事务的概念第第16讲讲 事务及其恢复机制事务及其恢复机制事务的概念事务的概念【例例】从客户从客户A A的账户中转账的账户中转账50005000元给客户元给客户B B。 Ti: Begin transaction Read(A,t1) ; t1 := t1-5000; Write(A,t1); Read(B,t2) ; t2 := t2+5000; Write(B,t2) Commit 持久性要求事务提持久性要求事务提交结果写入数据库交结果写入数据库并永久保留并永久保留第第16讲讲 事务及其恢复机制

16、事务及其恢复机制事务的特性 事务的事务的ACID特性是数据库保持一致性的特性是数据库保持一致性的前提。前提。 当一个事务处理系统支持当一个事务处理系统支持ACID特性的时候特性的时候,数据库就能维持一个一致的、当前最新的,数据库就能维持一个一致的、当前最新的现实世界的模型现实世界的模型 事务能给用户提供正确的和最新的响应。事务能给用户提供正确的和最新的响应。 保证事务保证事务ACID特性是事务管理的重要任特性是事务管理的重要任务。务。 事务的概念事务的概念第第16讲讲 事务及其恢复机制事务及其恢复机制事务的概念事务的概念一致性一致性原子性原子性隔离性隔离性持久性持久性并发事务并发事务的交错执的

17、交错执行行故障故障恢复技术恢复技术并发控制并发控制故障故障一致性一致性 第第16讲讲 事务及其恢复机制事务及其恢复机制事务管理事务管理 在在DBMS中,保证事务的正确执行是事务中,保证事务的正确执行是事务管理器管理器(transaction manager)的工作。的工作。 事务管理器位于事务管理器位于DBMS的存储数据管理模的存储数据管理模块中块中 。第第16讲讲 事务及其恢复机制事务及其恢复机制事务管理事务管理 事务的概念事务的概念 事务管理事务管理 恢复恢复 并发控制并发控制第第16讲讲 事务及其恢复机制事务及其恢复机制数据库管理系统所具有的把数据库数据库管理系统所具有的把数据库从从错误

18、状态错误状态恢复到某一恢复到某一已知的正确已知的正确状态状态(一致性状态或完整性状态)(一致性状态或完整性状态)的功能。的功能。事务的恢复事务的恢复正确状态正确状态错误状态错误状态正确状态正确状态故障故障恢复恢复第第16讲讲 事务及其恢复机制事务及其恢复机制故障及错误状态恢复技术 恢复策略 事务的恢复事务的恢复第第16讲讲 事务及其恢复机制事务及其恢复机制事务内部的故障系统故障 介质故障 故障及错误状态故障及错误状态第第16讲讲 事务及其恢复机制事务及其恢复机制事务内部的故障 事务不能成功执行(提交)事务不能成功执行(提交)事务程序本身可预期并处理的事务程序本身可预期并处理的 ;非预期的,不能

19、由应用程序处理的。非预期的,不能由应用程序处理的。 如运算溢出、违反了某些完整性限制、并发事如运算溢出、违反了某些完整性限制、并发事务发生死锁而被选中撤消等。务发生死锁而被选中撤消等。 故障及错误状态故障及错误状态第第16讲讲 事务及其恢复机制事务及其恢复机制若运算出现溢出,导若运算出现溢出,导致什么错误状态?致什么错误状态?故障及错误状态故障及错误状态【例例】从客户从客户A A的账户中转账的账户中转账50005000元给客户元给客户B B。 Ti: Begin transaction Read(A,t1) ; t1 := t1-5000; Write(A,t1); Read(B,t2) ;

20、t2 := t2+5000; Write(B,t2); Commit; 第第16讲讲 事务及其恢复机制事务及其恢复机制故障及错误状态故障及错误状态数据库缓冲区数据库缓冲区磁盘磁盘内存内存XX InputOutput事务工作区事务工作区t Read(X,t) Write(X,t)缓冲区缓冲区管理器管理器第第16讲讲 事务及其恢复机制事务及其恢复机制故障及错误状态故障及错误状态缓冲区管理策略窃取窃取/不强制(不强制(steal/noforce)在事务提交之前,事务的部分执行结果可在事务提交之前,事务的部分执行结果可能已被更新到磁盘上的数据库。能已被更新到磁盘上的数据库。 事务到达提交点后,并不立即

21、将执行结果事务到达提交点后,并不立即将执行结果更新到磁盘上的数据库。更新到磁盘上的数据库。第第16讲讲 事务及其恢复机制事务及其恢复机制故障及错误状态故障及错误状态【例例】从客户从客户A A的账户中转账的账户中转账50005000元给客户元给客户B B。 Ti: Begin transaction Read(A,t1) ; t1 := t1-5000; Write(A,t1); Read(B,t2) ; t2 := t2+5000; Write(B,t2); Commit; 数据库缓冲区数据库缓冲区DiskA:t1A:t1Output第第16讲讲 事务及其恢复机制事务及其恢复机制事务内部的故障

22、事务不能成功执行(提交)事务不能成功执行(提交)破坏了事务的原子性破坏了事务的原子性夭折的事务可能已对数据库进行了部分更新夭折的事务可能已对数据库进行了部分更新故障及错误状态故障及错误状态第第16讲讲 事务及其恢复机制事务及其恢复机制系统故障 系统故障是指造成系统停止运转的任何事件,系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。使得系统要重新启动。 主存主存( (数据库缓冲区数据库缓冲区) )的内容丢失的内容丢失 所有运行事务都非正常终止所有运行事务都非正常终止故障及错误状态故障及错误状态第第16讲讲 事务及其恢复机制事务及其恢复机制故障及错误状态故障及错误状态系统故障系统故障【

23、例例】从客户从客户A A的账户中转账的账户中转账50005000元给客户元给客户B B。 Ti: Begin transaction Read(A,t1) ; t1 := t1-5000; Write(A,t1); Read(B,t2) ; t2 := t2+5000; Write(B,t2) Commit 第第16讲讲 事务及其恢复机制事务及其恢复机制故障及错误状态故障及错误状态【例例】从客户从客户A A的账户中转账的账户中转账50005000元给客户元给客户B B。 Ti: Begin transaction Read(A,t1) ; t1 := t1-5000; Write(A,t1);

24、 Read(B,t2) ; t2 := t2+5000; Write(B,t2); Commit; 数据库缓冲区数据库缓冲区DiskA:t1A:t1Output系统故障系统故障第第16讲讲 事务及其恢复机制事务及其恢复机制故障及错误状故障及错误状态态 T1T2 TimeRead(A,t1) t1 := t1-50 Write(A,t1)Read(B,t2) t2 := t2+50 Write(B,t2)Read(A,t1) t1 := t1-100 Write(A,t1)Read(C,t2) t2 := t2+100 Write(C,t2)Begin transactionBegin tran

25、saction Commit Commit 【例例】从客户从客户A A的账户(的账户(500500元)中同时转账元)中同时转账5050元和元和100100元给客元给客户户B B和客户和客户C C。 数据库缓冲区数据库缓冲区A:t1B:t2系统故障系统故障Disk第第16讲讲 事务及其恢复机制事务及其恢复机制系统故障 破坏了事务的原子性、持久性破坏了事务的原子性、持久性 一些一些未完成未完成的事务的更新结果可能已的事务的更新结果可能已写入写入磁盘上的物磁盘上的物理数据库;理数据库; 有些有些已完成已完成的事务的更新结果可能有一部分甚至全部的事务的更新结果可能有一部分甚至全部留在缓冲区,尚留在缓冲

26、区,尚未写回未写回到物理数据库中。到物理数据库中。故障及错误状态故障及错误状态第第16讲讲 事务及其恢复机制事务及其恢复机制介质故障 介质故障又称为硬故障(介质故障又称为硬故障( Hard Crash ) 通常指外存故障,如磁盘损坏、磁头碰撞,瞬时强通常指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。磁场干扰等。故障及错误状态故障及错误状态第第16讲讲 事务及其恢复机制事务及其恢复机制故障及错误状态故障及错误状态 T1T2 TimeRead(A,t1) t1 := t1-50 Write(A,t1)Read(B,t2) t2 := t2+50 Write(B,t2)Read(C,t1) t

27、1 := t1-100 Write(C,t1)Read(D,t2) t2 := t2+100 Write(D,t2)Begin transactionBegin transaction Commit Commit 【例例】从客户从客户A A的账户(的账户(500500元)中同时转账元)中同时转账5050元和元和100100元给客元给客户户B B和客户和客户C C。 数据库缓冲区数据库缓冲区A:t1DiskA Input(D)C:t1DC:t1BB:t2Output(C)第第16讲讲 事务及其恢复机制事务及其恢复机制介质故障 破坏数据库,影响正在存取这部分数据的所有破坏数据库,影响正在存取这部分

28、数据的所有事务事务; 破坏了事务的持久性、原子性。破坏了事务的持久性、原子性。 已提交已提交的事务的结果的事务的结果不能持久不能持久地保存在磁盘上。地保存在磁盘上。故障及错误状态故障及错误状态第第16讲讲 事务及其恢复机制事务及其恢复机制故障及错误状态故障及错误状态事务内部的故障系统故障 介质故障 一些一些未完成未完成的事务的部分更新的事务的部分更新结果可能已对磁盘上的数据库结果可能已对磁盘上的数据库进行了更新;进行了更新; 有些有些已提交已提交的事务的更新结果的事务的更新结果可能有一部分甚至全部留在缓可能有一部分甚至全部留在缓冲区,尚冲区,尚未写回未写回到磁盘上的数到磁盘上的数据库中;据库中

29、; 已提交已提交的事务的结果的事务的结果不能持久不能持久地保存在磁盘上。地保存在磁盘上。第第16讲讲 事务及其恢复机制事务及其恢复机制数据库管理系统所具有的把数据库数据库管理系统所具有的把数据库从从错误状态错误状态恢复到某一恢复到某一已知的正确已知的正确状态状态(一致性状态或完整性状态)(一致性状态或完整性状态)的功能。的功能。事务的恢复事务的恢复正确状态正确状态错误状态错误状态正确状态正确状态故障故障恢复恢复第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件数据转储恢复的实现技术恢复的实现技术第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件(log) DBMS维护了一个日志(维护了

30、一个日志( Log )文件来记录)文件来记录事务对数据库的更新操作事务对数据库的更新操作 ,以助事务的恢,以助事务的恢复。复。恢复的实现技术恢复的实现技术磁磁 盘盘第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件 日志文件通常保存在磁盘上;日志文件通常保存在磁盘上;日志文件是顺序文件;日志文件是顺序文件;文件内容从不修改或删除;文件内容从不修改或删除; 文件格式通常以记录为单位。文件格式通常以记录为单位。 恢复的实现技术恢复的实现技术第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件 日志文件的内容日志文件的内容事务的开始标记事务的开始标记(BEGIN TANSACTION)事务的结

31、束标记事务的结束标记(COMMIT或或ROLLBACK)事务的所有更新操作事务的所有更新操作恢复的实现技术恢复的实现技术第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件 日志文件的内容日志文件的内容更新操作的日志记录更新操作的日志记录 事务的标识(事务的标识(标明是哪个事务标明是哪个事务);); 操作的对象(操作的对象(记录内部的标识记录内部的标识);); 更新前数据的旧值(更新前数据的旧值(对插入操作,此项为空值对插入操作,此项为空值);); 更新后数据的新值(更新后数据的新值(对删除操作,此项为空值对删除操作,此项为空值);); 恢复的实现技术恢复的实现技术第第16讲讲 事务及其恢复

32、机制事务及其恢复机制日志文件 日志文件的内容日志文件的内容start_transaction, T :事务:事务 T 开始执行;开始执行; write, T, X, 旧值旧值 , 新值新值 :事务:事务 T 已将数据项已将数据项 X 的值的值 从旧值改为新值;从旧值改为新值; commit, T :事务:事务 T 成功完成,其结果已被提交成功完成,其结果已被提交 (永久记录)给数据库;(永久记录)给数据库;Abort, T :事务:事务 T 异常中止,已撤销对数据库的更新。异常中止,已撤销对数据库的更新。恢复的实现技术恢复的实现技术第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件 登记日

33、志文件的原则登记日志文件的原则登记的次序严格按事务并发操作执行的时间次序登记的次序严格按事务并发操作执行的时间次序;恢复的实现技术恢复的实现技术B2 U3 U2 B1 C2 B5 U3 U5 A5 U1 U4 B6 C4 U6 U1Bi:事务:事务Ti的开始记录的开始记录Ci:事务:事务Ti的提交记录的提交记录Ui:事务:事务Ti的更新记录的更新记录Ai:事务:事务Ti的异常中止记录的异常中止记录第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件 登记日志文件的原则登记日志文件的原则必须先写日志,后写数据库必须先写日志,后写数据库恢复的实现技术恢复的实现技术数据库缓冲区数据库缓冲区数据库数

34、据库内存内存write, T, X, 3 , 5 X=5X=3write, T, X, 3 , 5 日志文件日志文件日志缓冲区日志缓冲区X=5第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件 登记日志文件的原则登记日志文件的原则必须先写日志,后写数据库必须先写日志,后写数据库恢复的实现技术恢复的实现技术数据库缓冲区数据库缓冲区数据库数据库内存内存write, T, X, 3 , 5 X=5X=3日志文件日志文件日志缓冲区日志缓冲区X=5第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件 登记日志文件的原则登记日志文件的原则必须先写日志,后写数据库必须先写日志,后写数据库恢复的实现技术

35、恢复的实现技术数据库缓冲区数据库缓冲区数据库数据库内存内存日志文件日志文件日志缓冲区日志缓冲区X=5第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件 登记日志文件的原则登记日志文件的原则必须先写日志,后写数据库必须先写日志,后写数据库恢复的实现技术恢复的实现技术数据库缓冲区数据库缓冲区数据库数据库内存内存write, T, X, 3 , 5 X=5X=3write, T, X, 3 , 5 日志文件日志文件日志缓冲区日志缓冲区第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件 登记日志文件的原则登记日志文件的原则必须先写日志,后写数据库必须先写日志,后写数据库恢复的实现技术恢复的实现

36、技术数据库缓冲区数据库缓冲区数据库数据库内存内存write, T, X, 3 , 5 日志文件日志文件日志缓冲区日志缓冲区X=3X=5第第16讲讲 事务及其恢复机制事务及其恢复机制日志文件 登记日志文件的原则登记日志文件的原则必须先写日志,后写数据库必须先写日志,后写数据库恢复的实现技术恢复的实现技术数据库缓冲区数据库缓冲区数据库数据库内存内存write, T, X, 3 , 5 X=5X=3write, T, X, 3 , 5 日志文件日志文件日志缓冲区日志缓冲区X=5第第16讲讲 事务及其恢复机制事务及其恢复机制恢复的实现技术恢复的实现技术登录日志文件 日志先写原则日志先写原则对数据库的对

37、数据库的更新更新写入数据库写入数据库之前之前,它对应的,它对应的日志记日志记录录必须必须写入写入日志文件;日志文件;一个事务的所有一个事务的所有其他日志其他日志都必须在它的都必须在它的COMMIT日日志志记录写入日志记录写入日志之前写入之前写入日志。日志。只有在一个事务的只有在一个事务的COMMIT日志日志记录记录写入写入日志之后日志之后,该事务的,该事务的COMMIT过程才能过程才能结束结束。第第16讲讲 事务及其恢复机制事务及其恢复机制数据转储(dump)将数据库将数据库的内容复制的内容复制到其他存储设备中去。到其他存储设备中去。经经转储而得到的备份数据转储而得到的备份数据后备后备( (后

38、援后援) )副本副本根据转储时系统状态的不同,转储可分为根据转储时系统状态的不同,转储可分为静态转储静态转储动态转储动态转储恢复的实现技术恢复的实现技术第第16讲讲 事务及其恢复机制事务及其恢复机制数据转储静态转储静态转储系统中无事务运行时进行的转储;系统中无事务运行时进行的转储;转储必须等运行的用户事务结束;转储必须等运行的用户事务结束;新的事务必须等转储结束才能执行。新的事务必须等转储结束才能执行。优点:实现简单,优点:实现简单,得到一致性的副本;得到一致性的副本;缺点:降低了数据库的可用性。缺点:降低了数据库的可用性。恢复的实现技术恢复的实现技术第第16讲讲 事务及其恢复机制事务及其恢复

39、机制数据转储动态转储动态转储转储操作与用户事务并发进行;转储操作与用户事务并发进行;不用等待正在运行的用户事务结束;不用等待正在运行的用户事务结束;不会影响新事务的运行。不会影响新事务的运行。优点:不会影响事务的运行;优点:不会影响事务的运行;缺点:不能得到与某一数据库状态一致的后备副缺点:不能得到与某一数据库状态一致的后备副本。本。恢复的实现技术恢复的实现技术第第16讲讲 事务及其恢复机制事务及其恢复机制数据转储动态转储动态转储恢复的实现技术恢复的实现技术A=3A=5B=6数据库缓冲区数据库缓冲区A=5B=8第第16讲讲 事务及其恢复机制事务及其恢复机制数据转储具有增强可靠性设计的具有增强可

40、靠性设计的DBMS实际采用如下实际采用如下一些转储方法来保证数据是可恢复的:一些转储方法来保证数据是可恢复的: 数据银行数据银行 数据库镜像数据库镜像恢复的实现技术恢复的实现技术第第16讲讲 事务及其恢复机制事务及其恢复机制数据转储数据库镜像数据库镜像恢复的实现技术恢复的实现技术 镜像镜像A=5A=5第第16讲讲 事务及其恢复机制事务及其恢复机制数据库管理系统所具有的把数据库数据库管理系统所具有的把数据库从从错误状态错误状态恢复到某一恢复到某一已知的正确已知的正确状态状态(一致性状态或完整性状态)(一致性状态或完整性状态)的功能。的功能。事务的恢复事务的恢复正确状态正确状态错误状态错误状态正确

41、状态正确状态故障故障恢复恢复第第16讲讲 事务及其恢复机制事务及其恢复机制故障及错误状态故障及错误状态事务内部的故障系统故障 介质故障 一些一些未完成未完成的事务的部分更新的事务的部分更新结果可能已对磁盘上的数据库结果可能已对磁盘上的数据库进行了更新;进行了更新; 有些有些已提交已提交的事务的更新结果的事务的更新结果可能有一部分甚至全部留在缓可能有一部分甚至全部留在缓冲区,尚冲区,尚未写回未写回到磁盘上的数到磁盘上的数据库中;据库中; 已提交已提交的事务的结果的事务的结果不能持久不能持久地保存在磁盘上。地保存在磁盘上。第第16讲讲 事务及其恢复机制事务及其恢复机制事务内部的故障 破坏了事务的原

42、子性破坏了事务的原子性未完成的事务可能已对数据库进行了部分更新未完成的事务可能已对数据库进行了部分更新恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制事务内部故障的恢复 恢复方法恢复方法恢复子系统利用日志文件撤消(恢复子系统利用日志文件撤消(UNDO)此事务)此事务已对数据库进行的修改;已对数据库进行的修改;事务内部故障的恢复是由系统自动完成的,事务内部故障的恢复是由系统自动完成的,对用户是透明的。对用户是透明的。 恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制事务故障的恢复系统进行恢复的步骤系统进行恢复的步骤U1Xold,XnewU2U1Yold,Yne

43、wC4A3B1扫描扫描XoldYold A1T1发生故障发生故障 恢复的策略恢复的策略U1Xold,XnewU4B2Bi:事务:事务Ti的开始记录的开始记录Ci:事务:事务Ti的提交记录的提交记录Ui:事务:事务Ti的更新记录的更新记录Ai:事务:事务Ti的异常中止记录的异常中止记录Xold第第16讲讲 事务及其恢复机制事务及其恢复机制系统故障 破坏了事务的原子性、持久性破坏了事务的原子性、持久性 一些尚一些尚未完成未完成的事务的更新结果可能已的事务的更新结果可能已写入写入磁盘上的磁盘上的物理数据库;物理数据库; 有些有些已完成已完成的事务的更新结果可能有一部分甚至全部的事务的更新结果可能有一

44、部分甚至全部留在缓冲区,尚留在缓冲区,尚未写回未写回到物理数据库中。到物理数据库中。恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制系统故障的恢复 恢复的方法恢复的方法撤消(撤消( UNDO )所有未完成事务)所有未完成事务重做(重做( REDO )所有已提交的事务)所有已提交的事务系统故障的恢复是由系统在重新启动时自动系统故障的恢复是由系统在重新启动时自动完成的,不需要用户干预。完成的,不需要用户干预。 恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制系统故障的恢复系统进行恢复的步骤系统进行恢复的步骤B2 U3 U2 B1 C2 B5 U3 U5 A5 U

45、1 U4 B6 C4 U6 U1崩溃崩溃 未完成的事务:未完成的事务: T1T4T6T3 已提交的事务:已提交的事务:T2 扫描扫描恢复的策略恢复的策略需要需要UNDO需要需要REDO第第16讲讲 事务及其恢复机制事务及其恢复机制系统故障的恢复UNDO操作(操作(T1、T6、T3)U1Xold,XnewU6Zold,ZnewU1Yold,YnewC4B6U4XoldYoldZold扫描扫描U5 A5U3Xold,Xnew崩溃崩溃 B5恢复的策略恢复的策略Xold第第16讲讲 事务及其恢复机制事务及其恢复机制系统故障的恢复REDO操作(操作(T2、T4)U4Zold,ZnewU2Yold,Yne

46、wC2B1U3YnewZnewB2扫描扫描U1B6C4U6U1恢复的策略恢复的策略系系统统崩崩溃溃 第第16讲讲 事务及其恢复机制事务及其恢复机制系统故障的恢复涉及的复杂问题涉及的复杂问题日志先写日志先写并发事务并发事务效率效率恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制具有检查点的系统故障恢复检查点技术解决的问题检查点技术解决的问题有效有效减少减少搜索日志的搜索日志的时间时间有效有效减少减少重新启动系统时需要恢复的重新启动系统时需要恢复的事务事务减少恢复操作所需减少恢复操作所需的时间和资源的时间和资源恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制具有

47、检查点的系统故障恢复检查点的设置检查点的设置恢复子系统定期或不定期地设置检查点恢复子系统定期或不定期地设置检查点按照某种规则建立检查点按照某种规则建立检查点恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制具有检查点的系统故障恢复在检查点时刻系统所要完成的工作在检查点时刻系统所要完成的工作暂时中止现有事务的执行;暂时中止现有事务的执行;将当前日志缓冲区中的所有日志记录写入磁盘的日将当前日志缓冲区中的所有日志记录写入磁盘的日志文件中;志文件中;在日志文件中写入一个检查点记录;在日志文件中写入一个检查点记录;检查点记录的内容包括建立检查点时刻所有正检查点记录的内容包括建立检查点时刻

48、所有正在执行的事务清单在执行的事务清单 恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制具有检查点的系统故障恢复在检查点时刻系统所要完成的工作在检查点时刻系统所要完成的工作将当前数据缓冲区的所有数据记录写入磁盘的数将当前数据缓冲区的所有数据记录写入磁盘的数据库中;据库中;把检查点记录在日志文件中的地址写入一个重新把检查点记录在日志文件中的地址写入一个重新开始文件;开始文件; 重新开始执行现有事务。重新开始执行现有事务。恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制具有检查点的系统故障恢复与检查点和故障时刻有关的事务可能状态与检查点和故障时刻有关的事务可能状

49、态REDO事务列表事务列表T2、T4UNDO事务列表事务列表T3、T5tf(系统崩溃)(系统崩溃) Time T1 T2 T3 T4 tc(检查点)(检查点)T5恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制具有检查点的系统故障恢复与检查点和故障时刻有关的事务可能状态与检查点和故障时刻有关的事务可能状态B1B3U1B2C1CKT2,T3U3U3 B4U2U4 B5 C2 U5 C4崩溃崩溃 检查点检查点 恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制具有检查点的系统故障恢复系统进行恢复的步骤系统进行恢复的步骤从重新开始文件中找到最后一个检查点记录在日志从

50、重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一文件中的地址,由该地址在日志文件中找到最后一个检查点记录;个检查点记录;由该检查点记录得到在检查点建立时刻所有正在执由该检查点记录得到在检查点建立时刻所有正在执行的事务清单行的事务清单ACTIVE-LIST。如如T2、T3事务事务恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制具有检查点的系统故障恢复系统进行恢复的步骤系统进行恢复的步骤建立两个事务队列,把建立两个事务队列,把ACTIVE-LIST暂时放入暂时放入UNDO-LIST队列,队列,REDO-LIST队列暂时为空。队列暂时为空。UN

51、DO-LIST:需要执行:需要执行UNDO操作的事务集合操作的事务集合;REDO-LIST :需要执行:需要执行REDO操作的事务集合操作的事务集合。UNDO-LIST: T2、T3 REDO-LIST : 恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制具有检查点的系统故障恢复系统进行恢复的步骤系统进行恢复的步骤从检查点开始正向扫描日志文件从检查点开始正向扫描日志文件UNDO-LIST :B1B3U1B2C1CKT2,T3U3U3 B4U2U4B5C2U5 C4崩溃崩溃 检查点检查点 REDO-LIST :扫描扫描T2T3 T4T2T5T4恢复的策略恢复的策略第第16讲讲 事务及其恢复机制事务及其恢复机制具有检查点的系统故障恢复系统进行恢复的步骤系统进行恢复的步骤对对UNDO-LIST队列中的每个事务执行队列中的每个事务执行UNDO操作操作UNDO-LIST :B1B3U1B2C1CKT2,T3U3U3 B4U2U4B5C2U5 C4T3T5扫描扫描何时结束?何时结束?恢复的策略恢复的策略崩溃崩溃 检查点检查点 第第16讲讲 事务及其恢复

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论