第09-1-事务管理-数据库恢复ppt课件_第1页
第09-1-事务管理-数据库恢复ppt课件_第2页
第09-1-事务管理-数据库恢复ppt课件_第3页
第09-1-事务管理-数据库恢复ppt课件_第4页
第09-1-事务管理-数据库恢复ppt课件_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

1、浙江工商大学信息学院计算机系数据库系统概论数据库系统概论An Introduction to An Introduction to Database SystemDatabase System第九章第九章 事务管理事务管理数据库恢复 o 数据库系统中的数据是由DBMS一致管理和控制的,为了顺应数据共享的环境,DBMS必需提供数据维护才干,以保证数据库中数据的平安可靠和正确有效。o 数据维护o 平安性o 完好性o 并发控制o 数据库恢复1 事务的根本概念一、什么是事务二、如何定义事务三、事务的特性一、什么是事务o 事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要

2、么全不做,是一个不可分割的任务单位o 事务和程序是两个概念o 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序o 一个运用程序通常包含多个事务o 事务是恢复和并发控制的根本单位二、如何定义事务o 显式定义方式o BEGIN TRANSACTION BEGIN TRANSACTIONo SQL 语句1 SQL 语句1o SQL 语句2 SQL 语句2o 。 。o COMMIT ROLLBACKo 隐式方式o 当用户没有显式地定义事务时,o DBMS按缺省规定自动划分事务事务终了COMMIT事务正常终了 提交事务的一切操作读+更新事务中一切对数据库的更新永久生效ROLLBAC

3、K事务异常终止事务运转的过程中发生了缺点,不能继续执行回滚事务的一切更新操作事务滚回到开场时的形状三、事务的特性(ACID特性)事务的ACID特性:原子性Atomicity一致性Consistency隔离性Isolation继续性Durability 1. 原子性o事务是数据库的逻辑任务单位o事务中包括的诸操作要么都做,要么都不做2. 一致性o 事务执行的结果必需是使数据库从一个一致性形状变到另一个一致性形状o 一致性形状:o 数据库中只包含胜利事务提交的结果o 不一致形状:o 数据库中包含失败事务的结果一致性与原子性银行转帐:从帐号A中取出一万元,存入帐号B。定义一个事务,该事务包括两个操作

4、这两个操作要么全做,要么全不做全做或者全不做,数据库都处于一致性形状。假设只做一个操作,数据库就处于不一致性形状。B=B+1 A=A-1BA3. 隔离性对并发执行而言一个事务的执行不能被其他事务干扰一个事务内部的操作及运用的数据对其他并发事务是隔离的并发执行的各个事务之间不能相互关扰T1的修正被T2覆盖了!读A=16AA-3写回A=13 读A=16 AA-1 写回 A=15 T2T14. 继续性o 继续性也称永久性Permanenceo 一个事务一旦提交,它对数据库中数据的改动就应该是永久性的。o 接下来的其他操作或缺点不应该对其执行结果有任何影响。事务的特性 o 保证事务ACID特性是事务处

5、置的义务o 破坏事务ACID特性的要素o 多个事务并行运转时,不同事务的操作交叉执行o 事务在运转过程中被强行停顿数据库恢复概述o 缺点是不可防止的o 计算机硬件缺点o 系统软件和运用软件的错误o 操作员的失误o 恶意的破坏o 缺点的影响o 运转事务非正常中断o 破坏数据库数据库恢复概述o 数据库管理系统对缺点的对策o DBMS提供恢复子系统o 保证缺点发生后,能把数据库中的数据从错误形状恢复到某种逻辑一致的形状o 保证事务ACIDo 恢复技术是衡量系统优劣的重要目的一、事务缺点o 什么是事务缺点o 某个事务在运转过程中由于种种缘由未运转至正常终止点就夭折了o 事务缺点的常见缘由o 输入数据有

