




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Databasesprotection 数据库保护 排除和防止各种对数据库的干扰破坏 确保数据安全可靠 以及在数据库遭到破坏后尽快地恢复数据库保护通过四个方面来实现数据库的恢复技术Dealwithfailure并发控制技术Dealwithdatasharing完整性控制技术Enableconstraints安全性控制技术Authorizationandauthentication 主要内容 数据库的一致性事务的状态及原语操作数据库系统故障分析Undo日志Redo日志Undo Redo日志Checkpoint 一 数据库的一致性 Integrityorconsistencyconstraints PredicatesdatamustsatisfyExamples xiskeyofrelationR x yholdsinR Domain x Red Blue Green 一 数据库的一致性 Consistentstate satisfiesallintegrityconstraintsConsistentDB DBinconsistentstate 一 数据库的一致性 DBwillnotalwayssatisfyconstraints Example a1 a2 an TOT constraint Transaction Deposit 100ina2 a2 a2 100TOT TOT 100 一 数据库的一致性 事务的ACID性质Atomicity Consistency Isolation Durability consistencyoftransaction 二 事务的状态及原语操作 事务 transaction 一个不可分割的操作序列 其中的操作要么都做 要么都不做 1 事务 事务的例子银行转帐 A帐户转帐到B帐户100元 该处理包括了两个更新步骤A A 100B B 100这两个操作是不可分的 要么都做 要么都不作 1 事务 事务的ACID性质原子性atomicity一致性consistency隔离性Isolation持久性Durability 2 事务的状态 inlogs TransactionThasstartedThasfinishedsuccessfullyandallmodificationsareallreflectedtodisksThasbeenterminatedandallmodificationshavebeencanceled 3 事务的原语操作 Input x diskblockwithx memoryOutput x bufferblockwithx disk Read x t doinput x ifnecessaryt valueofxinbufferWrite x t doinput x ifnecessaryvalueofxinbuffer t 4 事务例子 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t Output A Output B Abanktransfer 三 数据库系统故障分析 ConsistencyofDB可能由于故障而被破坏事务故障介质故障系统故障 1 事务故障 发生在单个事务内部的故障可预期的事务故障 即应用程序可以发现的故障 如转帐时余额不足 由应用程序处理非预期的事务故障 如运算溢出 死锁等 导致事务被异常中止 应用程序无法处理此类故障 由系统进行处理 可预期的事务故障 从A转帐到B100DeclareaNumber 0 BeginUpdateaccountSetbalance balance 100WhereID B SelectbalanceIntoaFromaccountswhereID A Ifa 100then 若A余额不足则RollbackRollback ElseUpdateaccountSetbalance balance 100whereID A EndIfCommit End 2 介质故障 硬故障 HardCrash 一般指磁盘损坏导致磁盘数据丢失 破坏整个数据库 3 系统故障 系统故障 软故障 SoftCrash 由于OS DBMS软件问题或断电等问题导致内存数据丢失 但磁盘数据仍在影响所有正在运行的事务 破坏事务状态 但不破坏整个数据库 4 数据库系统故障恢复策略 目的恢复DB到一致状态基本原则冗余 Redundancy 实现方法定期转储整个数据库建立事务日志 log 通过备份和日志进行恢复 4 数据库系统故障恢复策略 当发生故障时 1 若是介质故障 则首先重装副本 2 利用日志进行事务故障恢复和系统故障恢复 一直恢复到故障发生点 Therecoveryprocess 四 Undo日志 事务日志记录了所有更新操作的具体细节Undo日志 Redo日志 Undo Redo日志日志文件的登记严格按事务执行的时间次序Undo日志文件中的内容事务的开始标记 事务的结束标记 或 事务的更新操作记录 一般包括以下内容执行操作的事务标识操作对象更新前值 插入为空 1 Undo日志规则 事务的每一个修改操作都生成一个日志记录在x被写到磁盘之前 对应该修改的日志记录必须已被写到磁盘上当事务的所有修改结果都已写入磁盘后 将日志记录写到磁盘上 先写日志原则 把对数据的修改写到数据库中和把表示该修改的日志记录写道日志文件中是两个不同的操作有可能在这两个操作之间发生故障 即两个写操作只完成了一个为了保证数据库的可恢复 必须先把更新记录写到日志文件中 然后再写数据库修改 先写日志 设T1将A修改为900时发生故障 设此时900已写到数据库 但还未来得及写到日志中 根据恢复策略 T1在恢复应UNDO 但此时由于后写日志 A的更新操作在日志中没有记录 因此无法将A恢复到1000如果先写日志 则即使没有写到数据库中 也只不过多执行一次UNDO操作 不会影响数据库的一致性 后写日志 1 Undo日志规则 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B FlushLog Log Initial A 1000B 2000 1 Undo日志规则 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B FlushLog Failhere 1 Undo日志规则 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B FlushLog Failhere 1 Undo日志规则 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B FlushLog Failhere 1 Undo日志规则 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B FlushLog Success 2 基于Undo日志的恢复 Therecoveryprocess RecoveryHere 2 基于Undo日志的恢复 从头扫描日志 找出所有没有或的所有事务 放入一个事务列表L中从尾部开始扫描日志记录 如果T L 则write X v output X ForeachT Ldowritetolog 2 基于Undo日志的恢复 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B FlushLog Failhere 无须恢复 2 基于Undo日志的恢复 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B FlushLog Failhere Write B 2000 Output B Write A 1000 Output A 2 基于Undo日志的恢复 恢复后的Undo日志 3 Undo日志总结 记录修改前的旧值写入之前必须先将数据写入磁盘恢复时忽略已提交事务 只撤销未提交事务有的事务肯定已写回磁盘 五 Redo日志 在x被写到磁盘之前 对应该修改的Redo日志记录必须已被写到磁盘上 WAL 在数据写回磁盘前先写日志记录日志中的数据修改记录 Nowvisthenewvalue 1 Redo日志规则 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B Log Initial A 1000B 2000 1 Redo日志规则 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B Failhere 1 Redo日志规则 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B Failhere 1 Redo日志规则 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B Failhere 1 Redo日志规则 T1 Read A t t t 100 Write A t Read B t t t 100 Write B t FlushLogOutput A Output B Failhere 2 基于Redo日志的恢复 从头扫描日志 找出所有有的事务 放入一个事务列表L中从首部开始扫描日志记录 如果T L 则write X v output X ForeachT Ldowritetolog 2 基于Redo日志的恢复 恢复的基础没有记录的操作必定没有改写磁盘数据 因此在恢复时可以不理会DifferfromUndologging有记录的结果可能还未写回磁盘 因此在恢复时要RedoStilldifferfromUndologging 六 Undo Redo日志 在x被写到磁盘之前 对应该修改的日志记录必须已被写到磁盘上 WAL 日志中的数据修改记录 vistheoldvalue wisthenewvalue 1 基于Undo Redo日志的恢复 正向扫描日志 将的事务放入Redo列表中 将没有结束的事务放入Undo列表反向扫描日志 对于 若T在Undo列表中 则Write x v Output x 正向扫描日志 对于 若T在Redo列表中 则Write x w Output x 对于Undo列表中的T 写入 1 基于Undo Redo日志的恢复 发生故障时的日志 Undo列表 T3 T4 Redo T1 T2 UndoT4 D 1000T3 B 1900T3 C 3000RedoT1 B 1900T2 A 900Writelog 1 基于Undo Redo日志的恢复 先Undo后Redo 发生故障时的日志 T1要UNDO T2要REDO如果先REDO 则A 1100 然后在UNDO A 1000 不正确先UNDO A 1000 然后REDO A 1100 正确 七 检查点 checkpoint 当系统故障发生时 必须扫描日志 需要搜索整个日志来确定UNDO列表和REDO列表搜索过程太耗时 因为日志文件增长很快会导致最后产生的REDO列表很大 使恢复过程变得很长 1 simplecheckpoint Periodically 1 Donotacceptnewtransactions 2 Waituntilalltransactionsfinish commit abort 3 Flushalllogrecordstodisk log 4 Flushallbufferstodisk DB 5 Write checkpoint recordondisk log 6 Resumetransactionprocessing 2 checkpoint basedrecovery t0 t1 t2 检查点 运行事务 故障发生点 扫描t0开始的日志文件进行恢复 无检查点时 扫描检
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮北煤矿安全培训会课件
- 淮北安全员培训考证课件
- 设备安全锁培训课件
- 浸润麻醉课件
- 设备安全生产操作培训课件
- 江苏省盐城市新洋第二实验学校2026届英语九上期末调研模拟试题含解析
- 设备安全技术培训课件
- 设备安全培训效果评价课件
- 2025年转岗理论试题及答案
- 安全驾驶培训文案学习课件
- 2024年四川省水电投资经营集团普格电力有限公司招聘笔试参考题库含答案解析
- G-T 20986-2023 信息安全技术 网络安全事件分类分级指南
- 建筑工程技术专业《建筑力学》课程标准
- JC-T 2127-2012 建材工业用不定形耐火材料施工及验收规范
- 人教版小学英语所有语法及人教版小学英语语法大全
- 雅思词汇2000(带音标)
- 英雄联盟游戏分析报告
- 黑白装饰画教学课件
- 《休闲时尚品牌》课件
- 保健食品用原料人参叶团体标准
- 小儿支气管肺炎护理查房
评论
0/150
提交评论