第10章数据库恢复技术2014_第1页
第10章数据库恢复技术2014_第2页
第10章数据库恢复技术2014_第3页
第10章数据库恢复技术2014_第4页
第10章数据库恢复技术2014_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第10章

数据库恢复技术

2

要点(1)事务(2)故障及其类型(3)数据库恢复实现技术(4)数据库恢复策略310.1事务的基本概念10.1.1事务(Transaction)1.事务【定义】用户定义的一个对数据库读写操作序列,是一个不可分割的工作单位。(1)在关系数据库中,事务可以是一条、一组SQL语句,或整个程序。(2)数据库系统中通常有多个事务并行运行。(3)数据库恢复和并发控制的基本单位。2.事务和程序的区别程序可以包含多个事务。43.SQL语言中事务的定义语句事务的开始和结束可以由用户显式控制。如果用户没有定义,则由DBMS按缺省规定自动划分事务。SQL定义事务的语句:Begintransaction(事务开始)…Commit(事务提交,正常结束,将更新结果写入磁盘)/Rollback(事务回滚,撤销事务中所有已完成的更新)5BEGINTRANSACTION

读账户甲的余额balance;balance=balance–amount;//amount为转账金额

if(balance<0)then{打印‘金额不足,不能转账’;

ROLLBACK;//撤销刚才的修改,恢复事务

}else{读账户乙的金额balance1;balance1=balance1+amount;

写回balance1;

COMMIT;}事务示例610.1.2事务的性质(ACID特性)1.原子性(Atomicity)事务中的操作要么都做,要么都不做(AllorNone)。2.一致性(Consistency)事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态。

与原子性密切相关7事务的性质(ACID特性)3.隔离性(Isolation)并发执行的各事务不能相互干扰4.持续性/永久性(Durability)事务一旦提交,它对数据库的更新不再受后继操作或故障的影响

DBMS中事务处理必须保证其ACID特性,这样才能保证数据库中数据的安全和正确。8事务型DBMS中必备的机制(1)事务是恢复和并发控制的基本单位(2)恢复机制与并发控制机制的提出事务在运行过程中因某种故障被强行终止,数据库一致性被破坏,需进行恢复。多个事务并行运行时,不同事务的各种操作交叉进行,为保证各事务的执行互不干扰,需进行并发控制。910.2数据库恢复概述数据库由于某些故障发生可能会导致数据库被破坏或影响数据库中数据的一致性(或完整性、正确性)。当系统运行过程中发生故障时,数据库恢复技术将数据库从错误状态恢复到某个一致状态,它是数据库可靠性的保证。数据库恢复机制是衡量某DBMS系统性能的指标之一,对系统可靠性起决定作用,对运行效率有很大影响。1010.3故障的种类及其影响10.3.1故障的种类1.事务内部故障事务在运行至正常终止点(commit或rollback)前被终止。包括(预期的、非预期的)能由事务所在程序处理的,如条件不满足等。不能由事务所在程序处理的,如运算溢出等。这类恢复操作称为事务撤消。预期故障非预期故障11故障的种类2.系统故障(system)

