事务概念及恢复_第1页
事务概念及恢复_第2页
事务概念及恢复_第3页
事务概念及恢复_第4页
事务概念及恢复_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

主讲教师:魏巍巍北京信息职业技术学院数据库技术与应用事务概念及恢复创建采集任务01事务的特性故障种类应对措施010203目录CONTENTS事务的特性01在数据库环境中,事务是一个十分重要的概念。事务是由一系列的对数据库的查询操作和更新操作构成,这些操作是一个整体,不能分割,即要么所有的操作都顺利完成,要么一个操作也不要做,绝不能只完成了部分操作,而还有一些操作没有完成。事务是数据库运行中的一个逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。事务的特性事务的特性:(1)原子性(Atomicity)一个事务中的所有操作,是一个逻辑上不可分割的单位。(2)一致性(Consistency)数据库处于一个一致性状态是指数据库中的数据满足各种完整性约束。事务的特性(3)隔离性(Isolation)隔离性的含义是指无论同时有多少事务在执行,DBMS会保证事务之间互不干扰,就像只有一个事务在运行一样。(4)持久性(Durability)

DBMS的恢复子系统采用日志和备份技术保证事务的持久性。 事务的这四个特性一般简称为事务的ACID特性。事务的特性定义事务的SQL语句定义事务的SQL语句有三条:1.启动事务:

BEGINTRANSACTION2.提交事务

COMMITTRANSACTION3.回滚语句

ROLLBACKTRANSACTION事务的特性[例]假设把事例数据库的Course表增加一个Limit列,用于存储允许选修这门课程的最大人数。当有一个学生报名选修这门课程,将其Limit分量上的值减1。如果课程的Limit分量的值等于0时,就不允许其它的学生选修这门课程。事务的特性定义事务的SQL语句INSERTINTOSCVALUES('2000113','1024',NULL);SELECT@num=Limit--取出选课人数限制FROMCourseWHERECno='1024';IF@num=0--选课人数已满

ROLLBACKTRANSACTION--回滚事务ELSEBEGINUPDATECourseSETLimit=@num–1WHERECno='1024';COMMITTRANSACTION--提交事务

END事务的特性故障种类02下图显示了DBMS中的数据如何流动的:②DB系统缓冲区T1工作区T2工作区内存②①①图1数据的流动标号①和②的流程分别是读操作和写操作的数据流动过程。故障种类1、事务故障事务在运行过程中,如果出现运算溢出,违反了某些完整性规则,某些应用程序的错误,以及并发事务发生死锁等,使事务不能继续执行下去,这种情况称为事务故障。出现事务故障会造成事务的一部分操作已经完成,并且操作结果也保存到了数据库中,违反了事务的原子性要求,使得数据库处于不一致性状态。故障种类2、系统故障系统故障是指系统在运行过程中,由于某种原因,如操作系统或DBMS代码错误,操作员操作失误、特定类型的硬件错误(如CPU故障)、突然停电等造成系统停止运行,丢失了系统缓冲区中的数据,而存储在磁盘中的数据未受到影响。故障种类3、介质故障系统在运行过程中,由于某种硬件故障,如磁盘坏损,磁头碰撞、或由于操作系统的某种潜在的错误、瞬时强磁场干扰,使存储在外存上的数据部分损失或全部损失,称为介质故障。这类故障比前两类故障的可能性小的多,但破坏性最大,所有正在运行的事务被中止,系统缓冲区中的数据无法写到磁盘,存储在磁盘上的数据全部丢失!故障种类应对措施031、日志文件事务由一系列对数据库的读写操作组成,按照操作执行的先后次序,记录下事务所执行的所有对数据库的写操作(更新操作),就构成了事务的日志文件。(1)日志文件的格式和内容日志文件从逻辑上来看是由若干条记录构成的,这些记录叫做日志记录,同一个事务的日志记录组织成了一个链表。应对措施应对措施T1UCourse(Limit)8079(b)(a)BeginInsertRollbackBeginInsertCommitUpdate图2事务日志文件示意图应对措施在图2中,图(a)为向一个表中插入一条记录,出错了,则终止事务执行。图2(b)中给出Update记录的内部结构,T1表示发出操作的是事务T1,U表示操作类型是修改(Update),Course(Limit)表示修改的数据对象是Course表的Limit列,修改前的值是80,修改后的值是79。应对措施 从图5.2可见,日志文件由若干记录组成,记录有三种类型,一是记录事务的开始,图中用Begin表示,主要记录事务的内部标识和开始时间;二是记录事务的结束,图中用Rollback和Commit表示,主要记录事务的内部标识和结束时间;三是记录事务的更新操作。应对措施其中事务的更新操作用Update表示,更新要记录以下的信息:1.事务标识(标明是哪个事务)2.操作的类型(插入、删除或修改)3.操作对象(记录内部标识)4.更新前数据的旧值(对插入操作而言,此项为空值)5.更新后数据的新值(对删除操作而言,此项为空值)应对措施(2)登记日志文件日志文件为数据库的数据建立了副本(冗余),为了保证数据库数据的可恢复性,必须坚持先写日志,后写数据的原则事务更新了某个数据后,把数据由工作区复制到系统缓冲区,同时形成了一条日志记录,该日志记录也被存放到系统缓冲区。

DBMS保证,把更新后的数据由系统缓冲区移动到数据库之前,要首先把相应的日志记录写到日志文件中,这叫做先写日志规则。图5.3解释了规则的含义。应对措施第一步,事务把更新后的数据和形成的日志记录写到系统缓冲区。第二步,将日志记录写到磁盘上的日志文件。第三步,把更新后的数据写到数据库。DB系统缓冲区T1工作区T2工作区内存①②Log③图3先写日志后写数据库应对措施2、数据库备份为了处理介质故障,需要由DBA定期地将数据库和日志文件复制到磁带或磁盘上,并将这些备用的数据文本妥善地保存起来,当数据库遭到破坏时就可以将后备副本重新装入,恢复数据库。

应对措施制做备份的过程称为转储。转储是十分耗费时间和资源的,不能频繁进行。DBA应根据应用情况确定适当的转储时间和周期。转储可以分为增量转

温馨提示

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

评论

0/150

提交评论