




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理 主讲 赵海霞 河南科技大学电信学院 ZhaoHaiXia 学习要点事务故障及其类型数据库恢复实现技术数据库恢复策略 第十章数据库恢复技术 10 1事务的基本概念 事务 Transaction 用户定义的一个对数据库的读写操作序列一个不可分割的工作单位数据库恢复和并发控制的基本单位数据库系统中通常有多个事务并行运行在关系数据库中 事务可以是一条 一组SQL语句 或整个程序事务和程序的区别 程序包含多个事务 SQL语言中定义事务的语句 事务的开始和结束可以由用户显式控制 如果用户没有定义 则由DBMS按缺省规定自动划分事务 SQL定义事务的语句Begintransaction 事务开始 Commit 事务提交 正常结束 将更新结果写入磁盘 Rollback 事务回滚 撤销事务中所有已完成的更新 事务示例 BEGINTRANSACTION读账户甲的余额balance balance balance amount amount为转账金额if balance 0 then 打印 金额不足 不能转账 ROLLBACK 撤销刚才的修改 恢复事务 else 读账户乙的金额balance1 balance1 balance1 amount 写回balance1 COMMIT 事务的ACID性质 原子性 Atomicity 一致性 Consistency 隔离性 Isolation 持续性 Durability DBMS中事务处理必须保证其ACID特性 这样才能保证数据库中数据的安全和正确 事务的原子性 原子性 atomicity 一个事务中所有对数据库的操作 是一个不可分割的操作序列 要么全做 要么什么也不做 AllorNone DBMS的事务管理子系统负责 事务的一致性 一致性 consistency 一个事务独立执行的结果 将保持数据库的一致性 即数据不会因事务的执行而遭受破坏 可由编写事务程序的应用程序员完成 也可由系统测试完整性约束自动完成 事务的隔离性 隔离性 isolation 多个事务并发执行时 系统应保证与这些事务先后单独执行时的结果一样 并发执行的各事务不能相互干扰 由DBMS的并发控制子系统负责 事务的持续性 持续性 durability 一个事务一旦完成全部操作 它对数据库的所有更新应永久性地反映在数据库中 由DBMS的恢复管理子系统负责 事务的ACID性质 数据库的访问 read X 把数据X从数据库中读到内存缓冲区write X 把数据X从内存缓冲区写回数据库 数据库 内存缓冲区 read X write X X X 事务的ACID性质 例 银行数据库中有一转帐事务Ti 从帐号A转一笔款 50 到帐号B A B 50 A B 50 其操作如下 Ti read A A A 50 Write A Read B B B 50 Write B 内存缓冲区 1 read A 3 write A A A B B 2 A A 50 4 read B 6 write B 5 B B 50 事务的ACID性质 原子性 事务中所有操作应作为一个整体 不能分割 要么全做 要么全不做 如果只修改了A的值而没有修改B的值 就违反了事务的原子性 Ti read A A A 50 Write A Read B B B 50 Write B A B 50 事务的ACID性质 一致性 在事务Ti执行结束后 要求数据库中A的值减50 B的值增50 即A与B的和不变 此时称数据库处于一致状态 Ti read A A A 50 Write A Read B B B 50 Write B A 50 B 50 A B不变 注 暂时不一致状态 的合理性 透明性 事务的ACID性质 隔离性 同时两个事务Ti和Tj对A B操作 彼此独立 互不干涉 Ti read A A A 50 Write A Read B B B 50 Write B 注 如Ti 暂时不一致状态 时如何控制Tj事务 A B Tj read A A A 100 Write A Read B B B 100 Write B 50 100 事务的ACID性质 持久性 事务的持久性保证事务成功执行后 所有对数据库修改的影响应长期存在 不能丢失 既使计算机系统的故障导致内存中数据丢失 但写入磁盘的数据也决不能丢失 如何保证事务持久性的实现 事务的更新操作应在事务完成之前写入磁盘 事务的更新和写入磁盘操作应保存足够的信息 足以使数据库系统在遇到故障后重新启动时重构更新操作 事务的ACID性质 BEGINTRANSACTION BEGINTRANSACTION ENDTRANSACTION 事务的状态变迁 活动 局部提交 失败 提交 异常中止 COMMIT ABORT ROLLBACK ABORT READ WRITE 事务的状态变迁图 BEGINTRANSACTION BEGINTRANSACTION ENDTRANSACTION 事务的状态变迁 活动 局部提交 失败 提交 异常中止 COMMIT ABORT ROLLBACK ABORT READ WRITE 事务的状态变迁图 在事务开始执行后 立即进入 活动 状态 在活动状态 事务执行对数据库的读 写操作 但是 写操作 并不立即写到磁盘上 很可能暂时存放在系统缓冲区中 BEGINTRANSACTION BEGINTRANSACTION ENDTRANSACTION 事务的状态变迁 活动 局部提交 失败 提交 异常中止 COMMIT ABORT ROLLBACK ABORT READ WRITE 事务的状态变迁图 事务的最后一个语句执行之后 进入 局部提交 状态 事务执行完毕 但对数据库的修改 可能还在内存的系统缓冲区中 事务还没有真正结束 BEGINTRANSACTION BEGINTRANSACTION ENDTRANSACTION 事务的状态变迁 活动 局部提交 失败 提交 异常中止 COMMIT ABORT ROLLBACK ABORT READ WRITE 事务的状态变迁图 处于活动状态的事务还没有执行完最后一个语句就中止执行 事务进入 失败 状态 BEGINTRANSACTION BEGINTRANSACTION ENDTRANSACTION 事务的状态变迁 活动 局部提交 失败 提交 异常中止 COMMIT ABORT ROLLBACK ABORT READ WRITE 事务的状态变迁图 在局部提交状态 虽然事务的语句执行结束 但对数据库的修改可能还没有写到数据库 此时 如果系统出现故障 事务将进入 失败 状态 BEGINTRANSACTION BEGINTRANSACTION ENDTRANSACTION 事务的状态变迁 活动 局部提交 失败 提交 异常中止 COMMIT ABORT ROLLBACK ABORT READ WRITE 事务的状态变迁图 处于失败状态的事务 可能已对磁盘中的数据进行了部分修改 为了保证事务的原子性 应该撤销该事务对数据库已做的修改 称为事务的回退 BEGINTRANSACTION BEGINTRANSACTION ENDTRANSACTION 事务的状态变迁 活动 局部提交 失败 提交 异常中止 COMMIT ABORT ROLLBACK ABORT READ WRITE 事务的状态变迁图 事务进入异常中止状态 系统可以重新启动 软硬件故障 或取消事务 事务逻辑错误 BEGINTRANSACTION BEGINTRANSACTION ENDTRANSACTION 事务的状态变迁 活动 局部提交 失败 提交 异常中止 COMMIT ABORT ROLLBACK ABORT READ WRITE 事务的状态变迁图 事务进入局部提交状态后 并发控制系统将检查并发事务之间是否存在干扰现象 通过检查后 系统执行提交操作 把对数据库的修改全部写到磁盘上 事务成功结束 进入 提交 状态 BEGINTRANSACTION BEGINTRANSACTION ENDTRANSACTION 事务的状态变迁 活动 局部提交 失败 提交 异常中止 COMMIT ABORT ROLLBACK ABORT READ WRITE 事务的状态变迁图 ABORT ABORT 都是事务的结束状态 都是事务的结束状态 事务型DBMS中必备的机制 事务是恢复和并发控制的基本单位恢复机制与并发控制机制的提出事务在运行过程中因某种故障被强行终止 数据库一致性被破坏 需进行恢复多个事务并行运行时 不同事务的各种操作交叉进行 为保证各事务的执行互不干扰 需进行并发控制 10 2数据库恢复概述 数据库系统运行时 可能会出现各种故障 导致可能丢失数据 DBMS的恢复子系统要保证事务的原子性和持久性 确保数据不丢失 不破坏 DBMS的恢复子系统把数据库从被破坏 不正确的状态恢复到最近一个正确的状态的能力称为数据库的恢复 恢复机制涉及的关键问题是 如何建立冗余数据 如何利用这些冗余数据实施数据库恢复 10 3故障的种类 事务内部故障事务在运行至正常终止点 commit或rollback 前被终止包括能由事务所在程序处理的 如条件不满足等不能由事务所在程序处理的 如运算溢出等系统故障 system CPU故障 OS故障 DBMS代码错误 掉电等恢复子系统必须在系统重新启动时 撤消 UNDO 所有未完成事务 重做 REDO 所有已提交的事务 将数据库真正恢复到一致的状态 介质故障 medium 磁盘损坏等计算机病毒 virus 各类故障对数据库的可能影响 数据库本身被破坏 使数据库中全部或部分数据丢失如介质故障 计算机病毒等数据库没有被破坏 但因事务的运行被非正常终止而使数据库数据失去一致性 正确性 如事务内部故障 系统故障 计算机病毒等 10 4恢复的实现技术 数据库恢复的基本原理利用存储在系统别处的冗余数据来重建恢复技术的两个关键如何建立冗余数据数据转储登录日志文件如何利用冗余数据恢复数据库 数据转储是数据库恢复中采用的基本技术 所谓转储即DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程 这些备用的数据文本称为后备副本 转储 正常运行 恢复 Ta Tb Tf 转储 运行事务 故障发生点 转储 恢复 重装后备副本 重新运行事务 建立冗余数据的方法一 数据转储 静态转储 动态转储 在系统无运行事务时进行的转储操作 它会降低数据库的可用性 在转储期间允许对数据库进行存取和修改 它不能保证后备副本上的数据正确有效 因此建立日志文件 将转储期间各事务对数据库的修改活动登记下来 建立冗余数据的方法一 数据转储 转储 转储 恢复 由DBA定义适当的转储周期 每次转储全部数据库 每次转储更新过的数据 转储和用户事务可以并发执行 转储期间不执行任何用户事务 建立冗余数据的方法一 数据转储 建立冗余数据的方法二 登记日志文件 登记日志文件 Logging 日志文件 记录事务对数据库的更新操作以记录为单位的日志文件事务的开始标记 事务的结束标记各个事务的所有更新操作事务标识TransID 操作类型UpdateType 操作对象RecordID 更新前的旧值OldValue 更新后的新值NewValue以数据块为单位的日志文件事务标识 被更新的数据块 登记日志文件必须遵循的原则 登记的次序严格按并发事务执行的时间次序必须先写日志文件 后写数据库 WriteAfterLogging WAL 恢复的实现 通常在一个数据库中综合使用数据转储和登录日志文件这两种方法 配合使用后备副本和日志文件进行数据库恢复 利用日志文件进行数据库恢复 事务故障恢复和系统故障恢复须用日志文件通常综合数据库后备副本和日志文件将数据库恢复至某个一致状态 视转储方法而定 恢复时 对故障发生时已提交的事务进行重做 Redo 再执行 而对未提交的事务进行撤销 Undo 逆操作 10 5恢复策略 事务故障的恢复反向扫描日志文件 Undo事务中的更新操作由系统自动完成系统故障的恢复首先正向扫描日志文件 生成Redo和Undo队列然后对Undo队列中的各事务进行Undo最后对Redo队列中的各事务进行Redo由系统在重启时自动完成介质故障的恢复首先装入最新后备副本和有关日志文件副本 Redo已提交的事务 使数据库恢复至故障前某一时刻的一致状态装入副本由DBA介入完成 并执行DBMS提供的恢复命令 10 6具有检查点的恢复技术 引入检查点的原因 CheckPoint 减少对日志记录的搜索和Redo处理 改善恢复效率具有检查点的恢复技术在日志文件中增加检查点记录 其内容包括建立检查点时刻所有正在执行的事务标识和这些事务最近一个日志记录的地址增加重新开始文件用来记录各个检查点记录在日志文件中的地址动态维护日志文件 周期性地执行 定期或不定期 如下操作 建立检查点 保存数据库状态 建立检查点的步骤 将当前日志缓冲中的所有日志记录写入磁盘的日志文件 在日志文件中写入一个检查点记录 将当前数据缓冲区的所有数据记录写入磁盘的数据库中把检查点记录在日志文件中的地址写入一个重新开始文件 使用检查点恢复技术进行恢复的步骤 从重新开始文件中找到最后一个检查点记录在日志文件中的地址 由该地址在日志文件中找到最后一个检查点记录由该检查点记录得到检查点建立时刻所有正在执行的事务清单从检查点开始扫描日志文件 将未提交事务加入Undo队列 将已提交事务加入Redo队列对Undo队列中的各事务进行Undo 再对Redo队列中的各事务进行Redo 实例 恢复子系统采取的不同策略 T1 T2 T3 T5 T4 时间 系统故障 检查点 不要REDO REDO 撤销 REDO 撤销 10 7数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国家电投集团所属国家核电招聘考试笔试试题(含答案)
- 2025年贵州两山文旅集团有限公司招聘考试笔试试题(含答案)
- 2025年贵阳市创业投资有限公司招聘考试笔试试题(含答案)
- 紧急人才补给服务创新创业项目商业计划书
- 量子磁力计在矿物成分创新创业项目商业计划书
- 汽车大数据分析平台创新创业项目商业计划书
- 营销数据分析创新创业项目商业计划书
- 农业保险与节水农业结合创新创业项目商业计划书
- 2025年深海矿产资源勘探技术深海地质构造解析报告
- 2025年物流行业物流配送机器人技术应用现状与市场前景分析
- 青少年运动员运动损伤的预防和处理
- 高中数学竞赛平面几何中几个重要定理
- 中建测评2024二测题库及答案
- 精准施肥技术的优化与创新
- 肺结核的个案护理
- 乒乓球裁判培训课件
- 铁道概论(第八版)佟立本主编
- 真心痛的护理常规课件
- 乡村振兴项目规划建设与运营方案
- 驾驶员服务外包合同范本
- 实际控制人证明书
评论
0/150
提交评论