第十章 数据库恢复技术.ppt
《第十章 数据库恢复技术.ppt》由会员分享,可在线阅读,更多相关《第十章 数据库恢复技术.ppt(36页珍藏版)》请在麦多课文档分享上搜索。
1、第十章 数据库恢复技术,10.1 事务的基本概念 10.2 数据库恢复概述 10.3 故障的种类 10.4 恢复的实现技术 10.5 恢复策略 10.6 具有检查点的恢复技术 10.7 数据库镜像,10.1 事务的基本概念,一、事务,事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。 事务和程序是两个概念 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序; 一个应用程序通常包含多个事务。 事务是恢复和并发控制的基本单位。,二、如何定义事务,显式定义方式BEGIN TRANSACTIONSQL 语句1SQL
2、 语句2 COMMIT,隐式方式 当用户没有显式地定义事务时, DBMS按缺省规定自动划分事务,COMMIT 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新永久生效,ROLLBACK事务异常终止 事务运行的过程中发生了故障,不能继续执行 回滚事务的所有更新操作 事务滚回到开始时的状态,BEGIN TRANSACTION SQL 语句1 SQL 语句2 ROLLBACK,三、事务的特性(ACID特性),原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability ) 也称永久性(Permanence),事务是数
3、据库的逻辑工作单位。 事务中包括的诸操作要么都做,要么都不做。,事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。,一个事务的执行不能被其他事务干扰 一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰,一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 接下来的其他操作或故障不应该对其执行结果有任何影响。,保证事务ACID特性是事务处理的任务 破坏事务ACID特性的因素 多个事务并行运行时,不同事务的操作交叉执行; 事务在运行过程中被强行停止。,10.2 数据库恢复概述,故障是不可避免的 计算机硬件故障; 系统软件和应用软件的错误;
4、 操作员的失误; 恶意的破坏。 故障的影响 运行事务非正常中断; 破坏数据库。 数据库管理系统对故障的对策 DBMS提供恢复子系统; 保证故障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的状态; 保证事务ACID。,恢复技术是衡量系统优劣的重要指标,10.3 故障的种类,事务故障 系统故障 介质故障 计算机病毒,一、事务内部故障,指某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了。 事务内部故障有的是可以通过程序本身发现的;,有的是非预期的,不能由事务程序处理,如:输入数据有误、运算溢出、违反了某些完整性限制、某些应用程序出错、并行事务发生死锁等等。以后,事务故障仅指这一类
5、故障 。 事务故障意味着事务没有达到预期的终点(COMMIT或者显式的ROLLBACK),因此,数据库可能处于不正确状态。恢复程序要在不影响其它事务运行的情况下,强行回滚(ROLLBACK)该事务,即撤消该事务已经作出的任何对数据库的修改,使得该事务好象根本没有启动一样。 这类恢复操作称为事务撤消(UNDO)。,例如:银行转帐事务。这个事务把一笔金额从一个帐户甲转给另一个帐户乙。 BEGIN TRANSACTION 读帐户甲的余额BALANCE;BALANCEBALANCE - AMOUNT;(Amount为转帐金额)IF (BALANCE 0) THEN打印 金额不足,不能转帐;ROLLBA
6、CK;(撤消刚才的修改,恢复事务)ELSE读帐户乙的余额BALANCE1;BALANCE1BALANCE1 + AMOUNT;写回BALANCE1;COMMIT; ,二、系统故障,系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。 引起的原因:特定类型的硬件错误(CPU故障)、操作系统故障、DBMS代码错误、突然停电等等。 故障的后果:影响正在运行的所有事务,但不破坏数据库。 这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。 发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁
7、盘上的物理数据库中,从而造成数据库可能处于不正确的状态。 故障的恢复:为保证数据一致性,恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤消(UNDO)所有未完成事务。重做(Redo)所有已提交的事务,以将数据库真正恢复到一致状态。,三、介质故障,系统故障常称为软故障(Soft Crash)。 介质故障称为硬故障(Hard Crash)。 硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。 硬故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性最大。 硬故障的恢复:装入数据库发生介质故障前某个时刻的数据副本,重
8、做自此时开始的所有成功事务,将这些事务已提交的结果重新记入数据库,四、计算机病毒,计算机病毒是一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程序,这种程序与其他程序不同, 它象微生物学所称的病毒一样可以繁殖和传播,并造成对计算机系统包括数据库的危害。,总结各类故障,对数据库的影响有两种可能性,一是数据库本身被破坏,二是数据库没有破坏,但数据可能不正确, 这是因为事务的运行被中止造成的。,恢复操作的基本原理:冗余利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据 恢复的实现技术:复杂一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上。,10.4 恢复的实现
9、技术,恢复机制涉及的关键问题 1. 如何建立冗余数据 数据转储(backup) 登录日志文件(logging) 2. 如何利用这些冗余数据实施数据库恢复,10.4.1 数据转储,一、什么是转储,故障发生点转储 运行事务 正常运行 Ta Tb Tf重装后备副本 重新运行事务 恢复 图7.1 转储和恢复,二、转储的用途,转储是指DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程。 这些备用的数据文本称为后备副本或后援副本。,三、转储方法,1静态转储与动态转储 2海量转储与增量转储,1静态转储,在系统中无运行事务时进行转储; 转储开始时数据库处于一致性状态; 转储期间不允许对数据库的任何存取、
10、修改活动; 优点:实现简单; 缺点:降低了数据库的可用性。 转储必须等用户事务结束; 新的事务必须等转储结束。,2 动态转储,转储操作与用户事务并发进行; 转储期间允许对数据库进行存取或修改; 优点: 不用等待正在运行的用户事务结束; 不会影响新事务的运行。 动态转储的缺点: 不能保证副本中的数据正确有效。 利用动态转储得到的副本进行故障恢复时 需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件 后备副本加上日志文件才能把数据库恢复到某一时刻的正确状态,3海量转储与增量转储,海量转储: 每次转储全部数据库。 增量转储: 只转储上次转储后更新过的数据。 海量转储与增量转储比较: 从
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十 数据库 恢复 技术 PPT
