第七章分布式恢复管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

分布式数据库系统原理与应用第七章分布式恢复管理第七章分布式恢复管理主要内容分布式恢复概述集中式数据的故障恢复分布式事务的故障恢复分布式可靠性协议第七章分布式恢复管理数据库系统的可恢复性和高可靠性是保证各种应用正确而可靠地运行所不可缺少的重要组成部分。可恢复性,提供恢复措施,把数据库系统从故障状态恢复到一个已知的正确状态;高可靠性,尽量将崩溃后数据库的不可用的时间减少到最低,并保证事务的原子性和耐久性。分布式恢复管理第七章分布式恢复管理故障模型系统的组成故障的三种形式分布式恢复概述系统环境单元1单元2单元3激励响应外部状态内部状态故障(Fault)错误(Error)失效(Failure)第七章分布式恢复管理故障模型分布式恢复概述故障(Fault):系统单元内部发生的错误或系统内部设计错误;错误(Error):系统单元内出现了不正确的状态,是故障的内在表现形式;失效(Failure):指系统的外部状态中所表现出来的错误;当系统单元被组建得不合理或系统内部设计存在不足时,将会引发系统故障,此时系统的内部状态处于错误的状态,进而使系统的外部环境受到影响,最终产生失效。故障错误失效引起导致第七章分布式恢复管理故障模型分布式恢复概述故障错误失效引起导致永久性错误:会一直持续下去,不会自动恢复,如硬盘损坏等。间歇性错误:时常发生,会自动恢复,如电路接触故障、计算机运行不稳定等。暂时性错误:可能发生一次便不再发生,如偶然电流干扰导致的瞬间读写错误。永久性故障不正确的设计不稳定或临界不稳定环境永久性错误间歇性错误临时性错误操作员失误系统失效第七章分布式恢复管理故障模型分布式恢复概述数据库系统中可能发生各种各样的故障,每种故障都会在系统中引发不同的错误状态。故障类型存储介质故障可预期的故障事务内部的故障系统故障通信故障不可预期的故障网络分割故障报文丢失故障第七章分布式恢复管理故障模型分布式恢复概述数据库系统中的故障通常分为4类:(1)事务内部的故障事务内部的故障可细分为可预期的和不可预期的。不可预期的事务故障是指故障的发生不能被应用程序所检测并处理。例如:死锁、算术溢出、完整性被破坏、操作员失误等故障都是不可预期的事务故障,这类故障无法由事务程序本身所预测。可预期的事务故障是指故障的发生可以通过事务程序本身来检测。例如:在转帐事务中,事务主动检查贷方余额是否足够支持转帐,若发现不足,则废弃该子事务,数据库状态没有因为此事务发生变化;事务内部的故障大多数都是不可预期的,发生这类故障的事务将不能正常运行到其终点位置(Commit或Abort)。因此,针对这类故障,数据库恢复机制要强行废弃该事务,使数据库回滚到事务执行前的状态。第七章分布式恢复管理故障模型分布式恢复概述数据库系统中的故障通常分为4类:(2)系统故障系统故障的表现形式是使系统停止运转,必须经过重启后系统才能恢复正常。例如,CPU故障、系统死循环、缓冲区溢出、系统断电等。这类故障的特点是:仅使正在运行的事务受到影响,但数据库本身没有被破坏;内存中的数据全部丢失。一方面,一些尚未完成的事务的结果可能已被写入数据库中;另一方面,一些已提交的事务的结果可能还未更新到磁盘上。因此,系统故障发生后数据库可能处于不一致的状态。对于系统故障,数据库恢复机制要在系统重启后,将所有非正常终止的事务强行废弃,同时将已提交的事务的结果重新更新到数据库中,以保证数据库的正确性。第七章分布式恢复管理故障模型分布式恢复概述数据库系统中的故障通常分为4类:(3)存储介质故障存储介质故障是指存储数据的磁盘等硬件设备发生的故障。例如,磁盘坏损、磁头碰撞、瞬时强磁场干扰等均为存储介质故障。这类故障的特点是:不仅使正在运行的所有事务受到影响,而且数据库本身也被破坏。因此,同前两种故障相比,存储介质故障是一种较严重的故障类型。对于存储介质故障,数据库恢复机制要定期地对数据库进行转储,借助于备份数据库和日志文件来进行故障恢复。第七章分布式恢复管理故障模型分布式恢复概述数据库系统中的故障通常分为4类:(4)通信故障前三个故障都是单场地故障、也是集中式数据库中的故障。对于分布式数据库而言,还要进行各个场地的通信,因此还会产生通信故障。通信故障可细分为网络分割故障和报文丢失故障。网络分割是指通讯网络中一部分场地和另一部分场地之间完全失去联系。报文丢失是指报文本身错误或在传送过程中丢失而导致数据不正确。对于通信故障,数据库恢复机制要针对故障的表现形式进行判断,分析故障产生原因并进行相应的处理,如重发报文等。第七章分布式恢复管理故障模型分布式恢复概述数据库系统中的故障通常分为4类:(4)通信故障前三个故障都是单场地故障、也是集中式数据库中的故障。对于分布式数据库而言,还要进行各个场地的通信,因此还会产生通信故障。通信故障可细分为网络分割故障和报文丢失故障。网络分割是指通讯网络中一部分场地和另一部分场地之间完全失去联系。报文丢失是指报文本身错误或在传送过程中丢失而导致数据不正确。对于通信故障,数据库恢复机制要针对故障的表现形式进行判断,分析故障产生原因并进行相应的处理,如重发报文等。第七章分布式恢复管理故障模型分布式恢复概述事务内部故障系统故障通信故障软故障—临时性的、间歇性的,导致软失效。存储介质故障硬故障—永久性的、不能自行恢复、致命的,导致硬失效。第七章分布式恢复管理恢复模型分布式恢复概述在故障恢复过程中,数据库恢复管理器依据数据库日志文件(log)对数据库事务进行恢复操作。日志文件的格式和内容反做(undo)和重做(redo)恢复策略故障恢复模型第七章分布式恢复管理恢复模型数据库的日志文件内容:记录事务的执行信息。作用:①用来进行数据库的恢复;②数据库使用情况统计和分析的数据源。有多重要?先写日志原则(WAL,WriteAheadLog)。分布式恢复概述日志文件旧的稳定的数据库状态新的稳定的数据库状态更新操作第七章分布式恢复管理恢复模型数据库的日志文件在日志中,系统的运行情况通常以运行记录的形式存放。日志记录可分为:数据日志记录命令日志记录检查点日志记录分布式恢复概述第七章分布式恢复管理恢复模型数据库的日志文件数据日志记录包括:事务标识符(标明是哪个事务)操作类型(插入、删除或修改)操作的数据项数据项的旧值(前像,BeforeImage)数据项的新值(后像,AfterImage)分布式恢复概述第七章分布式恢复管理恢复模型数据库的日志文件命令日志记录包括:事务标识符(标明是哪个事务);命令(如:Begin、Abort或Commit)。分布式恢复概述第七章分布式恢复管理恢复模型数据库的日志文件检查点记录检查点是在日志中周期设定的操作标志,目的是减少系统故障后的恢复的工作量。在检查点上,需要完成的操作包括:首先,将日志缓冲区中的内容写入外存中的日志;然后,在外存日志中登记一个检查点记录;接下来,将数据库缓冲区的内容写入外存数据库;最后,把外存日志中检查点的地址写入重启动文件。上述工作的目的就是把检查点之前的工作持久化。分布式恢复概述第七章分布式恢复管理恢复模型数据库的日志文件检查点记录当系统出现故障时,只需要进行如下恢复处理:在重启动文件中找到最近的一次检查点记录在日志中的位置,然后在日志中找到最近的一个检查点。对最近的检查点以后的提交操作进行恢复处理;对最近检查点没提交的活动事务的操作进行恢复处理;对检查点以后没有提交的事务的操作进行恢复处理。可见,基于检查点的恢复处理可有效减少恢复的工作量(只需要恢复最近一个检查点之后的数据库操作)。分布式恢复概述第七章分布式恢复管理恢复模型数据库的日志文件分布式恢复概述B1D11D12B2D13D21C1A2其中,Dij表示事务i对数据D的第j步操作,Bi表示事务i开始执行(begin),Ci和Ai分别表示事务i的提交(commit)与废弃(abort)。T1的执行过程为:B1D11D12D13C1T2的执行过程为:B2D21A2第七章分布式恢复管理恢复模型反做(undo)和重做(redo)恢复策略什么是反做?反做(undo)也称撤消、回滚(rollback),是将一个数据项的值恢复到其修改之前的值,即取消一个事务所完成的操作结果。当一个事务尚没提交时,如果缓冲区管理器允许该事务修改过的数据写到外存数据库,一旦此事务出现故障需废弃时,就需对被这个事务修改过的数据项进行反做,即根据日志文件将其恢复到前像。反做的目的是保持数据库的原子性。反做幂等率:undo(undo(…T)))=undo(T)分布式恢复概述第七章分布式恢复管理恢复模型反做(undo)和重做(redo)恢复策略什么是重做?重做(redo)也称为前滚操作(rollforward),是将一个数据项的值恢复到其修改后的值,即恢复一个事务的操作结果。当一个事务提交时,如果缓冲区管理器允许该事务修改过的数据不立刻写到外存数据库,一旦此事务出现故障,需对被这个事务修改过的数据项进行重做(redo),即根据日志文件将其恢复到后像。重做(redo)的目的是保持数据库的持久性。重做幂等率:redo(redo(…T)))=redo(T)分布式恢复概述第七章分布式恢复管理软/硬故障的恢复模型软故障的恢复模型当软故障发生时,造成数据库不一致状态的原因包括:一些未完成事务对数据库的更新已写入外存数据库;一些已提交事务对数据库的更新还没来得及写入外存数据库。因此,需要的恢复操作有undo和重做redo。分布式恢复概述反做数据库日志旧的稳定的数据库状态新的稳定的数据库状态重做数据库日志新的稳定的数据库状态旧的稳定的数据库状态第七章分布式恢复管理软/硬故障的恢复模型硬故障的恢复模型硬故障的主要恢复措施是进行数据转储和建立日志文件。首先,DBA要定期地将数据库转储到其它磁盘上,形成一系列备份数据库(也称“后备副本”)。接下来,利用日志文件重新运行转储以后的所有更新事务,使数据库再进一步地恢复到故障发生时的状态。分布式恢复概述TaTbTf故障发生点运行事务转储正常运行利用日志文件恢复重装后备副本故障恢复登记日志文件继续运行登记日志文件第七章分布式恢复管理局部恢复系统的体系结构集中式数据库的故障恢复读/写局部恢复管理器(LRM)数据库缓冲区管理器数据库读/写取出(fetch)/刷新(flush)数据库缓冲区数据库存储在永久性的外存设备上。数据库缓冲区用来存放最近执行的事务所使用的数据。数据库缓冲区被放置在具有挥发性的内存中,以页为单位来缓存数据。数据库缓冲区管理器负责读写数据库及缓冲区中的数据。局部恢复管理器与缓冲区管理器之间存在两个交互接口:读取数据页(fetch)和刷新数据页(flush)。第七章分布式恢复管理局部恢复系统的体系结构集中式数据库的故障恢复读/写局部恢复管理器(LRM)数据库缓冲区管理器数据库读/写取出(fetch)/刷新(flush)数据库缓冲区局部恢复管理器刷新数据库缓冲区数据页的过程:首先,由局部恢复管理器发出“刷新”(flush)命令并指明它想要刷新的数据页;然后,缓冲区管理器在当前缓冲区中查找该数据页,若存在,则将该页数据写回到数据库中;若不存在,还要将该页数据从数据库读取到缓冲区中,将其更改后写回到数据库。第七章分布式恢复管理数据更新策略集中式数据库的故障恢复(1)数据的更新策略数据库数据的更新通常采用两种更新方法,即原地更新和异地更新。原地更新,更新操作直接修改数据库缓冲区中的旧值。异地更新,更新操作将数据项新值存放在与旧值不同的位置上。异地更新的两种方法:影子页面和差分文件。影子页面:更新数据时,不改变旧存储页面,而是建立影子页面,将新值存于新建的影子页面上。旧页面用于故障恢复。差分文件:由于更新操作等价于先删除旧值,再插入新值。因此,差分文件(F)由只读部分(FR)加上插入部分(DF+)和删除部分(DF-)组成,即F=(FR∪DF+)-(DF-)。第七章分布式恢复管理数据更新策略集中式数据库的故障恢复(2)缓冲区的更新策略缓冲区更

1 / 55
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功