- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章恢复技术讲述
* * §4.1 事务的基本概念 §4.2 故障的种类 §4.3 恢复的实现技术 §4.4 恢复策略 §4.5 具有检查点的恢复技术 §4.6 数据库镜像 第四章 数据库恢复技术 对数据库中存储的大量数据,有下面几个问题: 如何使数据资源只被相关人员合理使用? 如何恢复被破坏的数据? 如何协调多用户的工作来保证数据的一致性? 如何自动地发现用户的失误? ? 作为一个完善的DBMS,应该提供统一的数据保护功 能来保证数据的安全可靠和正确有效! 数据的安全性 数据的完整性 并发控制 数据库恢复 数据保护也叫数据控制,主要包括: 本章讨论数据库恢复技术。 问题:系统软、硬件故障对系统数据造成破坏时,该如何处理? 例:银行转帐 设从帐号A中拨一笔款X到帐号B,正常的执行过程是: ? 查看帐号A上是否有足够的款数,即余额 ? X ? 若余额 X, 则给出提示信息,中止执行。 若余额 ? X,则执行下面三步: ? 在A中记上一笔支出,从余额中减去 X; ? 把值X传到B上; ? 在B中记上一笔收入,在余额上加X,结束。 若在执行了第二步后突然断电或线路传输错误,则导致帐面不平 停电 1、事务(transaction) 一个数据库操作序列,是数据库应用程序的基本逻辑单元。 这些操作要么都做,要么都不做,是一个不可分割的执行单位。 主要是更新操作 定义事务的语句: BEGIN TRANSACTION COMMIT 或 ROLLBACK …… 事务开始 事务提交: 事务完成了其包含的所有活动,正常结束 事务回滚(中止): 撤消已做的所有操作, 回到事务开始时的状态 §4.1 事务的基本概念 事务结束 2、事务应具有的性质 (1)原子性(Atomicity):事务执行时的不可分割性, 即事务所包含的活动要么都做,要么都不做 若事务因故障而中止,则要设法消除该事务所产生 的影响,使数据库恢复到该事务执行前的状态。 (2)一致性(Consistency):事务对数据库的作用应 使数据库从一个一致状态到另一个一致状态 例如:一个帐号的收支之差应等于余额。 飞机订票系统,事务执行前后,座位与订出座位 等信息必须一致。 (3)隔离性(Isolation): 多事务并发执行,应象各事务独立执行一样,不能相互干扰。一个正在执行的事务其中间结果不能为其它事务所访问。 例如:有两个事务,在同一帐号上存款和贷款: 贷款事务 T1 存款事务 T2 存入款100元 贷出款50元 Commit Rollback T2中止,T1也必须中止, 造成链式事务中止 (cascading aborts) 余额10元 2、事务应具有的性质 (4)持久性(Durability): 一旦事务提交,不论执行 何种操作或发生何种故障,都不应对该事务的执行结果有任何影响。 能恢复 2、事务应具有的性质 3、 事务管理任务 事务管理的任务就是要保证事务满足上述性质。使事务不具有上述性质的因素可能是: (1)事务在运行过程中被强行终止; (2)多个事务并行运行时,不同事务的操作交叉执行。 因此事物管理又分为两个方面: 恢复技术:保证事务在故障时满足上述性质的技术。 并发控制:保证事务在并发执行时满足上述性质的技术。 §4.2 故障的种类 数据库系统中可能发生各种各样的故障,分为以下几类。 1、事务内部的故障 ? 可以通过事务程序本身发现并处理的故障 如银行转帐事务程序在余额小于转帐额时的情形 ? 非预期的故障(不能由应用程序处理) 如运算溢出、被零除、发生死锁时被选中撤消等 通常,我们所说的事务故障仅指非预期故障。事务故障意味着事务没有达到预期的终点(COMMIT或者显式的ROLLBACK),因此数据库可能处于不一致状态,恢复程序应在不影响其他事务的情况下,撤消故障事务的所有修改,使得故障事务就象没有运行一样。这类操作称为事务撤消(UNDO)。 2、系统范围内的故障:软故障 ? 造成系统停止的任何事件,如CPU故障、操作系统故障、程序代码错误、断电等,使得系统必须重新启动。 ? 特征:影响所有正在运行的事务,但不破坏数据库。它们可引起缓冲区内容丢失,并使所有正在运行的事务不能到达预期终点。 系统故障发生时,可能使数据库处于不一致状态: (1)有些非正常终止事务的结果可能已写入数据
文档评论(0)