版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第7讲数据库的并发控制与恢复技术,思考以下问题:1.多用户同时访问(并发操作)数据库会产生什么问题?2.如何进行并发控制?并发控制又会带来什么新问题?如何解决?3.数据库系统可能出现的故障有哪些?数据库的恢复技术又有哪些?,2,一.并发操作产生的问题,丢失修改两个事务T1和T2读入同一数据并进行修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。,事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。,3,一.并发操作产生的问题,不可重复读事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。读“脏”数据事务T1修改某一数据
2、,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为脏数据,也就是说不正确的数据。,4,T1,3)ROLLBACKC恢复为100,(错误的C值已读出),(a)丢失修改(b)不可重复读(c)读“脏”数据,5,一.并发操作产生的问题,事务的特征(ACID)原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性或永久性(Durability)事务特性遭破坏的原因多个事务并行执行时,不同事务的操作交叉执行事务在运行过程中被强行停止,6,一.并发操作产生的问题,在SQL语言中,定义事务的语句
3、有三条:BEGINTRANSACTION;COMMIT;ROLLBACKTRANSACTION;,7,二.数据库的并发控制,数据库的并发控制就是控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。封锁机制是并发控制的重要手段。封锁是使事务对它要操作的数据有一定的控制能力。,8,二.数据库的并发控制,封锁具有3个环节申请加锁,即事务在操作前要对它将使用的数据提出加锁请求;获得锁,即当条件成熟时,系统允许事务对数据加锁,从而事务获得数据的控制权;释放锁,即完成操作后事务放弃数据的控制权。,9,二.数据库的并发控制,锁的类型排它锁(ExclusiveLocks,简称X
4、锁),也称为独占锁或写锁。一旦事务T对数据对象A加上排它锁(X锁),则只允许T读取和修改A,其他任何事务既不能读取和修改A,也不能再对A加任何类型的锁,直到T释放A上的锁为止。共享锁(ShareLocks,简称S锁),又称读锁。如果事务T对数据对象A加上共享锁(S锁),其他事务只能再对A加S锁,不能加X锁,直到事务T释放A上的S锁为止。,10,二.数据库的并发控制,封锁协议在对数据对象加锁时,需要约定一些规则,例如,何时申请X锁或S锁、持锁时间、何时释放等,这些规则称为封锁协议。,11,二.数据库的并发控制,一级封锁协议事务T在修改数据之前必须先对其加X锁,直到事务结束才释放。作用:可有效地防
5、止丢失修改,但不能保证可重复读和不读“脏”数据。,12,举例:,13,二.数据库的并发控制,二级封锁协议事务T对要修改数据必须先加X锁,直到事务结束才释放X锁;对要读取的数据必须先加S锁,读完后即可释放S锁。作用:不仅能够防止丢失修改,而且防止读“脏”数据,但不能保证可重复读。,14,举例:,2级封锁协议防止了读“脏”数据的发生,在读数据时,还可能产生不可重复读的不一致性,这时需要3级封锁协议,15,二.数据库的并发控制,三级封锁协议事务T在读取数据之前必须先对其加S锁,在要修改数据之前必须先对其加X锁,直到事务结束后才释放所有锁。作用:不但防止了丢失修改和不读“脏”数据,而且防止了不可重复读
6、。,16,举例:,17,二.数据库的并发控制,不同级别的封锁协议,18,三.封锁出现的问题及解决方法,活锁在多个事务请求对同一数据封锁时,总是使某一用户等待的情况称为活锁。解决活锁的方法是采用先来先服务的方法,即对要求封锁数据的事务排队,使前面的事务先获得数据的封锁权。,19,三.封锁出现的问题及解决方法,死锁多事务交错等待的僵持局面称为死锁。解决死锁有两类方法:一是采用一定措施来预防死锁的发生;二是采用一定手段定期诊断系统中有无死锁,若有则解除之。,20,活锁,死锁,21,三.封锁出现的问题及解决方法,诊断死锁的方法超时法或事务等待图法解除死锁的方法通常是选择一个处理死锁代价最小的事务,将其
7、撤销,释放此事务持有的所有的锁,使其他事务得以继续运行下去。同时,对撤销的事务所执行的数据修改操作加以恢复。,22,三.封锁出现的问题及解决方法,预防死锁的方法一次封锁法:要求每个事务必须一次将所有要使用的数据全部加锁,否则该事务不能继续执行。顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。,23,三.封锁出现的问题及解决方法,预防死锁的方法两段锁协议:(1)在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;(2)在释放一个封锁之后,事务不再申请并获得对该数据的封锁。,24,四.数据库恢复技术,故障的种类事务内部的故障事务内部的故障有的是可以通过事务程序本身发现的,但是更多的则是非预期的,它们不能由事务处理程序处理。例如运算溢出、并发事务发生死锁而被选中撤消该事务、违反了某些完整性限制等。系统故障系统故障是指造成系统停止运转的任何事件,从而使得系统必须重新启动。介质故障介质故障指外存故障,例如磁盘损坏、磁头碰撞,瞬时磁场干扰等。计算机病毒计算机病毒是一种人为的故障或破坏。用户操作错误由于用户有意或无意的操作也可能删除数据库中的有用的数据或加入错误的数据,这同样会造成一些潜在的故障。,25,四.数据库恢复技术,数据恢复的实现技术数据转储(1)静态转储和动态转储。(2)海量转储和增量转储。2.登记日志文件(Loggin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆市渝中区名校2026届初三十六模生物试题含解析
- 2026年广东省揭阳市榕城区一中学初三招生考试物理试题模拟测试附加题试题含解析
- 护理查房中的护理法律风险防范
- 2025年前台防疫接待礼仪能力提升
- 手术室输血护理与注意事项
- 感染控制与护理科研
- 护理人员死亡教育培训效果评估
- 2026二年级数学 人教版数学乐园计算擂台
- 忠诚履职落实责任制度
- 房地产安全主体责任制度
- 处方书写规范考核试题及答案
- 2024年辽宁阜新市事业单位招聘普通高校退伍大学生(高频重点复习提升训练)共500题附带答案详解
- 2024年大学华西医院运营管理部招考聘用3人(高频重点复习提升训练)共500题附带答案详解
- 牛津自然拼读-课件-带音频动画Level3-U3-o-e
- 《民航客舱设备操作与管理》课件-项目四 飞机舱门及撤离滑梯
- 零星维修工程施工组织设计
- 大学生学业生涯规划
- 小学生朗读指导教课件
- 管理会计学 第10版 课件 第8、9章 成本管理:目标、责任与标准;作业成本计算法
- 《写作与文化素养培养》
- 病案编码培训课件
评论
0/150
提交评论