- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库第七章节课件
7.1 事务管理概况 事务典型事例: 例1,转帐事务 设某公司在银行中有A,B两个帐号,现在公司想从帐号A中取出1万元,存入帐号B。 显然,在A中取出1万元的操作和在B中增加1万元的操作要么都成功完成,要么都不做。因此,需要把这二个操作定义在一个事务中。 例2,飞机订票系统 (1) 甲售票点读出某航班的机票余额=16;(2) 乙售票点读出同一航班的机票余额也为16;(3) 甲售票点卖出一张机票,修改余额为15,并把A写回数据库;(4) 乙售票点也卖出一张机票,也修改余额为15,并把A写回数据库。 结果卖出了两张机票,数据库中机票余额只减少1张。原因是甲乙售票过程是交叉进行的。因此,要把甲乙售票点的操作放在两个事务中,一个执行完了才能执行另一个。 DBMS中的事务控制: (1) 隐式的事务控制:默认情况下,DBMS一般将一个数据库操作(如一条SQL语句)当作一个事务来控制执行。 说明:事实上,有时一条SQL语句的工作也有事务特点,例如一条删除多行数据的SQL语句。 (2) 显式的事务控制:对涉及多步操作的(一般含多条SQL语句) 、有事务特点的工作,则需要人为地、显式地将这些操作“界定”组合成一个事务交DBMS控制执行。 二. 事务的ACID准则 DBMS为保证在并发访问和故障情况下对数据的维护,要求事务有如下四个重要特征或准则(ACID): 原子性(Atomicity)、 一致性(Consistency)、 分离性(Isolation) 、 持久性(Durability), (4)持久性(Durability): 持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。 即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,耐得住任何系统故障。 持久性通过数据库备份和恢复来保证。 7.2 故障恢复导论 数据库恢复操作是指在系统出现故障时,由系统管理员或数据库所有者利用数据库备份和日志备份恢复系统或用户数据库。 数据库恢复的目标是使之恢复到故障发生之前数据库最后的完整性状态。 数据库系统的主要故障 事务故障 系统故障 存储介质故障 1、 事务故障 例如:银行转帐事务,把一笔金额从帐户A转移到帐户B,如果帐户A的存款不够转帐的金额,该事务就必须撤消。 事务故障是指一个事务因自身原因不能执行完。流产的原因有二: 一种是由用户干预进行流产; 一种是需要解决死锁要rolledback。 这类故障的最大特点是有完整的主存和外存,并且是单事务效应。 事务内部大部分的故障是非预期的,是不能由应用程序处理的。如运算溢出,并发事务发生死锁而被选中撤销事务,违反了某些完整性限制等。 事务的故障意味着事务没有到达预期的终点(COMMIT或者显式的ROLLBACK),因此,恢复程序要在不影响其它事务运行的情况下,强行回滚。 2、 系统故障 系统故障指硬件、操作系统或DBMS突然进到一种停机状态,系统不能从这种状态再继续执行。 在这种情况下,主存的某些内容或全部内容会丢失,但外存仍是完好无损的,而且要影响到任意数目的事务。 3、 存储介质故障 存储介质故障是指存储设备发生故障,。这种情况丢失的是永久性信息,主存完好无事。 介质故障和系统故障其区别在于一个是硬故障,一个是软故障。 数据库恢复的策略 1.事务提交 2.日志和日志文件 3.数据库转储(备份) 4.具有检查点的恢复技术 5.先写日志的原则 6.数据库镜像 DBMS综合使用这些技术才能完成对数据库的恢复。 1. 事务提交 数据库恢复,从事务观点来看,要把数据库恢复到一个事务执行前的状态或执行完的状态。(1) 事务的前映像:事务执行之前的老数据称该事务的前映像。(2) 事务的后映像:事务执行之后新数据称该事务的后映像。 2. 日志和日志文件 日志文件是用来记录对数据库更新活动的文件。日志记录了每个事务对数据库更新的全部情况。所有事务的更新日志都放在同一个日志文件中。 日志记录的基本内容应当包括:● 事务标识;● 事务运行的关键时间,如开始时间、提交时间等;● 对数据库的更新操作类型(增加、删除、修改)和操作对象;● 更新事务的前映像和后映像内容。 利用日志文件恢复数据库的过程是顺序扫描日志文件,区分在故障时完成的事务和尚未完成的事务,作如下处理: (1) 重做(Redo)在故障时已完成的所有事务,可通过拷贝它们的后映像来实现。(2) 撤消(Undo)在故障时尚未完成的所有事务,可通过拷贝事务的前映像实现。DBMS通常利用数据库转储和日
文档评论(0)