- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6-Recovery数据库恢复
CS 245 Notes 08 数据库恢复 Failure Recovery 主要内容 基本概念和背景知识 故障种类及对数据库造成的影响 数据库恢复技术 日志、备份、检查点 数据库恢复策略 利用日志重建数据库所作更新 相关概念 数据的完整性:即数据的合理性、相容性、正确性。我们希望数据库中的数据在任何时候都是正确的 数据库的一致状态: 满足所有约束 一致数据库: 数据库处在一致状态下 完整性约束(或一致性约束) 指数据库中的数据必须满足的条件或约定 例如: x 是 R 的关键码 属性x的长度为10 x ? y 在 R 中满足 Domain(x) = {Red, Blue, Green} a 是 R 中建立在x属性上的索引 任何职工的工资不能超过平均工资的两倍 属性A的值与属性B的值相等 … 完整性约束可能被破坏的原因 故障引起的 数据共享引起的 怎样避免/恢复被破坏的完整性? 由故障引起的问题--数据库恢复 由数据共享引起的问题--并发控制 事务(Transaction) 用户定义的一个对数据库读写操作序列 是数据库中不可分割的执行单位 是数据库恢复和并发控制的基本单位 数据库系统中通常有多个事务并行运行 事务结束后,数据库应该从一个一致状态进入到另一个一致状态 事务的性质(ACID特性) 原子性(Atomicity) 事务中的操作要么都做,要么都不做 (All or None) 一致性(Consistency) 事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态 与原子性密切相关 隔离性(Isolation) 并发执行的各事务不能相互干扰 持续性/永久性(Durability) 事务一旦提交,它对数据库的更新不再受后继操作或故障的影响 ★ DBMS中事务处理必须保证其ACID特性,这样才能保证数据 库中数据的安全和正确 ★ 保证事务正确执行是事务管理器的工作 DBMS的系统组成 事务管理器 将关于事务动作的消息传给日志管理器 将关于何时可以或必须将缓冲区拷回磁盘的消息传给缓冲区管理器 将数据库查询等操作消息传给查询处理器 恢复管理器 当系统崩溃时,恢复管理器被激活 它检查日志并在必要时利用日志恢复数据 日志管理器 维护日志 必须与缓冲区管理器打交道,因为对磁盘的访问是通过缓冲区管理器来进行的 缓冲区管理器 分配、管理和回收缓冲区 决定何时将缓冲区的数据写回磁盘(不一定立即写回) 计算机系统结构 数据库元素的定义 数据库划分为元素,元素具有一个值且能被事务访问或修改 元素通常是磁盘块,但也可以是关系、元组、分量等单位 实践中选择磁盘块作为数据库元素有很多很好的理由,缓冲区内容成为单个元素,使我们可以避开一些有关日志和事务的严重问题 不同的数据库系统使用不同的元素概念,为简化问题,假设数据元素的大小不会超过一个块 避免使用大于磁盘块的元素可以避免崩溃发生时元素的部分已被写回磁盘的复杂情况。 地址空间 保存数据库元素的磁盘块空间 缓冲区管理器所管理的虚存或主存空间 事务的局部地址空间 数据在三个地址空间之间移动的原语操作: Input (x): 包含数据元素x的磁盘块 ? 缓冲区 Output (x): 包含数据元素x的缓冲区 ? 磁盘 数据库恢复概述 在查询和更新数据库时,由于某些问题(故障)发生可能会导致数据库被破坏或影响数据库中数据的一致性 当系统运行过程中发生故障时,数据库恢复技术将数据库从错误状态恢复到某个一致状态,它是数据库可靠性的保证。 数据库恢复机制是衡量某DBMS系统性能的指标之一,对系统可靠性起决定作用,对运行效率有很大影响。 常见的故障种类及处理方法 事务故障 错误输入、运算溢出等导致事务中断 这些错误有些是不可检测(如电话号码输错了1位),有些是可以检测(如电话号码输漏了1位) 通过用户定义约束、DBMS检查约束并启动触发器的方法可以捕捉并处理那些可被检测的错误 介质故障 若只是局部的故障,通常能通过磁盘扇区的奇偶校验检测到 若磁头损坏,将使整个磁盘无法访问,常采用的解决方法是某种RAID模式、备份、冗余分布拷贝等 系统故障 由于系统重启、OS软件故障、DBMS代码错误、掉电等造成 导致正在执行的事务状态丢失,原因是内存的易失性 解决方法是在分离的、非易失性的日志中记录所有数据库更新,必要时进行恢复 各类故障对数据库的可能影响 数据库本身被破坏,使数据库中全部或部分数据丢失 如系统故障、介质故障等 数据库没有被破坏,但因事务的运行被非正常终止而使数据库数据失去一致性(正确性) 如事务内部故障、系统故障等 恢复的实现技术 数据库恢复的基本原理 利用存储在系统别处的冗余数据来重建 冗余数据包括 日志文件 数据备份 关键问题: 未完成的事务 例如: 约束:A
文档评论(0)