关系数据库事务处理技术课件_第1页
关系数据库事务处理技术课件_第2页
关系数据库事务处理技术课件_第3页
关系数据库事务处理技术课件_第4页
关系数据库事务处理技术课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

第10讲事务处理技术参考教材第10——11章第10讲事务处理技术参考教材第10——11章2本讲内容事务的基本概念数据库恢复技术并发控制技术有所了解即可2本讲内容有所了解即可3什么是事务事务是用户定义的一个数据库操作序列该序列内的操作是不可分割的在RDBMS中,一个事务可由一条、多条SQL语句组成在RDBMS中,用于事务的标准SQL语句有BEGINTRANSACTION开始事务COMMIT提交事务所有操作,事务正常结束ROLLBACK事务执行中遇故障,回滚到事务开始时的状态,事务结束3什么是事务事务是用户定义的一个数据库操作序列4事务的特性原子性(Atomicity)同一事务内的操作不可分割一致性(Consistency)事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态隔离性(Isolation)一个事务的执行不能被其他事务干扰4事务的特性原子性(Atomicity)5事务的特性持续性(Durability)某一事务一旦提交,其对数据库中数据的改变就是永久性的发生于该事务提交后的其他操作或故障,均不影响该事务的执行结果事务的四个特征Atomicity、Consistency、Isolation、DurabilityACID特性5事务的特性持续性(Durability)6事务的处理技术事务处理技术用于保证事务的ACID特性保证被强行终止的事务对数据库和其他事务没有任何影响数据库恢复技术保证多个事务的交叉运行不影响这些事务的原子性并发控制6事务的处理技术事务处理技术用于保证事务的ACID特性7本讲内容事务的基本概念数据库恢复技术并发控制技术7本讲内容8数据库恢复技术故障种类恢复的实现技术恢复的策略8数据库恢复技术9事务内部故障事务内部故障有两大类可通过事务程序发现的,ROLLBACK非预期的,不能由应用程序处理若未特别指明,事务故障特指这一类故障事务故障意味着事务没有到达预期的终点数据库可能处于不正确的状态9事务内部故障事务内部故障有两大类10系统故障所有造成系统停止运转的事件都可称为系统故障发生系统故障可能造成数据库缓冲区中内容丢失,使得运行的事务非正常终止已完成的事务部分或全部留在缓冲区,尚没有写到物理数据库中10系统故障所有造成系统停止运转的事件都可称为系统故障11介质故障系统故障又称为软故障介质故障被称为硬故障,比如磁盘损坏、瞬时强磁场干扰等破坏部分或整个数据库,影响正在存取相应数据的事务发生机率小于前两种故障,但破坏性大11介质故障系统故障又称为软故障12数据库恢复技术故障种类恢复的实现技术恢复的策略12数据库恢复技术13数据库恢复机制的关键建立冗余数据利用冗余数据恢复数据库建立冗余数据的常用技术数据转储登记日志文件13数据库恢复机制的关键14数据转储DBA定期地将整个数据库复制到磁盘或另一个磁盘上保存的过程称为转储备用数据称为后备副本转储运行事务重装后备副本重新运行事务14数据转储DBA定期地将整个数据库复制到磁盘或另一个磁盘上15数据转储的分类静态转储在系统中无运行事务时进行的转储只要转储开始时数据库处于一致性状态,则得到的后备副本一定是一致的由于对事务运行的限制,可能降低数据库可用性动态转储在转储期间允许对数据库进行存取或修改得到的后备副本不一定是一致的15数据转储的分类静态转储16数据转储的分类海量转储每次转储全部数据库用得到的后备副本进行数据库恢复比较方便但如果数据库大且事务处理频繁,则不实用增量转储每次只转储上一次转储后被更新过的数据转储和使用后备副本进行恢复时比海量转储麻烦16数据转储的分类海量转储17日志文件概念及格式日志文件是用于记录事务对数据库的更新操作的文件不同RDBMS采用的日志文件格式不完全一样日志文件的格式以记录为单位的日志文件事务标识、操作类型、操作对象、更新前数据的值、更新后数据的值以数据库块为单位的日志文件事务标识、更新前的数据块、更新后的数据块17日志文件概念及格式日志文件是用于记录事务对数据库的更新操18日志文件的作用事务故障和系统故障的恢复必须使用登记日志动态转储方式中,必须使用登记日志静态转储中,也可能用到登记日志转储运行事务重装后备副本重新运行事务18日志文件的作用事务故障和系统故障的恢复必须使用登记日志转19登记日志文件的准则日志的登记次序严格按并发事务执行的时间次序必须先写日志文件,后写数据库将数据的修改写到数据库中是一个操作将表示该数据修改的日志写到日志文件中又是一个操作两操作执行时可能发生发生故障19登记日志文件的准则日志的登记次序严格按并发事务执行的时间20数据库恢复技术故障种类恢复的实现技术恢复的策略20数据库恢复技术21事务故障的恢复事务故障的恢复由系统自动完成,对用户透明某事务发生故障后,系统恢复步骤1.反向扫描日志文件,查找该事务的更新操作2.对该事务的更新操作执行逆操作3.继续反向扫描日志,查找该事务的其他更新操作,返24.直到反向扫描到事务的开始标记21事务故障的恢复事务故障的恢复由系统自动完成,对用户透明22系统故障的恢复系统故障恢复由系统自动完成,不需用户干预系统故障的恢复步骤1.正向扫描日志文件,找出在故障发生前已提交的事务,将其事务标识记入重做队列;找出故障发生时尚未完成的事务,将其事务标识记入撤消队列2.对撤消队列中的各个事务进行撤消处理3.对重做队列中的各个事务进行重做处理22系统故障的恢复系统故障恢复由系统自动完成,不需用户干预23介质故障的恢复最严重的故障,磁盘上的物理数据和日志文件被破坏介质故障的恢复步骤1.装入最新的数据库后备副本,使数据库恢复到最近一次转储时的一致性状态2.装入相应的日志文件副本,重做已完成的事务23介质故障的恢复最严重的故障,磁盘上的物理数据和日志文件被24本讲内容事务的基本概念数据库恢复技术并发控制技术24本讲内容25并发操作及其引发的问题并发控制的实现封锁两段锁协议2526并发操作的必要性事务一个一个串行执行,可避免同时运行多个事务所引发的冲突但无法充分利用系统资源不同的事务,在执行过程中需不同

