书签 分享 收藏 举报 版权申诉 / 25
上传文档赚钱

类型数据库课件:第7讲 数据库的并发控制与恢复技术.ppt

  • 上传人(卖家):罗嗣辉
  • 文档编号:2040562
  • 上传时间:2022-01-19
  • 格式:PPT
  • 页数:25
  • 大小:547.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《数据库课件:第7讲 数据库的并发控制与恢复技术.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据库课件:第7讲 数据库的并发控制与恢复技术 数据库 课件 并发 控制 恢复 技术
    资源描述:

    1、1第第7讲讲 数据库的并发控制与恢复技术数据库的并发控制与恢复技术思考以下问题思考以下问题: 1. 多用户同时访问(并发操作)数据多用户同时访问(并发操作)数据库会产生什么问题?库会产生什么问题? 2. 如何进行并发控制?并发控制又会如何进行并发控制?并发控制又会带来什么新问题?如何解决?带来什么新问题?如何解决? 3. 数据库系统可能出现的故障有哪些?数据库系统可能出现的故障有哪些?数据库的恢复技术又有哪些?数据库的恢复技术又有哪些?2一一. 并发操作产生的问题并发操作产生的问题丢失修改丢失修改 两个事务两个事务T1和和T2读入同一数据并进行读入同一数据并进行修改,修改,T2提交的结果破坏了

    2、提交的结果破坏了T1提交的提交的结果,导致结果,导致T1的修改被丢失。的修改被丢失。事务是用户定义的一个数据库操作序事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,列,这些操作要么全做要么全不做,是一个不可分割的工作单位。是一个不可分割的工作单位。3一一. 并发操作产生的问题并发操作产生的问题不可重复读不可重复读 事务事务T1读取数据后,事务读取数据后,事务T2执行更新执行更新操作,使操作,使T1无法再现前一次读取结果。无法再现前一次读取结果。读读“脏脏”数据数据 事务事务T1修改某一数据,并将其写回磁盘,修改某一数据,并将其写回磁盘,事务事务T2读取同一数据后,读取同一数据后

    3、,T1由于某种由于某种原因被撤销,原因被撤销,T2读到的数据就与数据库读到的数据就与数据库中的数据不一致,则中的数据不一致,则T2读到的数据就为读到的数据就为脏数据,也就是说不正确的数据。脏数据,也就是说不正确的数据。4T1T2T1T2T1T21) 读读A=20 1) 读读A=50 读读B=100求和求和=150 1) 读读C=100CC*2写回写回C 2) 读读A=203) AA-1写回写回A=19 2) 读读B=100BB*2写回写回B=2002) 读读C=2004)AA-1写回写回A=19(A少减一少减一次次)3) 读读A=50 读读B=200 和和=250(验算不对验算不对) 3) R

    4、OLLBACKC恢复为恢复为100(错误的错误的C值已读出值已读出) (a)丢失修改丢失修改 (b)不可重复读不可重复读 (c)读读“脏脏”数据数据 5一一. 并发操作产生的问题并发操作产生的问题事务的特征(事务的特征(ACID)原子性(原子性(Atomicity)一致性(一致性(Consistency)隔离性(隔离性(Isolation)持续性或永久性(持续性或永久性(Durability)事务特性遭破坏的原因事务特性遭破坏的原因 多个事务并行执行时,不同事务的多个事务并行执行时,不同事务的操作交叉执行操作交叉执行 事务在运行过程中被强行停止事务在运行过程中被强行停止6一一. 并发操作产生的

    5、问题并发操作产生的问题在在SQL语言中,定义事务的语句有语言中,定义事务的语句有三条:三条: BEGIN TRANSACTION; COMMIT; ROLLBACK TRANSACTION ;7二二. 数据库的并发控制数据库的并发控制数据库的并发控制就是控制数据库,防数据库的并发控制就是控制数据库,防止多用户并发使用数据库时造成数据错止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。误和程序运行错误,保证数据的完整性。 封锁机制是并发控制的重要手段。封锁封锁机制是并发控制的重要手段。封锁是使事务对它要操作的数据有一定的控是使事务对它要操作的数据有一定的控制能力。制能力。8二

    6、二. 数据库的并发控制数据库的并发控制 封锁具有封锁具有3个环节个环节 申请加锁,即事务在操作前要对它申请加锁,即事务在操作前要对它将使用的数据提出加锁请求;将使用的数据提出加锁请求; 获得锁,即当条件成熟时,系统允获得锁,即当条件成熟时,系统允许事务对数据加锁,从而事务获得许事务对数据加锁,从而事务获得数据的控制权;数据的控制权; 释放锁,即完成操作后事务放弃数释放锁,即完成操作后事务放弃数据的控制权。据的控制权。9二二. 数据库的并发控制数据库的并发控制 锁的类型锁的类型 排它锁(排它锁(Exclusive Locks,简称,简称X锁),锁),也称为独占锁或写锁。一旦事务也称为独占锁或写锁

    7、。一旦事务T对数对数据对象据对象A加上排它锁(加上排它锁(X锁),则只允许锁),则只允许T读取和修改读取和修改A,其他任何事务既不能读,其他任何事务既不能读取和修改取和修改A,也不能再对,也不能再对A加任何类型的加任何类型的锁,直到锁,直到T释放释放A上的锁为止。上的锁为止。 共享锁(共享锁(Share Locks,简称,简称S锁),又锁),又称读锁。如果事务称读锁。如果事务T对数据对象对数据对象A加上共加上共享锁(享锁(S锁),其他事务只能再对锁),其他事务只能再对A加加S锁,不能加锁,不能加X锁,直到事务锁,直到事务T释放释放A上的上的S锁为止。锁为止。10二二. 数据库的并发控制数据库的

    8、并发控制 封锁协议封锁协议 在对数据对象加锁时,需要约定一些在对数据对象加锁时,需要约定一些规则,例如,何时申请规则,例如,何时申请X锁或锁或S锁、持锁、持锁时间、何时释放等,这些规则称为锁时间、何时释放等,这些规则称为封锁协议。封锁协议。11二二. 数据库的并发控制数据库的并发控制 一级封锁协议一级封锁协议 事务事务T在修改数据之前必须先对其加在修改数据之前必须先对其加X锁,直到事务结束才释放。锁,直到事务结束才释放。 作用:可有效地防止丢失修改,但不能作用:可有效地防止丢失修改,但不能保证可重复读和不读保证可重复读和不读“脏脏”数据。数据。 12事务事务1时间时间事务事务2读读A16t1t

    9、2读读A16AA1写回写回A=15t3t4A=A-1写回写回A15事务事务1时间时间事务事务2XLOCK A读读A16t1t2XLOCK A等待等待AA1写回写回A=15COMMITUNLOCK At3t4XLOCK A读读A15AA1写回写回A14COMMITUNLOCK A举例:举例:13二二. 数据库的并发控制数据库的并发控制 二级封锁协议二级封锁协议 事务事务T对要修改数据必须先加对要修改数据必须先加X锁,直锁,直到事务结束才释放到事务结束才释放X锁;锁; 对要读取的数据必须先加对要读取的数据必须先加S锁,读完后锁,读完后即可释放即可释放S锁。锁。 作用:不仅能够防止丢失修改,而且防作

    10、用:不仅能够防止丢失修改,而且防止读止读“脏脏”数据,但不能保证可重复读。数据,但不能保证可重复读。14举例:举例:事务事务1时间时间事务事务2读读B100B=B+100写回写回B200t1t2读读B200ROLLBACKB恢复为恢复为100t3t4继续使用继续使用B200事务事务1时间时间事务事务2XLOCK B读读B100BB100写回写回B200t1t2SLOCK B等待等待ROLLBACKB恢复为恢复为100UNLOCK Bt3t4SLOCK B读读B1002级封锁协议防止了读级封锁协议防止了读“脏脏”数据的发生,在读数据时,数据的发生,在读数据时,还可能产生不可重复读的不一致性,这时

    11、需要还可能产生不可重复读的不一致性,这时需要3级封锁协级封锁协议议15二二. 数据库的并发控制数据库的并发控制 三级封锁协议三级封锁协议 事务事务T在读取数据之前必须先对其加在读取数据之前必须先对其加S锁,在要修改数据之前必须先对其加锁,在要修改数据之前必须先对其加X锁,直到事务结束后才释放所有锁。锁,直到事务结束后才释放所有锁。作用:不但防止了丢失修改和不读作用:不但防止了丢失修改和不读“脏脏”数据,而且防止了不可重复读。数据,而且防止了不可重复读。 16举例:举例:事务事务1时间时间事务事务2SLOCK C读读C50显示显示C50UNLOCK Ct1t2XLOCK C读读C50C=C*2写

    12、回写回C100COMMITUNLOCK CSLOCK C读读C100显示显示C100t3事务事务1时间时间事务事务2SLOCK C读读C50显示显示C50t1t2XLOCK C等待等待读读C50显示显示C50COMMITUNLOCK Ct3t4XLOCK C读读C50CC*2写回写回C10017二二. 数据库的并发控制数据库的并发控制 不同级别的封锁协议不同级别的封锁协议 X锁锁S锁锁一致性保证一致性保证 操作操作结束结束释放释放事务事务结束结束释放释放操作操作结束结束释放释放事务事务结束结束释放释放不丢不丢失失修改修改不读不读“脏脏”数据数据可重可重复读复读一级协一级协议议 二级协二级协议议

    13、 三级协三级协议议 18三三. 封锁出现的问题及解决方法封锁出现的问题及解决方法 活锁 在多个事务请求对同一数据封锁时,总在多个事务请求对同一数据封锁时,总是使某一用户等待的情况称为活锁。是使某一用户等待的情况称为活锁。 解决活锁的方法是采用先来先服务的方法,解决活锁的方法是采用先来先服务的方法,即对要求封锁数据的事务排队,使前面即对要求封锁数据的事务排队,使前面的事务先获得数据的封锁权。的事务先获得数据的封锁权。19三三. 封锁出现的问题及解决方法封锁出现的问题及解决方法 死锁 多事务交错等待的僵持局面称为死锁。多事务交错等待的僵持局面称为死锁。 解决死锁有两类方法:解决死锁有两类方法: 一

    14、是采用一定措施来预防死锁的发生;一是采用一定措施来预防死锁的发生; 二是采用一定手段定期诊断系统中有无二是采用一定手段定期诊断系统中有无死锁,若有则解除之。死锁,若有则解除之。20 活锁活锁T1:LOCK R 成功成功T2:LOCK R 等待等待T3:LOCK R 等待等待T1:UNLOCK RT3:LOCK R 成功成功(T2等待)等待)T4:LOCK R 等待等待T3:UNLOCK RT4:LOCK R 成功成功.T2永远等待永远等待T1:LOCK A 成功成功T2:LOCK B 成功成功T1:LOCK B 等待等待T2: LOCK A 等待等待.T1、T2相互等待相互等待 死锁死锁21三

    15、三. 封锁出现的问题及解决方法封锁出现的问题及解决方法 诊断死锁的方法诊断死锁的方法 超时法或事务等待图法超时法或事务等待图法 解除死锁的方法解除死锁的方法 通常是选择一个处理死锁代价最小的事通常是选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有务,将其撤销,释放此事务持有的所有的锁,使其他事务得以继续运行下去。的锁,使其他事务得以继续运行下去。同时,对撤销的事务所执行的数据修改同时,对撤销的事务所执行的数据修改操作加以恢复。操作加以恢复。22三三. 封锁出现的问题及解决方法封锁出现的问题及解决方法 预防死锁的方法预防死锁的方法1. 一次封锁法:要求每个事务必须一一次封锁法:要求

    16、每个事务必须一次将所有要使用的数据全部加锁,次将所有要使用的数据全部加锁,否则该事务不能继续执行。否则该事务不能继续执行。2. 顺序封锁法:预先对数据对象规定顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个一个封锁顺序,所有事务都按这个顺序实行封锁。顺序实行封锁。 23三三. 封锁出现的问题及解决方法封锁出现的问题及解决方法 预防死锁的方法预防死锁的方法3. 两段锁协议:两段锁协议:(1) 在对任何数据进行在对任何数据进行读、写操作之前,首先要申请并获读、写操作之前,首先要申请并获得对该数据的封锁得对该数据的封锁; (2) 在释放一个在释放一个封锁之后,事务不再申请并获得对封锁之后

    17、,事务不再申请并获得对该数据的封锁。该数据的封锁。24四四. 数据库恢复技术 故障的种类故障的种类 事务内部的故障事务内部的故障 事务内部的故障有的是可以通过事务程序本身发现的,但是事务内部的故障有的是可以通过事务程序本身发现的,但是更多的则是非预期的,它们不能由事务处理程序处理。例如更多的则是非预期的,它们不能由事务处理程序处理。例如运算溢出、并发事务发生死锁而被选中撤消该事务、违反了运算溢出、并发事务发生死锁而被选中撤消该事务、违反了某些完整性限制等。某些完整性限制等。 系统故障系统故障系统故障是指造成系统停止运转的任何事件,从而使得系统系统故障是指造成系统停止运转的任何事件,从而使得系统

    18、必须重新启动。必须重新启动。 介质故障介质故障介质故障指外存故障,例如磁盘损坏、磁头碰撞,瞬时磁场介质故障指外存故障,例如磁盘损坏、磁头碰撞,瞬时磁场干扰等。干扰等。 计算机病毒计算机病毒计算机病毒是一种人为的故障或破坏。计算机病毒是一种人为的故障或破坏。 用户操作错误用户操作错误由于用户有意或无意的操作也可能删除数据库中的有用的数由于用户有意或无意的操作也可能删除数据库中的有用的数据或加入错误的数据,这同样会造成一些潜在的故障。据或加入错误的数据,这同样会造成一些潜在的故障。25四四. 数据库恢复技术数据恢复的实现技术数据恢复的实现技术1.数据转储数据转储 (1) 静态转储和动态转储。静态转

    19、储和动态转储。 (2) 海量转储和增量转储。海量转储和增量转储。2. 登记日志文件(登记日志文件(Logging) (1) 日志文件的格式和内容。日志文件的格式和内容。 日志文件是用来记录对数据库的更新操作的文件。日志文件是用来记录对数据库的更新操作的文件。 (2) 日志文件的作用。日志文件的作用。日志文件的主要用于数据库恢复。日志文件的主要用于数据库恢复。 当数据库文件毁坏后,可重新装入后援副本把数当数据库文件毁坏后,可重新装入后援副本把数据库恢复到转储结束时刻的正确状态,再利用日据库恢复到转储结束时刻的正确状态,再利用日志文件,把已完成的事务进行重做处理。志文件,把已完成的事务进行重做处理。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:数据库课件:第7讲 数据库的并发控制与恢复技术.ppt
    链接地址:https://www.163wenku.com/p-2040562.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库