系统重启、OS故障、DBMS代码错误、掉电等。发生系统故障时:(1)一些尚未完成的事务的结果可能已经写入数据库。(UNDO)(2)有些已完成的事务的结果甚至驻留在缓冲区中。(REDO)12故障的种类3.介质故障(medium)介质故障也称为硬故障。如:磁盘损坏等。这类事故破坏数据库或部分数据库。4.计算机病毒(virus)这类事故破坏数据库或部分数据库。1310.3.2故障对数据库的可能影响(1)数据库本身被破坏,使数据库中全部或部分数据丢失。如:介质故障、计算机病毒等。(2)数据库没有被破坏,但因事务的运行被非正常终止而使数据库数据失去一致性(正确性)。如:事务内部故障、系统故障、计算机病毒等。1410.4恢复的实现技术(1)数据库恢复的基本原理利用存储在系统别处的冗余数据来重建。(2)恢复技术的两个关键①如何建立冗余数据数据转储登录日志文件②如何利用冗余数据恢复数据库1510.4.1建立冗余数据的方法一:数据转储转储状态动态转储静态转储转储方式海量转储动态海量转储静态海量转储增量转储动态增量转储静态增量转储每次转储全部数据库每次转储更新过的数据转储和用户事务可以并发执行转储期间不执行任何用户事务数据转储:定期进行磁盘备份形成后备副本由DBA定义适当的转储周期。16数据转储和恢复正常运行:静态转储运行事务故障发生点登记日志文件TaTbTf恢复:重装后备副本转储耗费时间、资源,应定期进行重新运行事务转储和恢复1710.4.2建立冗余数据的方法二——登记日志文件1.登记日志文件(Logging)日志文件:记录事务对数据库的更新操作。(1)以记录为单位的日志文件事务的开始标记,事务的结束标记各个事务的所有更新操作日志记录的内容:事务标识TransID,操作类型UpdateType,操作对象RecordID,更新前的旧值OldValue,更新后的新值NewValue(2)以数据块为单位的日志文件事务标识,被更新的数据块18(3)登记日志文件必须遵循的原则①登记的次序严格按并发事务执行的时间次序。②必须先写日志文件,后写数据库。(WriteAfterLogging)192.恢复的实现

通常在一个数据库中综合使用数据转储和登录日志文件这两种方法,配合使用后备副本和日志文件进行数据库恢复。利用日志文件进行数据库恢复(1)事务故障恢复和系统故障恢复须用日志文件(2)通常综合数据库后备副本和日志文件将数据库恢复至某个一致状态(视转储方法而定)(3)恢复时,对故障发生时已提交的事务进行重做(Redo,再执行),而对未提交的事务进行撤销(Undo,逆操作)2110.5恢复策略10.5.1事务故障的恢复(1)反向扫描日志文件,查找事务的更新操作。(2)对该事务中的更新操作执行逆向操作。说明:由系统自动完成。10.5.2系统故障的恢复(1)正向扫描日志文件,生成Redo(已提交的事务)和Undo队列(尚未完成的事务)。(2)对Undo队列中的各事务进行Undo。(3)对Redo队列中的各事务进行Redo。说明:由系统在重启时自动完成。2210.5.3介质故障的恢复(1)装入最新后备副本和有关日志文件副本使数据库恢复到最近一次转储时的一致性状态。(2)正向扫描日志文件,生成Redo(已提交的事务)和Undo队列(尚未完成的事务)。(3)对Undo队列中的各事务进行Undo。(4)对Redo队列中的各事务进行Redo。说明:装入副本由DBA介入完成,并执行DBMS提供的恢复命令。2310.6具有检查点的恢复技术1.引入检查点的原因(CheckPoint)减少对日志记录的搜索和Redo处理,改善恢复效率。即数据更新已写库,不需REDO处理。2.具有检查点的恢复技术(1)在日志文件中增加检查点记录,其内容包括:建立检查点时刻所有正在执行的事务清单。这些事务最近一个日志记录的地址。24具有检查点的恢复技术(2)增加重新开始文件 用来记录各个检查点记录在日志文件中的地址动态维护日志文件的方法:周期性地执行(定期或不定期)如下操作:建立检查点,保存数据库状态。253.建立检查点的步骤(1)将当前日志缓冲中的所有日志记录写入磁盘的日志文件;(2)在日志文件中写入一个检查点记录;(3)将当前数据缓冲区的所有数据记录写入磁盘的数据库中;(4)把检查点记录在日志文件中的地址写入一个重新开始文件。264.使用检查点恢复技术进行恢复的步骤(1)从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录;(2)由该检查点记录得到检查点建立时刻所有正在执行的事务清单;(3)从检查点开始正向扫描日志文件;(4)有新开始的事务Ti,把Ti暂时放入Undo队列;(5)如有提交的事务Tj,把Tj移入Redo队列;(6)对Undo队列中的各事务进行Undo,再对Redo队列中的各事务进行Redo。27实例:恢复子系统采取的不同策略T1T2T3T5T4时间系统故障检查点不要REDOREDO撤销REDO撤销2810.7数据库镜像(Mirror)

1.概念数据库镜像为避免介质故障造成的损失而提出的,由DBA提出要求或当主数据库更新时,DBMS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论