6、误o 运算溢出o 违反了某些完好性限制o 某些运用程序出错o 并行事务发生死锁o 。事务缺点的恢复o 发惹事务缺点时,夭折的事务能够已把对数据库的部分修正写回磁盘o 事务缺点的恢复:吊销事务UNDOo 强行回滚ROLLBACK该事务o 去除该事务对数据库的一切修正,使得这个事务象根本没有启动过一样二、系统缺点o什么是系统缺点o整个系统的正常运转忽然被破坏o一切正在运转的事务都非正常终止o内存中数据库缓冲区的信息全部丧失o外部存储设备上的数据未受影响系统缺点的恢复o 去除尚未完成的事务对数据库的一切修正o 系统重新启动时,恢复程序要强行吊销UNDO一切未完成事务o 将缓冲区中已完成事务提交的结果

7、写入数据库o 系统重新启动时,恢复程序需求重做REDO一切已提交的事务三、介质缺点o 硬件缺点使存储在外存中的数据部分丧失或全部丧失o 介质缺点比前两类缺点的能够性小得多,但破坏性大得多介质缺点的常见缘由o 硬件缺点o 磁盘损坏o 磁头碰撞o 操作系统的某种潜在错误o 瞬时强磁场干扰介质缺点的恢复o 装入数据库发生介质缺点前某个时辰的数据副本o 重做自此时始的一切胜利事务,将这些事务已提交的结果重新记入数据库恢复操作的根本原理o 恢复操作的根本原理:冗余o 利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据o 恢复的实现技术:复杂o 一个大型数据库产品,恢复子系统的代码

8、要占全部代码的10%以上2 恢复的实现技术恢复机制涉及的关键问题1. 如何建立冗余数据数据转储backup登录日志文件logging2. 如何利用这些冗余数据实施数据库恢复3 数据转储一、什么是转储二、转储的用途三、转储方法一、什么是转储o 转储是指DBA将整个数据库复制到磁带或另一个磁盘上保管起来的过程。o 这些备用的数据文本称为后备副本或后援副本。转储 缺点发生点缺点发生点 转储转储 运转事务运转事务 正常运转正常运转 Ta Ta Tb TfTb Tf 重装后备副本重装后备副本 重新运转事务重新运转事务恢复恢复 三、转储方法1静态转储与动态转储2海量转储与增量转储3转储方法小结1静态转储o

9、 在系统中无运转事务时进展转储o 转储开场时数据库处于一致性形状o 转储期间不允许对数据库的任何存取、修正活动o 优点:实现简单o 缺陷:降低了数据库的可用性o 转储必需等用户事务终了o 新的事务必需等转储终了动态转储o 转储操作与用户事务并发进展o 转储期间允许对数据库进展存取或修正o 优点o 不用等待正在运转的用户事务终了o 不会影响新事务的运转o 动态转储的缺陷o 不能保证副本中的数据正确有效动态转储o 利用动态转储得到的副本进展缺点恢复o 需求把动态转储期间各事务对数据库的修正活动登记下来,建立日志文件o 后备副本加上日志文件才干把数据库恢复到某一时辰的正确形状利用动态转储副本进展恢复

10、 Ta Ta Tb TfTb Tf 动 态 转 储动 态 转 储 运 转 事 务运 转 事 务 缺点发生点缺点发生点正常运转正常运转 登记日志文件登记日志文件 登记新日志文件登记新日志文件 转储日志文件转储日志文件 重装后备副本,然后利用转储的日志文件恢复重装后备副本,然后利用转储的日志文件恢复恢复到一恢复到一 致性形状致性形状2海量转储与增量转储o 海量转储: 每次转储全部数据库o 增量转储: 只转储上次转储后更新过的数据o 海量转储与增量转储比较o 从恢复角度看,运用海量转储得到的后备副本进展恢复往往更方便o 但假设数据库很大,事务处置又非常频繁,那么增量转储方式更适用更有效3转储方法小结

