电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

06-1数据库系统的恢复和并发控制技术报告

65页
  • 卖家[上传人]:繁星
  • 文档编号:88158475
  • 上传时间:2019-04-20
  • 文档格式:PPT
  • 文档大小:303KB
  • / 65 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、1,6 数据库保护,数据库恢复 并发控制 数据库安全性 数据库完整性,2,事务:是一个不可分割的操作序列,该操作序列要么全做,要么全不做。 强调:事务和程序是两个概念。 一个程序中可以包含多个事务。 事务是恢复和并发控制的基本单位,第6章 数据库保护,6.1 事务,3,隐式控制:由DBMS按缺省规定自动划分。 显式控制: BEGIN TRANSACTION 事务开始 COMMIT 事务提交,重新改写数据库 ROLLBACK 事务提交,发生错误撤消,BEGIN TRANSACTION INSERT INTO S(S#, Sname, Sage, Sdept) VALUES(10002, 李娜, 18,计算机) COMMIT,例如:,4,BEGIN TRANSACTION DELETE FROM S WHERE S#=10002 DELETE FROM SC WHERE S#=10002 ROLLBACK,5,1、原子性(Atomicity) 事务是不可分割的工作单位 2、一致性(Consistency) 事务提交后,数据库从一个一致性状态变到另一个一致性状态。,二、事务的性质(ACID)

      2、,6,例:现假设一个公司数据库中有两个账户S,C,分别有存款30万元和20万元,现从S账户上的取出10 万元放入到C账户上。,7,S:200000 C:200000 中间状态,一致状态,一致状态,Read(S) S=300000 S=S-100000 S=200000 Write(S),Read(C) C=200000 C=C+100000 C=300000 Write(C),S:300000 C:200000,S:200000 C:300000,8,3、隔离性(Isolation) 在事务完成之前,它对数据库产生的结果不能被其它事务引用。 4、持续性(Durability) 一旦事务执行成功(提交),其对数据库产生的效果永久有效。,9,数据库的恢复: 把数据库从错误状态恢复到某一已知的正确状态。,一、故障的类型 1事务故障 2系统故障 3介质故障 4计算机病毒,第二节 恢复技术,10,1事务故障 是事务内部的故障。 预期故障: 通过在程序中加判断条件来实现 非预期的故障: 如由于死锁而被迫撤销的事务等,11,2系统故障 (需要系统重新启动) 原因:硬件错误、操作系统故障、DBMS代码

      3、错误、突然停电等。 特点:故障影响正在运行的所有事务,但不破坏数据库。可能会造成数据库中数据的不一致性。其原因: 故障发生时,尚未完成的事务的结果可能已送入到物理数据库。 故障发生时,有些已完成的事务所做的数据更改还在缓冲区中,尚未写到物理数据库中。,12,3介质故障 是指存储数据库的磁盘发生故障。 原因:可能是磁盘损坏、磁头碰撞、瞬时强磁场干扰等。 特点:使数据库受到破环。虽然可能性小,但破坏性最大。,系统故障称为软故障 介质故障称为硬故障,4计算机病毒 人为的故障或破坏,是一些恶作剧者研制的一种计算机程序。,13,两个关键问题: 1 如何建立冗余数据 2 如何利用这些冗余数据实施数据库恢复,6.2 数据库恢复技术,冗余,14,1、数据转储 转储:定期将DB复制到其它外存保存(副本) 1、转储类型 静态转储:在系统空闲的时候进行,转储期间不允许对数据库进行操作。 优点:简单、保证副本和数据库数据的一致性。 缺点:需等待。 动态转储:转储期间允许对数据库进行操作。 优点:效率高。 缺点:不能保证副本和数据库数据的一致性。,建立冗余常用技术,15,2、转储方式 海量转储:每次转储数据库中

      4、的全部数据 增量转储:每次转储上一次转储后更新过的数据,建立冗余常用技术,16,3、数据库镜像:自动将数据库中的全部数据或关键数据复制到另外一张盘上。,缺点:降低系统效率,建立冗余常用技术,17,2、日志文件 1、内容 事务标识(标明是哪个事务) 操作类型及对象(插入、删除、修改,记录内部标识) 更新前后的值 2、作用: 用于数据库恢复 3、登记要求 按时间次序 先写日志文件,后写数据库。,建立冗余常用技术,18,1、事务故障的恢复 恢复策略:反向扫描日志文件,将日志中更新前的数据写回到数据库中,直至事务的开始标志。,三、数据库恢复策略,19,2、系统故障的恢复 恢复策略:撤销故障发生时未完成的事务,重做已完成的事务。 方法:扫描日志文件;找出故障发生前提交的事务,让该事务重做(REDO);找出故障发生前未提交的事务,让其撤销(UNDO)。,3、介质故障的恢复 恢复策略:利用数据库副本和日志文件副本进行恢复。(需要DBA介入),20,6.3 并发控制,一、并发操作引起的问题,丢失修改,不可重复读,读“脏”数据,21,例:银行中,C账户上原有存款500元,现有两位顾客同时给此账户存款,分

      5、别运行下面两个事务: T1:READ(C), C=C+100,WRITE(C); T2:READ(C), C=C+200,WRITE(C); 运行过程可能如下: (1)先执行事务T1,然后执行事务T2 (2)先执行事务T2,然后执行事务T1 (3)事务T1和事务T2并发执行,22,23,丢失修改,24,不可重复读,25,读“脏”数据,26,封锁 *排它锁(写锁,简称X锁) *共享锁(读锁,简称S锁) 封锁协议,二、基于封锁的并发控制技术,27,1、封锁: 就是事务T在对数据进行操作之前,先向系统申请对其进行加锁,此时不允许其它事务更新该数据,直到事务T释放该数据上的锁。 2、封锁的类型 排它锁(又称写锁,简称X锁) 若事务T对数据对象A加上X锁,则其它事务不能在A上加任何类型的锁,此时,只允许事务T读取和修改A,直到T释放A上的锁。 共享锁(又称读锁,简称S锁) 若事务T对数据对象A加上S锁,则其它事务也可在A上加S锁,但不能加X锁,事务T和其它事务只能读取A,但不能修改A。,28,3、封锁协议 1)一级封锁协议 事务T在修改数据A之前必须先对其加X锁,直到事务结束才释放。 一级封锁协

      6、议可防止丢失修改,并可保证事务T是可恢复的,但不能保证可重复读和不读“脏”数据。,29,一级封锁协议例,Xlock A,Read (A) A=10,A=A-5,Write(A),Commit,Unlock A,Xlock A,Read (A) A=5,A=A-5,Write(A),Commit,Unlock A,等待,等待,等待,等待,获得 Xlock A,事务T1,事务T2,没有丢失修改,READ(C,D),M=C+D,READ(C,D),M=C+D,READ(C,D),C=C+10,D=D+10,事务T1,事务T2,不可重复读,Write (D),Write (C),Xlock C,Xlock D,Unlock C,Unlock D,30,1级封锁协议,读“脏”数据,31,2)二级封锁协议 一级封锁协议加上事务T在读取数据A之前必须对其加S锁,读完后即可释放S锁。 二级封锁协议可防止修改丢失,还可防止读“脏”数据,但不能保证可重复读。,32,二级封锁协议例,READ(C,D),M=C+D,READ(C,D),C=C+10,D=D+10,事务T1,事务T2,防止读“脏”数据,Writ

      7、e (D),Write (C),Xlock C,Xlock D,Unlock C,Unlock D,RollBack,Slock C,Slock D,等待,等待,等待,获得Slock C,获得Slock D,Unlock C,Unlock D,READ(C,D),M=C+D,READ(C,D),C=C+10,D=D+10,事务T1,事务T2,不可重复读,Write (D),Write (C),Xlock C,Xlock D,Unlock C,Unlock D,Slock C,Slock D,Unlock C,Unlock D,等待,获得Xlock C,获得Xlock D,READ(C,D),M=C+D,Slock C,Slock D,Unlock C,Unlock D,等待,获得Slock C,获得Slock D,Commit,Commit,Commit,33,3)三级封锁协议 一级封锁协议加上事务T在读取数据A之前必须对其加S锁,直到事务结束才释放。 三级封锁协议可防止修改丢失,还可防止读“脏”数据和保证可重复读。,34,三级封锁协议例,READ(C,D),M=C+D,READ(C,

      8、D),C=C+10,D=D+10,事务T1,事务T2,可重复读,Write (D),Write (C),Xlock C,Xlock D,Unlock C,Unlock D,READ(C,D),M=C+D,Slock C,Slock D,Unlock C,Unlock D,等待,获得Xlock C,获得Xlock D,等待,Commit,Commit,35,不同级别的封锁协议,36,4、活锁:事务T1,T2申请数据对象A,T1先给A加锁,T1释放A上的锁后,事务T3又给A加锁,T2等待,这样,A始终被其他事务封锁,事务T2可能长时间得不到A,这种情况称为活锁。 避免活锁的方法: 采用先来先服务的原则。,37,5、死锁 事务T1已经封锁A,而又想申请封锁B,而此时事务T2已经封锁B,而又想申请封锁A,这样,T1等待T2释放B,而T2等待T1释放A,使得T1、T2均无法继续执行下去,这种情况称为死锁。,LOCK B ,LOCK B ,LOCK A ,LOCK A ,38,6、解决死锁的方法 预防死锁 * 一次封锁法:要求每个事务必须一次将所有要使用的数据全部封锁,否则,不能执行。 缺点:降低

      9、了系统的并发度。 * 顺序封锁法:预先对数据对象规定一个封锁次序,所有事务都按这个次序实行封锁。 缺点:排列封锁次序困难。,39,判断并解除死锁 * 超时法:事务的等待超过了规定的时限 * 等待图法:检测等待图中是否有回路存在。,40,1、事务的表示方法: Ri(X)表示事务Ti的读X操作; Wi(X)表示事务Ti的写X操作。 例:事务T1(Read(B);A=B+1;write(A), 事务T2(Read(A);B=A+1;write(B) 可以表示成: T1:R1(B)W1(A) T2:R2(A)W2(B),三、调度的可串行性,41,例: 事务 T1:R1(X)R1(Y)W1(Y) 的执行顺序可表示为,符号表示先于(),即R1(X)先于W1(Y)执行, R1(Y)先于W1(Y)执行,而R1(X)和R1(Y)的先后次序无关紧要。,42,2、冲突操作 定义:如果两个操作来自不同的事务,它们对同一数据单位进行操作,并且其中至少有一个是写操作,则称这两个操作是相互冲突的或冲突操作。 例:事务T0:W0(X)W0(Y)W0(Z) 事务T1:R1(X)R1(Z)W1(X) 则在这两个事务中有冲突操作:,R1(X)与W0(X) W1(X)与W0(X) R1(Z)与W0(Z),对于冲突操作不能同时执行,哪个先执行,哪个后执行由调度决定。,43,3、调度 设=T1,T2, T n是一事务集, 的一个调度S是一拟序集( ,s) 其中: 1) 说明S执行的操作正是T1, T2, T n 的操作。 2) s 说明调度S遵守每个事务的操作的 内部执行次序 3) 每对冲突操作的执行次序由S决定。,44,例如:考虑下列两个事务T0, T1,T0, T1的拟序集表示为: T0=(W0(X),W0(Y),W0(Z),) T1 =(R1(X),R1(Z),W1(X),R1(X) W1(X), R1(Z) W1(X),45,S1=(W0(X),W0(Y) ,W0(Z) ,R1(X),R1(Z) ,W1(X) ,W0(X) R1(X), W0(Z) R1(Z), R1(X) R1(Z) ,

      《06-1数据库系统的恢复和并发控制技术报告》由会员繁星分享,可在线阅读,更多相关《06-1数据库系统的恢复和并发控制技术报告》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.