的资源串行执行所有事务,导致某些系统

资源处于空闲T1T2T326并发操作的必要性事务一个一个串行执行,可避免同时运行多个27并发的分类交叉并发(InterleavedConcurrency)单CPU处理系统中采用的并发方式事务轮流交叉运行不是真正意义上的并发同时并发(SimultaneousConcurrency)多CPU处理系统中采用的并发方式每个CPU运行一个事务是真正意义上的并发27并发的分类交叉并发(InterleavedConcur28并发操作引发的问题丢失修改两事务同时读入同一数据并修改某一事务提交的结果破坏了另一事务提交的结果T1T2R(A)=16R(A)=16A=A-1

W(A)=15A=A-1

W(A)=1528并发操作引发的问题丢失修改T1T2R(A)=16R29并发操作引发的问题不可重复读两事务并发操作某一事务T1读取数据后,另一事务T2执行了更新操作,使T1无法再现前一次读取的结果T1T2R(A)=50、R(B)=100求和=150R(B)=100、B=B*2W(B)=200R(A)=50、R(B)=200

求和=250(两次结果不一)29并发操作引发的问题不可重复读T1T2R(A)=5030并发操作引发的问题读“脏”数据两事务并发操作某一事务T1修改某一数据,并将其写入数据;另一事务T2读取该数据后,T1回滚事务T2读到的数据是不正确的数据T1T2R(C)=100、C=C*2=200W(C)=200R(C)=200ROLLBACK

C恢复为10030并发操作引发的问题读“脏”数据T1T2R(C)=131并发控制的必要性当多个事务对数据库进行并发操作,可能造成丢失修改、不可重复读、读“脏”数据等问题破坏事务的ACID特性为保证事务的隔离性、一致性,需对并发操作进行控制并发控制机制也是衡量一个RDBMS性能的重要指标之一31并发控制的必要性32并发操作及其引发的问题并发控制的实现封锁两段锁协议3233封锁事务T对某个数据对象进行操作前,向系统发出加锁请求系统加锁,事务T拥有对该数据对象的控制控制程度由所加锁类型确定事务T释放所加的琐之前,其他事务不可更新该数据对象事务T执行完后,释放所加的琐33封锁事务T对某个数据对象进行操作前,向系统发出加锁请求34常用锁类型排它锁(写锁)Xlock事务T对数据对象A加Xlock,则只有T才可读取、修改A其他事务不可对A加任何类型的锁,直到T释放A上的锁共享锁(读锁)Slock事务T对数据对象A加Slock,则T可读A但不能修改A其他事务可对A加Slock,直到T释放A上的锁34常用锁类型排它锁(写锁)Xlock35封锁解决丢失修改T1T2Xlock(A)

R(A)=16请求

waitA=A-1

W(A)=15

Commit

Ulock(A)wait

wait

wait

Xlock(A)R(A)=15A=A-1

W(A)=14

CommitUnlock(A)35封锁解决丢失修改T1T2Xlock(A)

R(A)=1636封锁存在的问题死锁相互等待,事务无法结束T1封锁R1T2封锁R2请求封锁R2等待T2请求封锁R1等待T136封锁存在的问题死锁T1封锁R1T2封锁R2请求封锁R2请37死锁的预防一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行缺点:扩大封锁范围,降低系统并发性

无法准确预期哪些数据被加锁顺序封锁法预先对数据对象规定一个封锁顺序,所有事务按该顺序实行封锁缺点:维护成本高、很难准确预测封锁对象37死锁的预防一次封锁法38死锁的诊断超时法当一事务等待时间超过预定值,则诊断为发生了死锁难点:超时时间的设定等待图法以

温馨提示

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

评论

0/150

提交评论