版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CHA7 数据库恢复技术本章内容 事务 恢复的方法数据库的保护 数据库的恢复 完整性控制 并发控制 安全性控制事务transactionBegin transaction开始操作序列(全做或全不做全做或全不做)Rollback 回滚(撤销已做的修改)Commit提交(实现已做的修改)事务不许嵌套事务的性质ACID性质性质含义含义控制机制控制机制原子性原子性atomicity操作序列不可分割DBMS-事务管理子系统一致性一致性consistency数据内容正确程序员完整性约束隔离性隔离性isolation并发执行与单独执行结果相同DBMS-并发控制子系统持久性持久性durability事务提交后
2、对数据的更新永久保存DBMS-恢复管理子系统转帐事务转帐事务ABRead(A);A:=A-100;Write(A);Read(X)Write(X)内存内存(缓冲区缓冲区)外存外存(数据库数据库)求A+BRead(B);B:=B+100;Write(B);t1t2t3t4时刻时刻ABt1500500t2t2400400500500t3400500t4400600事务事务T1事务事务T29001000系统常见故障故障类型原因处理事务故障非预期的事务撤销undo预期的回滚rollback系统故障(软故障)硬件故障,软件错误事务撤销undo事务重做redo介质故障(硬故障)磁头碰撞,磁场干扰恢复备份数
3、据病毒恢复备份数据可恢复性可恢复性recovery把数据库从错误状态恢复到最近的一个正确状态把数据库从错误状态恢复到最近的一个正确状态恢复方法备份类型备份内容数据转储静态转储转储期间不允许执行事务动态转储转储期间允许执行事务海量转储每次转储全部数据增量转储每次转储上次转储后的更新数据日志文件记录事务开始、结束、操作序列事务标识、操作类型、数据旧值、新值、更新日期、时间数据库已破坏时的恢复转储运行事务重装副本Redo事务运行事务发生故障发生故障日志文件日志文件Log file以数据块为单位以记录为单位日志文件的格式事务的开始标记事务的结束标记事务的更新操作事务标识、操作类型、操作对象、数据旧值、
4、新值事务的开始标记事务的结束标记事务的更新操作事务标识、数据块旧值、新值利用日志文件恢复T1T2T3静态转储运行事务登记日志文件重装后备副本利用日志文件恢复事务继续运行登记日志文件正常运行介质故障恢复“运行记录优先”原则 按执行次序记录日志 先写日志后写数据库snocnogrades1c387Update scSet grade=90Where sno=s1 and cno=c3;T1,beginT1,UPDATE,87,90,T1,INSERT日志文件日志文件恢复策略1事务故障反向扫描日志文件对更新操作执行逆操作遇到该事务的开始标记则停止T1,begin transactionT1,upda
5、te,T2,insert, T1,insert, T3,update, T1,delete, 查找该事务的更新操作Undo过程:恢复策略2系统故障正向扫描日志文件对更新操作执行逆操作遇到该事务的开始标记则停止T1,begin transactionT1,update,T2,insert, T1,insert, T1,commit已提交事务标识redo队列未完成事务标识undo队列处理undo队列反向扫描日志文件查找该事务的更新操作重新执行遇到该结束标记则停止处理redo队列正向扫描日志文件查找该事务的更新操作恢复策略3介质故障正向扫描日志文件T1,begin transactionT1,upd
6、ate,T2,insert, T1,insert, T1,commit已提交事务标识redo队列重新执行遇到该结束标记则停止处理redo队列正向扫描日志文件查找该事务的更新操作装入数据库后备副本Redo操作数据库已损坏数据库已损坏DBA执行恢复执行恢复装入最近备份的数据库T1,UPDATET2,INSERT转储转储备份备份日志文件日志文件REDO需撤销需撤销undo操作数据库未损坏数据库未损坏系统自动执行恢复系统自动执行恢复T1,beginT1,UPDATET1,INSERT日志文件日志文件UNDO完整的事务已完成已完成未完成未完成具有检查点的恢复技术Ci检查点记录地址T1d1,T3d3,T1
7、,T3,d1d3重新开始文件日志文件检查点记录检查点记录:此刻正在执行的事务清单这些事务最近一个日志记录的地址检查点的建立 日志缓冲日志文件 检查点记录日志文件 数据缓冲数据库 检查点记录地址重新开始文件检查点检查点系统故障系统故障无需redoredoredo撤销撤销检查点有记录检查点无记录利用检查点进行恢复寻找检查点记录建立队列undo-list和redo-list active-list 加入undo-list从检查点开始正向扫描日志文件建立事务清单active-list发现Ti开始,则Ti undo-list发现Tj结束,则Tj redo-list执行undo和redo操作数据库镜像mi
8、rror应用1主库镜像应用2应用3update复制readread应用1主库镜像应用2应用3update恢复readread事务的提交与回滚Begin transactionCommit将所有操作结果实际写入数据库Rollback撤销对数据库的修改并发操作引起的问题1丢失更新时间事务T1A值事务T21502Read(A)3Read(A)4A:=A-105A:=A*26Write(A)407Write(A)8100正确结果为80或90并发操作引起的问题2不一致分析时间事务T1A值事务T21502Read(A)3Read(A)4A:=A-105Write(A)640并发操作引起的问题3脏数据时间事
9、务T1A值事务T21502Read(A)3A:=A-104Write(A)540Read(A)6rollback750封锁技术 排它型封锁exclusive locksX封锁 共享型封锁shared locksS封锁 两段封锁X封锁和PX协议事务T1 对数据R申请X封锁 获得 修改数据 释放封锁事务T2 对数据R申请X封锁 等待 获得封锁 修改数据 释放封锁时间PX协议:使用X封锁的规则利用X规则解决丢失更新问题时间时间事务事务T1T1A A值值事务事务T2T21502Lock X(A)3Read(A)4Lock X(A)5A:=A-10wait6Write(A)wait740wait8UnL
10、ock (A)wait9重做重做Lock X(A)10Read(A)11A:=A*212Write(A)1380UnLock (A)并发事务的可串行化T1:Read(A)A:=A-10WRITE(A)T1T2串行执行并发执行T2:Read(A)A:=A*2WRITE(A)A=50 T1 T2 A=80A=50 T2 T1 A=90事务串行调度的结果都是正确的回滚操作引起的丢失更新时间时间事务事务T1T1A A值值事务事务T2T21502Lock X(A)3Read(A)4A:=A-105Write(A)6UnLock (A)407Lock X(A)8Read(A)9A:=A*210Write(
11、A)1180UnLock (A)12commit13rollback50PXC协议X封锁必须保留到事务终点封锁方法引起的问题 活锁live lock某个事务永远处于等待状态 死锁dead lock多个事务互相等待先来先服务判断死锁的存在撤销其中一个死锁的发生时间时间事务事务T1事务事务T21Lock X(A)2Lock X(B)3Read(A)4Read(B)5Lock X(B)6Wait7WaitLock X(A)8WaitWait9WaitWaitT1T2数据B数据A事务依赖图T6T5T8T4T1选取某事务撤销:优先级剩余执行时间占用资源共享型封锁(S封锁)事务T1对数据R加S封锁事务T2
12、对数据对数据R加加X封锁封锁(拒绝拒绝)事务T3对数据对数据R加加S封锁封锁(允许允许)T1 T2XSXNNYSNYYYYY相容矩阵已添加的锁申请加的锁时间时间事务事务T1A B C事务事务T2140 50 302Read (A)3Sum:=A4Read(B)5Sum:=sum+B6Lock X(C)7Read (C)8C:=C-109Write(C)1040 50 20Lock X(A)11Read (A)12A:=A+1013Write(A)1450 50 20commit15Read(C)16Sum:=sum+CS锁的必要性时间时间事务事务T1A B C事务事务T2140 50 302L
13、ock S(A)3Read (A)4Sum:=A5Lock S(B)6Read(B)7Sum:=sum+BLock X(C)8Read (C)9C:=C-1010Wait(C)1140 50 20Lock X(A)12Wait13Wait14Wait15Lock S(C)Wait16waitWaitS锁可能引起死锁时间时间事务事务T1事务事务T21Lock S(A)2Lock S(A)3Read (A)4Read(A)5A:=A-106A:=A*27Upgrade(A)Lock X(C)8WaitUpgrade(A)9WaitWaitPSC协议S封锁要保持到事务终点S锁的升级增加死锁可能两段封
14、锁协议对数据读写前先获得封锁申请封锁集中进行Lock (A)Lock(B)Lock(C)unlock (B)unlock(C)unlock(A)扩展阶段扩展阶段收缩阶段收缩阶段如果所有事务是两段式的,它们的并发调度可串行化时间时间事务事务T9F G H事务事务T1010 0 02Lock S(F)3Read (F)4ATEMP:=F5unlock (F)67Lock S(G)8Read (G)9BTEMP:=G10Lock X(F)11F:=BTEMP+112Write(F)13Lock X(H)1 0 0commit14H:=ATEMP+115Write(H)16commit1 0 1两事务
15、未遵守两段式协议,结果正确 T9:H:=F+1T10:F:=G+1 正确结果: 0 111 0 2时间时间事务事务T9F G H事务事务T1110 0 02Lock S(F)3Read (F)4ATEMP:=F5unlock (F)67Lock S(H)8Read (H)9CTEMP:=H10Lock X(F)11F:=CTEMP+112Write(F)13Lock X(H)1 0 0commit14H:=ATEMP+115Write(H)16commit1 0 1两事务未遵守两段式协议,结果错误 T9:H:=F+1T11:F:=H+1 正确结果:2 0 11 0 2数据库的完整性 完整性 正
16、确性和相容性 垃圾进垃圾出 garbage in garbage out 对数据库的非法更新 输入数据错误 操作、程序错误 系统故障 事务的并发执行 人为破坏完整性子系统 功能 监督事务的执行 针对违反现象采取适当操作 完整性规则的构成何时使用触发条件触发条件何种错误约束条件约束条件如何处理ELSE子句子句域完整性规则域联系的规则关系完整性规则SQL的完整性约束 主键约束主键约束 外键约束外键约束 删除、修改基本关系元组时的考虑 属性值上的约束属性值上的约束 非空值约束 检查子句 域约束子句 全局约束全局约束 基于元组的检查子句 断言删除、修改基本关系元组时的考虑 Restrict方式 参照表
17、中无相关记录时允许操作 Cascade方式 参照表中的相关记录一同更新 Set null方式 参照表中的相关记录字段置空断言assertionsCreate assertion asse1 check不许男生学习张老师的课程不许男生学习张老师的课程(not exists没这种记录:没这种记录:(select *男生学习张老师课程的记录男生学习张老师课程的记录 from sc where cno in (select cno from c where teacher=zhang) And sno in (select sno from s where sex=m) );断言assertionsCreate assertion asse2 check每组人数不能超过每组人数不能超过50(50=all(select count(sc.sno)每门课程的学习人数每门课程的学习人数 from s,sc where s.sno=sc.sno and sex=m group by cno );约束的命名 Sno char(4) constraint s_pk primary key; Age smallint constraint s_check check(age
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人健身教练协议:训练计划与服务承诺(2024版)版B版
- 2025年度测绘仪器研发信息保密协议范本3篇
- 万科室内设计合作标准协议2024年施行版版
- 二零二五版建筑材料购销合同范本-供方与需方绿色环保协议3篇
- 二零二五版国际金融市场风险管理合作协议3篇
- 2025年版项目部人员合同协议书:电子商务项目人员招聘及培训协议3篇
- 二零二五年度煤炭资源开发合作协议4篇
- 二零二五年新型城镇化建设项目委托开发协议3篇
- 2025年度门窗工程绿色供应链管理协议3篇
- 2024童装企业数字化转型咨询合同3篇
- 国家自然科学基金项目申请书
- 电力电缆故障分析报告
- 中国电信网络资源管理系统介绍
- 2024年浙江首考高考选考技术试卷试题真题(答案详解)
- 《品牌形象设计》课件
- 仓库管理基础知识培训课件1
- 药品的收货与验收培训课件
- GH-T 1388-2022 脱水大蒜标准规范
- 高中英语人教版必修第一二册语境记单词清单
- 政府机关保洁服务投标方案(技术方案)
- HIV感染者合并慢性肾病的治疗指南
评论
0/150
提交评论