11、o转储方法分类 转储形状转储形状动态转储动态转储静态转储静态转储转储转储方式方式海量转储海量转储动态海量转储动态海量转储静态海量转储静态海量转储增量转储增量转储动态增量转储动态增量转储静态增量转储静态增量转储转储战略o应定期进展数据转储,制造后备副本。o但转储又是非常耗费时间和资源的,不能频繁进展。oDBA应该根据数据库运用情况确定适当的转储周期和转储方法。o 例:o每天晚上进展动态增量转储o每周进展一次动态海量转储o每月进展一次静态海量转储登记日志文件一、日志文件的内容二、日志文件的用途三、登记日志文件的原那么一、日志文件的内容1. 什么是日志文件日志文件(log)是用来记录事务对数据库的更

12、新操作的文件2. 日志文件的格式以记录为单位的日志文件以数据块为单位的日志文件基于记录的日志文件3. 日志文件内容各个事务的开场标志(BEGIN TRANSACTION)各个事务的终了标志(COMMIT或ROLLBACK)各个事务的一切更新操作与事务有关的内部更新操作日志文件中的一个日志记录 (log record)基于记录的日志文件每条日志记录的内容事务标识操作类型插入、删除或修正操作对象记录ID、Block NO.更新前数据的旧值对插入操作而言,此项为空值更新后数据的新值对删除操作而言, 此项为空值基于数据块的日志文件每条日志记录的内容事务标识标明是那个事务操作对象记录ID、Block N

13、O.更新前数据所在的整个数据块的值对插入操作而言,此项为空值更新后整个数据块的值对删除操作而言, 此项为空值二、日志文件的用途1用途进展事务缺点恢复进展系统缺点恢复协助后备副本进展介质缺点恢复日志文件的用途2与静态转储后备副本配合进展介质缺点恢复静态转储的数据已是一致性的数据假设静态转储完成后,仍能定期转储日志文件,那么在出现介质缺点重装数据副本后,可以利用这些日志文件副本对已完成的事务进展重做处置这样不用重新运转那些已完成的事务程序就可把数据库恢复到缺点前某一时辰的正确形状日志文件的用途 缺点发生点缺点发生点 静态转储静态转储 运转事务运转事务 正常运转正常运转 Ta Ta Tb TfTb

14、Tf 登记日志文件登记日志文件 重装后备副本重装后备副本 利用日志文件恢复事务利用日志文件恢复事务 继续运转继续运转介质缺点恢复介质缺点恢复 登记日志文件登记日志文件 日志文件的用途3介质缺点恢复:LOG FILE + 动态转储后备副本动态转储数据库:同时转储同一时点的日志文件后备副本与该日志文件结合起来才干将数据库恢复到一致性形状。利用这些日志文件副本进一步恢复事务,防止重新运转事务程序。三、登记日志文件的原那么o 为保证数据库是可恢复的,登记日志文件时必需遵照两条原那么o 登记的次序严厉按并行事务执行的时间次序o 必需先写日志文件,后写数据库o 写日志文件操作:把表示这个修正的日志记录o

15、写到日志文件o 写数据库操作:把对数据的修正写到数据库中登记日志文件的原那么o 为什么要先写日志文件o 写数据库和写日志文件是两个不同的操作o 在这两个操作之间能够发生缺点o 假设先写了数据库修正,而在日志文件中没有登记下这个修正,那么以后就无法恢复这个修正了o 假设先写日志,但没有修正数据库,按日志文件恢复时只不过是多执行一次不用要的UNDO操作,并不会影响数据库的正确性事务缺点的恢复o 事务缺点:事务在运转至正常终止点前被中止o 恢复方法o 由恢复子系统应利用日志文件吊销UNDO此事务已对数据库进展的修正o 事务缺点的恢复由系统自动完成,不需求用户干涉事务缺点的恢复步骤1. 反向扫描文件日

16、志即从最后向前扫描日志文件,查找该事务的更新操作。2. 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值Befor Image, BI写入数据库。插入操作, “更新前的值为空,那么相当于做删除操作删除操作,“更新后的值为空,那么相当于做插入操作假设是修正操作,那么用BI 替代 AIAfter Image事务缺点的恢复步骤3. 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处置。4. 如此处置下去,直至读到此事务的开场标志,事务缺点恢复就完成了。系统缺点的恢复o 系统缺点呵斥数据库不一致形状的缘由o 一些未完成事务对数据库的更新已写入数据库o 一些已提交事务对数据库的更新还留在

