您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 《数据库系统概论》第5版原版授课-第10章..
AnIntroductiontoDatabaseSystem数据库系统概论AnIntroductiontoDatabaseSystem第十章数据库恢复技术中国人民大学信息学院AnIntroductiontoDatabaseSystem第十章数据库恢复技术10.1事务的基本概念10.2数据库恢复概述10.3故障的种类10.4恢复的实现技术10.5恢复策略10.6具有检查点的恢复技术10.7数据库镜像10.8小结AnIntroductiontoDatabaseSystem10.1事务的基本概念1.事务2.事务的ACID特性AnIntroductiontoDatabaseSystem1.事务事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务和程序是两个概念在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序一个程序通常包含多个事务事务是恢复和并发控制的基本单位AnIntroductiontoDatabaseSystem定义事务显式定义方式BEGINTRANSACTIONBEGINTRANSACTIONSQL语句1SQL语句1SQL语句2SQL语句2。。。。。。。。。。COMMITROLLBACK隐式方式当用户没有显式地定义事务时,数据库管理系统按缺省规定自动划分事务事务异常终止事务运行的过程中发生了故障,不能继续执行系统将事务中对数据库的所有已完成的操作全部撤销事务滚回到开始时的状态事务正常结束提交事务的所有操作(读+更新)事务中所有对数据库的更新写回到磁盘上的物理数据库中AnIntroductiontoDatabaseSystem事务结束COMMIT事务正常结束提交事务的所有操作(读+更新)事务中所有对数据库的更新写回到磁盘上的物理数据库中ROLLBACK事务异常终止事务运行的过程中发生了故障,不能继续执行系统将事务中对数据库的所有已完成的操作全部撤销事务滚回到开始时的状态AnIntroductiontoDatabaseSystem10.1事务的基本概念1.事务2.事务的ACID特性AnIntroductiontoDatabaseSystem2.事务的特性(ACID特性)事务的ACID特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)AnIntroductiontoDatabaseSystem(1)原子性事务是数据库的逻辑工作单位事务中包括的诸操作要么都做,要么都不做AnIntroductiontoDatabaseSystem(2)一致性事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态一致性状态数据库中只包含成功事务提交的结果不一致状态数据库系统运行中发生故障,有些事务尚未完成就被迫中断;这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态AnIntroductiontoDatabaseSystem一致性与原子性银行转帐:从帐号A中取出一万元,存入帐号B。定义一个事务,该事务包括两个操作这两个操作要么全做,要么全不做全做或者全不做,数据库都处于一致性状态。如果只做一个操作,用户逻辑上就会发生错误,少了一万元,数据库就处于不一致性状态。B=B+1A=A-1BAAnIntroductiontoDatabaseSystem(3)隔离性一个事务的执行不能被其他事务干扰一个事务内部的操作及使用的数据对其他并发事务是隔离的并发执行的各个事务之间不能互相干扰AnIntroductiontoDatabaseSystem(4)持续性持续性也称永久性(Permanence)一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。AnIntroductiontoDatabaseSystem事务的特性保证事务ACID特性是事务处理的任务破坏事务ACID特性的因素(1)多个事务并行运行时,不同事务的操作交叉执行数据库管理系统必须保证多个事务的交叉运行不影响这些事务的隔离性(2)事务在运行过程中被强行停止数据库管理系统必须保证被强行终止的事务对数据库和其他事务没有任何影响AnIntroductiontoDatabaseSystem第十章数据库恢复技术10.1事务的基本概念10.2数据库恢复概述10.3故障的种类10.4恢复的实现技术10.5恢复策略10.6具有检查点的恢复技术10.7数据库镜像10.8小结AnIntroductiontoDatabaseSystem10.2数据库恢复概述故障是不可避免的计算机硬件故障软件的错误操作员的失误恶意的破坏故障的影响运行事务非正常中断,影响数据库中数据的正确性破坏数据库,全部或部分丢失数据AnIntroductiontoDatabaseSystem数据库恢复概述(续)数据库的恢复数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)的功能,这就是数据库的恢复管理系统对故障的对策恢复子系统是数据库管理系统的一个重要组成部分恢复技术是衡量系统优劣的重要指标AnIntroductiontoDatabaseSystem第十章数据库恢复技术10.1事务的基本概念10.2数据库恢复概述10.3故障的种类10.4恢复的实现技术10.5恢复策略10.6具有检查点的恢复技术10.7数据库镜像10.8小结AnIntroductiontoDatabaseSystem故障的种类1.事务内部的故障2.系统故障3.介质故障4.计算机病毒AnIntroductiontoDatabaseSystem1.事务内部的故障事务内部的故障有的是可以通过事务程序本身发现的(见下面转账事务的例子)有的是非预期的,不能由事务程序处理的。AnIntroductiontoDatabaseSystem事务内部的故障(续)例如,银行转账事务,这个事务把一笔金额从一个账户甲转给另一个账户乙。BEGINTRANSACTION读账户甲的余额BALANCE;BALANCE=BALANCE-AMOUNT;/*AMOUNT为转账金额*/IF(BALANCE0)THEN{打印‘金额不足,不能转账’;/*事务内部可能造成事务被回滚的情况*/ROLLBACK;/*撤销刚才的修改,恢复事务*/}ELSE{读账户乙的余额BALANCE1;BALANCE1=BALANCE1+AMOUNT;写回BALANCE1;COMMIT;}AnIntroductiontoDatabaseSystem事务内部的故障(续)事务内部更多的故障是非预期的,是不能由应用程序处理的。运算溢出并发事务发生死锁而被选中撤销该事务违反了某些完整性限制而被终止等以后,事务故障仅指这类非预期的故障AnIntroductiontoDatabaseSystem事务内部的故障(续)事务故障意味着事务没有达到预期的终点(COMMIT或者显式的ROLLBACK)数据库可能处于不正确状态。事务故障的恢复:事务撤消(UNDO)强行回滚(ROLLBACK)该事务撤销该事务已经作出的任何对数据库的修改,使得该事务象根本没有启动一样AnIntroductiontoDatabaseSystem2.系统故障系统故障称为软故障,是指造成系统停止运转的任何事件,使得系统要重新启动。整个系统的正常运行突然被破坏所有正在运行的事务都非正常终止不破坏数据库内存中数据库缓冲区的信息全部丢失AnIntroductiontoDatabaseSystem系统故障的常见原因特定类型的硬件错误(如CPU故障)操作系统故障数据库管理系统代码错误系统断电AnIntroductiontoDatabaseSystem系统故障的恢复发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,造成数据库可能处于不正确状态。恢复策略:系统重新启动时,恢复程序让所有非正常终止的事务回滚,强行撤消(UNDO)所有未完成事务AnIntroductiontoDatabaseSystem系统故障的恢复发生系统故障时,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,系统故障使得这些事务对数据库的修改部分或全部丢失恢复策略:系统重新启动时,恢复程序需要重做(REDO)所有已提交的事务AnIntroductiontoDatabaseSystem3.介质故障介质故障称为硬故障,指外存故障磁盘损坏磁头碰撞瞬时强磁场干扰介质故障破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务介质故障比前两类故障的可能性小得多,但破坏性大得多AnIntroductiontoDatabaseSystem4.计算机病毒计算机病毒一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程序可以繁殖和传播,造成对计算机系统包括数据库的危害计算机病毒种类小的病毒只有20条指令,不到50B大的病毒像一个操作系统,由上万条指令组成AnIntroductiontoDatabaseSystem计算机病毒(续)计算机病毒的危害有的病毒传播很快,一旦侵入系统就马上摧毁系统有的病毒有较长的潜伏期,计算机在感染后数天或数月才开始发病有的病毒感染系统所有的程序和数据有的只对某些特定的程序和数据感兴趣计算机病毒已成为计算机系统的主要威胁,自然也是数据库系统的主要威胁数据库一旦被破坏仍要用恢复技术把数据库加以恢复AnIntroductiontoDatabaseSystem故障小结各类故障,对数据库的影响有两种可能性一是数据库本身被破坏二是数据库没有被破坏,但数据可能不正确,这是由于事务的运行被非正常终止造成的。AnIntroductiontoDatabaseSystem恢复恢复操作的基本原理:冗余利用存储在系统别处的冗余数据来重建数据库中已被破坏或不正确的那部分数据恢复的实现技术:复杂一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上AnIntroductiontoDatabaseSystem第十章数据库恢复技术10.1事务的基本概念10.2数据库恢复概述10.3故障的种类10.4恢复的实现技术10.5恢复策略10.6具有检查点的恢复技术10.7数据库镜像10.8小结AnIntroductiontoDatabaseSystem10.4恢复的实现技术恢复机制涉及的关键问题1.如何建立冗余数据数据转储(backup)登记日志文件(logging)2.如何利用这些冗余数据实施数据库恢复AnIntroductiontoDatabaseSystem10.4恢复的实现技术10.4.1数据转储10.4.2登记日志文件AnIntroductiontoDatabaseSystem10.4.1数据转储1.什么是数据转储2.转储方法AnIntroductiontoDatabaseSystem1.什么是数据转储转储是指数据库管理员定期地将整个数据库复制到磁带、磁盘或其他存储介质上保存起来的过程备用的数据文本称为后备副本(backup)或后援副本AnIntroductiontoDatabaseSystem数据转储(续)数据库遭到破坏后可以将后备副本重新装入重装后备副本只能将数据库恢复到转储时的状态要想恢复到故障发生时的状态,必须重新运行自转储以后的所有更新事务AnIntroductiontoDatabaseSystem数据转储(续)故障发生点转储运行事务正常运行─┼───────┼─────────↓────TaTbTf重装后备副本重新运行事务恢复─┼───────┴-----------→[例]转储和恢复AnIntroductiontoDatabaseSystem2.转储方法
本文标题:《数据库系统概论》第5版原版授课-第10章..
链接地址:https://www.777doc.com/doc-1867328 .html