为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

16周恢复技术

2013-05-05 50页 ppt 531KB 22阅读

用户头像

is_046553

暂无简介

举报
16周恢复技术nullnull 数据库系统概论 An Introduction to Database System 第十章 数据库恢复技术第十章 数据库恢复技术第十章 数据库恢复技术10.1 事务的基本概念 10.2 数据库恢复概述 10.3 故障的种类 10.4 恢复的实现技术 10.5 恢复策略 10.6 具有检查点的恢复技术 10.7 数据库镜像 10.8 小结思考思考SQL Server中,Employee职工表包含1000000条记录,假设要执行以下语句 Update Employee Set s...
16周恢复技术
nullnull 数据库系统概论 An Introduction to Database System 第十章 数据库恢复技术第十章 数据库恢复技术第十章 数据库恢复技术10.1 事务的基本概念 10.2 数据库恢复概述 10.3 故障的种类 10.4 恢复的实现技术 10.5 恢复策略 10.6 具有检查点的恢复技术 10.7 数据库镜像 10.8 小结思考思考SQL Server中,Employee职工包含1000000条,假设要执行以下语句 Update Employee Set salary = salary * 1.1 如果在执行到一半的时候,突然停电。那么重启后,Employee表会发生什么样的变化?10.1 事务的基本概念10.1 事务的基本概念一、事务定义 二、事务的特性 一、事务(Transaction)一、事务(Transaction)定义 一个数据库操作序列 一个不可分割的工作单位 恢复和并发控制的基本单位 例如银行转帐事务由两个操作组成:① 对帐户A扣除某一金额 ② 对帐户B增加相同金额。这两个操作应该放在同一个事务里,因为要么都做,要么都不做 一、事务(Transaction)一、事务(Transaction)事务和程序比较 在关系数据库中,一个事务可以是一条或多条SQL语句,也可以包含一个或多个程序。 一个程序通常包含多个事务 定义事务定义事务显式定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 。。。。。 。。。。。 COMMIT ROLLBACK 隐式方式 当用户没有显式地定义事务时, DBMS按缺省规定自动划分事务定义事务定义事务下面的SQL程序包含几个事务? Begin Transaction Update account set money= money - 50 where no=“A” Update account set money= money + 50 where no=“B” Commit 思考,如果执行完第一个update语句之后、没有执行第二个update语句之前,系统断电。那么在重启以后,两个帐户的金额会发生什么样的变化?二、事务的特性(ACID特性)二、事务的特性(ACID特性)事务的ACID特性: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability )原子性 (Atomicity)原子性 (Atomicity)事务中包含的所有操作(特指修改操作)要么全部做,要么全不做 – 例如某个转帐事务:对帐户A扣除50,对帐户B增加50。 这两个操作要么都做,要么都不做 原子性由恢复机制实现一致性(Consistency)一致性(Consistency)独立执行一个事务(无其它事务同时并发执行)的结果必须保证数据一致性。即事务开始前,数据满足一致性的要求;事务结束后,数据虽然变了,但还是满足一致性的要求。 这里的数据一致性是指应用的要求,应根据具体现实而定 例如在银行系统中,转帐事务的一致性要求是前后两个帐户的金额总和不变。假如一个事务为帐户A减去100,为帐户B加上50,那么这个事务就违反了一致性。 保证单个事务的一致性,由编写事务的应用程序员来负责,并借助完整性机制来协助实现。也就是说,如果有数据一致性要求,应该将其定义成某些完整性规则。隔离性 (Isolation)隔离性 (Isolation)任何一对事务T1、T2,在T1看来,T2要么在T1开始之前已经结束,要么在T1完成之后再开始执行 (T2对数据库的修改,T1要么全部看到,要么全部看不到) – 例如两个事务T1、T2同时对帐户A、B操作。如果T1读取的A是T2修改前的A,而读取的B是T2修改后的B,这就违反了隔离性,并可能导致数据错误 隔离性通过并发控制机制(第11章)实现持久性(Durability)持久性(Durability)任何事务一旦提交了,它对数据库的影响就必须是永久性的。无论发生任何故障,都不能取消或破坏这种影响 例如一个事务将50元从帐户A转到帐户B,那么事务一旦提交,这种交易是无法“悔改”的——即便发生故障,也不能把这50元”还”回去 持久性通过恢复机制(第11章)实现第十章 数据库恢复技术第十章 数据库恢复技术10.1 事务的基本概念 10.2 数据库恢复概述 10.3 故障的种类 10.4 恢复的实现技术 10.5 恢复策略 10.6 具有检查点的恢复技术 10.7 数据库镜像 10.8 小结10.2 数据库恢复概述10.2 数据库恢复概述故障是不可避免的 系统故障:计算机软、硬件故障 人为故障:操作员的失误、恶意的破坏等。 数据库的恢复 把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)第十章 数据库恢复技术第十章 数据库恢复技术10.1 事务的基本概念 10.2 数据库恢复概述 10.3 故障的种类 10.4 恢复的实现技术 10.5 恢复策略 10.6 具有检查点的恢复技术 10.7 数据库镜像 10.8 小结故障的种类故障的种类事务内部的故障 系统故障 介质故障: 计算机病毒撤消事务(UNDO)发生系统故障时,事务未提交:强行撤消(UNDO)事务已提交:重做(REDO)装入数据库发生介质故障前某个时刻的数据副本 然后重做(REDO)+撤消(UNDO)一、事务内部的故障一、事务内部的故障事务内部的故障 有的是可以通过事务程序本身发现的(见下面转账事 务的例子) 有的是非预期的事务内部的故障(续)事务内部的故障(续)例如,银行转账事务,这个事务把一笔金额从一个账户甲转给另一个账户乙。 BEGIN TRANSACTION 读账户甲的余额BALANCE; BALANCE=BALANCE-AMOUNT;(AMOUNT 为转账金额) 写回BALANCE; IF(BALANCE < 0 ) THEN { 打印'金额不足,不能转账'; ROLLBACK;(撤销刚才的修改,恢复事务) } ELSE { 读账户乙的余额BALANCE1; BALANCE1=BALANCE1+AMOUNT; 写回BALANCE1; COMMIT; } 事务内部的故障(续)事务内部的故障(续)这个例子所包括的两个更新操作要么全部完成要么全部不做。否则就会使数据库处于不一致状态,例如只把账户甲的余额减少了而没有把账户乙的余额增加。 在这段程序中若产生账户甲余额不足的情况,应用程序可以发现并让事务滚回,撤销已作的修改,恢复数据库到正确状态。事务内部的故障(续)事务内部的故障(续)事务内部更多的故障是非预期的,是不能由应用程序处理的。 运算溢出 并发事务发生死锁而被选中撤销该事务 违反了某些完整性限制等 以后,事务故障仅指这类非预期的故障 事务故障的恢复:撤消事务(UNDO)二、系统故障二、系统故障系统故障 称为软故障,是指造成系统停止运转的任何事件,使得系统要重新启动。 整个系统的正常运行突然被破坏 所有正在运行的事务都非正常终止 不破坏数据库 内存中数据库缓冲区的信息全部丢失 系统故障的常见原因系统故障的常见原因特定类型的硬件错误(如CPU故障) 操作系统故障 DBMS代码错误 系统断电系统故障的恢复系统故障的恢复发生系统故障时,事务未提交 恢复策略:强行撤消(UNDO)所有未完成事务 发生系统故障时,事务已提交,但缓冲区中的信息尚未完全写回到磁盘上。 恢复策略:重做(REDO)所有已提交的事务三、介质故障三、介质故障介质故障 称为硬故障,指外存故障 磁盘损坏 磁头碰撞 操作系统的某种潜在错误 瞬时强磁场干扰介质故障的恢复介质故障的恢复装入数据库发生介质故障前某个时刻的数据副本 重做自此时开始的所有成功事务,将这些事务已提交的结果重新记入数据库 撤消未提交的事务四、计算机病毒四、计算机病毒计算机病毒 一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程序 可以繁殖和传播 危害 破坏、盗窃系统中的数据 破坏系统文件 故障小结故障小结各类故障,对数据库的影响有两种可能性 一是数据库本身被破坏 二是数据库没有被破坏,但数据可能不正确,这是由于事务的运行被非正常终止造成的。第十章 数据库恢复技术第十章 数据库恢复技术10.1 事务的基本概念 10.2 数据库恢复概述 10.3 故障的种类 10.4 恢复的实现技术 10.5 恢复策略 10.6 具有检查点的恢复技术 10.7 数据库镜像 10.8 小结10.4 恢复的实现技术10.4 恢复的实现技术恢复操作的基本原理:冗余 利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据 恢复机制涉及的关键问题 如何建立冗余数据 数据转储(backup) 登录日志文件(logging) 如何利用这些冗余数据实施数据库恢复   10.4.1 数据转储10.4.1 数据转储一、什么是数据转储(备份) 二、转储方法一、什么是数据转储(备份)一、什么是数据转储(备份)转储是指DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程,备用的数据称为后备副本或后援副本 如何使用 数据库遭到破坏后可以将后备副本重新装入 重装后备副本只能将数据库恢复到转储时的状态二、转储方法二、转储方法1.静态转储与动态转储 2.海量转储(完全备份)与增量转储(差异备份) 3.转储方法小结3.转储方法小结3.转储方法小结转储方法分类10.4 恢复的实现技术10.4 恢复的实现技术10.4.1 数据转储 10.4.2 登记日志文件10.4.2 登记日志文件10.4.2 登记日志文件一、日志文件的格式和内容 二、日志文件的作用 三、登记日志文件 一、日志文件的格式和内容一、日志文件的格式和内容什么是日志文件 日志文件(log)是用来记录事务对数据库的更新操作的文件 日志文件的格式 以记录为单位的日志文件 以数据块为单位的日志文件日志文件的格式和内容(续)日志文件的格式和内容(续)以记录为单位的日志文件内容 各个事务的开始标记(BEGIN TRANSACTION) 各个事务的结束标记(COMMIT或ROLLBACK) 各个事务的所有更新操作 以上均作为日志文件中的一个日志记录 (log record)日志文件的格式和内容(续)日志文件的格式和内容(续)以记录为单位的日志文件,每条日志记录的内容 事务标识(标明是哪个事务) 操作类型(插入、删除或修改) 操作对象(记录内部标识) 更新前数据的旧值(对插入操作而言,此项为空值) 更新后数据的新值(对删除操作而言, 此项为空值)日志文件的格式和内容(续)日志文件的格式和内容(续)以数据块为单位的日志文件,每条日志记录的内容 事务标识(标明是那个事务) 被更新的数据块二、日志文件的作用二、日志文件的作用进行事务故障恢复 进行系统故障恢复 协助后备副本进行介质故障恢复利用静态转储副本和日志文件进行恢复利用静态转储副本和日志文件进行恢复 静态转储 运行事务 正常运行 ─┼───────┼───────────── Ta    Tb Tf └──────────── 重装后备副本 利用日志文件恢复 继续运行 恢复 ─┼───────┼┈ ┈ ┈ ┈ ┈ ┈ ┈ ┈ ┼────登记日志文件 ↓三、登记日志文件三、登记日志文件基本原则 登记的次序严格按并行事务执行的时间次序 必须先写日志文件,后写数据库 第十章 数据库恢复技术第十章 数据库恢复技术10.1 事务的基本概念 10.2 数据库恢复概述 10.3 故障的种类 10.4 恢复的实现技术 10.5 恢复策略 10.6 具有检查点的恢复技术 10.7 数据库镜像 10.8 小结第十章 数据库恢复技术第十章 数据库恢复技术10.1 事务的基本概念 10.2 数据库恢复概述 10.3 故障的种类 10.4 恢复的实现技术 10.5 恢复策略 10.6 具有检查点的恢复技术 10.7 数据库镜像 10.8 小结10.6 具有检查点的恢复技术10.6 具有检查点的恢复技术一、问题的提出 二、检查点技术 三、利用检查点的恢复策略一、问题的提出一、问题的提出两个问题 搜索整个日志将耗费大量的时间 REDO处理:重新执行,浪费了大量时间解决解决方案具有检查点(checkpoint)的恢复技术 在日志文件中增加检查点记录(checkpoint) 增加重新开始文件 恢复子系统在登录日志文件期间动态地维护日志二、检查点技术二、检查点技术检查点记录的内容 1. 建立检查点时刻所有正在执行的事务清单 2. 这些事务最近一个日志记录的地址 重新开始文件的内容 记录各个检查点记录在日志文件中的地址 检查点技术(续)检查点技术(续)具有检查点的日志文件和重新开始文件 动态维护日志文件的方法动态维护日志文件的方法动态维护日志文件的方法 周期性地执行如下操作:建立检查点,保存数据库状态。 具体步骤是: 1.将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上 2.在日志文件中写入一个检查点记录 3.将当前数据缓冲区的所有数据记录写入磁盘的数据库中 4.把检查点记录在日志文件中的地址写入一个重新开始文件建立检查点建立检查点恢复子系统可以定期或不定期地建立检查点,保存数据库状态 定期 按照预定的一个时间间隔,如每隔一小时建立一个检查点 不定期 按照某种规则,如日志文件已写满一半建立一个检查点三、利用检查点的恢复策略三、利用检查点的恢复策略使用检查点方法可以改善恢复效率 当事务T在一个检查点之前提交 T对数据库所做的修改已写入数据库 写入时间是在这个检查点建立之前或在这个检查点建立之时 在进行恢复处理时,没有必要对事务T执行REDO操作 利用检查点的恢复策略(续)利用检查点的恢复策略(续)系统出现故障时,恢复子系统将根据事务的不同状态采取不同的恢复策略 利用检查点的恢复策略(续)利用检查点的恢复策略(续)T1:在检查点之前提交 T2:在检查点之前开始执行,在检查点之后故障点之前提交 T3:在检查点之前开始执行,在故障点时还未完成 T4:在检查点之后开始执行,在故障点之前提交 T5:在检查点之后开始执行,在故障点时还未完成 恢复策略: T3和T5在故障发生时还未完成,所以予以撤销 T2和T4在检查点之后才提交,它们对数据库所做的修改在故障发生时可能还在缓冲区中,尚未写入数据库,所以要REDO T1在检查点之前已提交,所以不必执行REDO操作利用检查点的恢复步骤利用检查点的恢复步骤 1.从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录利用检查点的恢复策略(续)利用检查点的恢复策略(续)2.由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST 建立两个事务队列 UNDO-LIST REDO-LIST 把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空。利用检查点的恢复策略(续)利用检查点的恢复策略(续)3.从检查点开始正向扫描日志文件,直到日志文件结束 如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列 如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列 4.对UNDO-LIST中的每个事务执行UNDO操作 对REDO-LIST中的每个事务执行REDO操作第十章 数据库恢复技术第十章 数据库恢复技术10.1 事务的基本概念 10.2 数据库恢复概述 10.3 故障的种类 10.4 恢复的实现技术 10.5 恢复策略 10.6 具有检查点的恢复技术 10.7 数据库镜像 10.8 小结10.7 数据库镜像10.7 数据库镜像介质故障是对系统影响最为严重的一种故障,严重影响数据库的可用性 介质故障恢复比较费时 为预防介质故障,DBA必须周期性地转储数据库 提高数据库可用性的解决方案 数据库镜像(Mirror)数据库镜像(续)数据库镜像(续)数据库镜像 DBMS自动把整个数据库或其中的关键数据复制到另一个磁盘上 DBMS自动保证镜像数据与主数据库的一致性 每当主数据库更新时,DBMS自动把更新后的数据复制过去(如下图所示)数据库镜像(续)数据库镜像(续)数据库镜像的用途数据库镜像的用途出现介质故障时 可由镜像磁盘继续提供使用 同时DBMS自动利用镜像磁盘数据进行数据库的恢复 不需要关闭系统和重装数据库副本(如下图所示)数据库镜像(续)数据库镜像(续)没有出现故障时 可用于并发操作 一个用户对数据加排他锁修改数据,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁 数据库镜像(续)数据库镜像(续)频繁地复制数据自然会降低系统运行效率 在实际应用中用户往往只选择对关键数据和日志文件镜像,而不是对整个数据库进行镜像第十章 数据库恢复技术第十章 数据库恢复技术10.1 事务的基本概念 10.2 数据库恢复概述 10.3 故障的种类 10.4 恢复的实现技术 10.5 恢复策略 10.6 具有检查点的恢复技术 10.7 数据库镜像 10.8 小结10.8 小结10.8 小结如果数据库只包含成功事务提交的结果,就说数据库处于一致性状态。保证数据一致性是对数据库的最基本的要求。 事务是数据库的逻辑工作单位 DBMS保证系统中一切事务的原子性、一致性、隔离性和持续性 小结(续)小结(续)DBMS必须对事务故障、系统故障和介质故障进行恢复 恢复中最经常使用的技术:数据库转储和登记日志文件 恢复的基本原理:利用存储在后备副本、日志文件和数据库镜像中的冗余数据来重建数据库小结(续)小结(续)常用恢复技术 事务故障的恢复 UNDO 系统故障的恢复 UNDO + REDO 介质故障的恢复 重装备份并恢复到一致性状态 + REDO小结(续) 小结(续) 提高恢复效率的技术 检查点技术 可以提高系统故障的恢复效率 可以在一定程度上提高利用动态转储备份进行介质故障恢复的效率 镜像技术 镜像技术可以改善介质故障的恢复效率 下课了。。。 下课了。。。休息一会儿。。。事务事务示例1: 从帐户A转50元到帐户B的事务 T: Begin Transaction read(A); A := A – 50; write(A); read(B); B := B + 50; write(B); Commit帐户A 减去50帐户B 加上50read(X): 把数 据项X从数据库 读出到事务的内 存缓冲中 write(X): 把数据 项X从事务的内 存写回到数据库
/
本文档为【16周恢复技术】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索