17、缓冲区没来得及写入数据库o 恢复方法o 1. Undo 缺点发生时未完成的事务o 2. Redo 已完成的事务o 系统缺点的恢复由系统在重新启动时自动完成,不需求用户干涉系统缺点的恢复步骤1. 正向扫描日志文件即从头扫描日志文件Redo队列: 在缺点发生前曾经提交的事务 T1, T3, T8.Undo队列:缺点发生时髦未完成的事务 T2, T4, T5, T6, T7, T9 .系统缺点的恢复步骤2. 对Undo队列事务进展UNDO处置 反向扫描日志文件,对每个UNDO事务的更 新操作执行逆操作 T2, T4, T5, T6, T7, T9 3. 对Redo队列事务进展REDO处置 正向扫描日

18、志文件,对每个REDO事务重新 执行登记的操作 T1, T3, T8.介质缺点的恢复1. 重装数据库, 使数据库恢复到一致性形状2. 重做已完成的事务介质缺点的恢复o恢复步骤o1. 装入最新的后备数据库副本,使数据库恢复到最近一次转储时的一致性形状。o对于静态转储的数据库副本,装入后数据库即处于一致性形状o对于动态转储的数据库副本,还须同时装入转储时辰的日志文件副本,利用与恢复系统缺点一样的方法即REDO+UNDO,才干将数据库恢复到一致性形状。利用静态转储副本将数据库恢复到一致性形状 缺点发生点缺点发生点 静态转储静态转储 运转事务运转事务 正常运转正常运转 Ta Ta Tb TfTb Tf

19、 登记日志文件登记日志文件 重装后备副本重装后备副本 恢复恢复 利用动态转储副本将数据库恢复到一致性形状 Ta Ta Tb TfTb Tf 动 态 转 储动 态 转 储 运 转 事 务运 转 事 务 缺点发生点缺点发生点正常运转正常运转 登记日志文件登记日志文件 登记新日志文件登记新日志文件 转储日志文件转储日志文件 重装后备副本,然后利用转储的日志文件恢复重装后备副本,然后利用转储的日志文件恢复恢复到一恢复到一 致性形状致性形状介质缺点的恢复2. 装入有关的日志文件副本,重做已完成的事务。首先扫描日志文件,找出缺点发生时已提交的事务的标识,将其记入重做队列。然后正向扫描日志文件,对重做队列中

20、的一切事务进展重做处置。即将日志记录中“更新后的值写入数据库。介质缺点的恢复介质缺点的恢复需求DBA介入DBA的任务重装最近转储的数据库副本和有关的各日志文件副本执行系统提供的恢复命令详细的恢复操作仍由DBMS完成具有检查点的恢复技术一、问题的提出二、检查点技术三、利用检查点的恢复战略一、问题的提出o 两个问题o 搜索整个日志将耗费大量的时间o REDO处置:重新执行,浪费了大量时间处理方案o 具有检查点checkpoint的恢复技术o 在日志文件中添加检查点记录checkpointo 添加重新开场文件o 恢复子系统在登录日志文件期间动态地维护日志二、检查点技术o 检查点记录的内容o 1. 建

21、立检查点时辰一切正在执行的事务清单o 2. 这些事务最近一个日志记录的地址o 重新开场文件的内容o 记录各个检查点记录在日志文件中的地址在检查点 维护日志文件1. 将当前日志缓冲区中的一切日志记录写入磁盘的日志文件上。2. 在日志文件中写入一个检查点记录。3. 将当前数据缓冲区的一切数据记录写入磁盘的数据库中。4. 把检查点记录在日志文件中的地址写入一个重新开场文件。建立检查点o 定期o 按照预定的一个时间间隔o 不定期o 按照某种规那么,如日志文件已写满一半建立一个检查点三、利用检查点的恢复战略o 当事务T在一个检查点之前提交o T对数据库所做的修正已写入数据库o 在进展恢复处置时,没有必要对事务T执行REDO操作利用检查点的恢复战略Tc (检查点检查点)T

温馨提示

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

评论

0/150

提交评论