三篇系统篇.ppt

上传人:本田雅阁 文档编号:2628687 上传时间:2019-04-24 格式:PPT 页数:70 大小:368.51KB
返回 下载 相关 举报
三篇系统篇.ppt_第1页
第1页 / 共70页
三篇系统篇.ppt_第2页
第2页 / 共70页
三篇系统篇.ppt_第3页
第3页 / 共70页
三篇系统篇.ppt_第4页
第4页 / 共70页
三篇系统篇.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《三篇系统篇.ppt》由会员分享,可在线阅读,更多相关《三篇系统篇.ppt(70页珍藏版)》请在三一文库上搜索。

1、第三篇 系统篇,第三篇 系统篇,数据库系统中的数据是由DBMS统一管理和控制的,DBMS必须提供数据保护能力,以保证数据库中数据的安全可靠和正确有效。,数据库保护 数据库的恢复(第7章) 数据库的并发控制(第8章) 数据库的安全性控制(第9章) 数据库的完整性控制(第10章),第七章 数据库恢复技术,7.1 事务的基本概念 7.2 数据库恢复概述 7.3 故障的种类 7.4 恢复的实现技术 7.5 恢复策略 7.6 具有检查点的恢复技术 7.7 数据库镜像 7.8 Oracle的恢复技术 7.9 小结,7.1 事务的基本概念,一、什么是事务 二、如何定义事务 三、事务的特性,一、什么是事务,事

2、务(Transaction) 是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位,事务和程序是两个概念 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序 一个应用程序通常包含多个事务,事务是数据库恢复和并发控制的基本单位,二、如何定义事务,用户显示定义的2种方式:,(1) BEGIN TRANSACTION SQL 语句1 SQL语句2 COMMIT,说明:事务正常结束,提交事务的所有操作(读+更新),事务中所有对数据库的更新操作永久生效。,二、如何定义事务,用户显示定义的2种方式:,(2) BEGIN TRANSACTION SQL

3、语句1 SQL语句2 ROLLBACK,说明:事务异常终止,事务运行的过程中发生了故障,不能继续执行,回滚事务的所有更新操作,事务滚回到开始时的状态。,二、如何定义事务,系统隐式定义方式:,当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务。,三、事务的特性(ACID特性),事务的ACID特性: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability ),1. 原子性,事务的原子性: 事务是数据库的逻辑工作单位 事务中包括的诸操作要么都做,要么都不做,保证原子性是数据库系统本身的职责,由DBMS的事务管理子系统来实现,

4、2. 一致性,事务的一致性:事务执行的结果必须是使数据库从一个 一致性状态变到另一个一致性状态,事务一致性状态:数据库中只包含成功事务提交的结果,事务不一致状态:数据库中包含失败事务的结果,确保事务的一致性是编写事务的应用程序员的职责,系统运行时,由DBMS的完整性子系统检查该任务。,3. 隔离性,当多个事务并发执行时: 一个事务的执行不能被其他事务干扰 一个事务内部的操作及使用的数据对其他并发事务是隔离的 并发执行的各个事务之间不能互相干扰,隔离性由DBMS的并发控制自子系统实现。,4. 持续性,持续性(永久性) 一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 接下来的其他操作或

5、故障不应该对其执行结果有任何影响。,持久性由DBMS的恢复管理子系统实现。,破坏事务特性的因素,保证事务ACID特性是事务处理的任务 破坏事务ACID特性的因素 多个事务并行运行时,不同事务的操作交叉执行 事务在运行过程中被强行停止,第七章 数据库恢复技术,7.1 事务的基本概念 7.2 数据库恢复概述 7.3 故障的种类 7.4 恢复的实现技术 7.5 恢复策略 7.6 具有检查点的恢复技术 7.7 数据库镜像 7.8 Oracle的恢复技术 7.9 小结,7.2 数据库恢复概述,故障是不可避免的 计算机硬件故障 系统软件和应用软件的错误 操作员的失误 恶意的破坏 故障的影响 运行事务非正常

6、中断 破坏数据库,数据库恢复概述(续),数据库的恢复: 数据库管理系统必须具有把数据库从错误状态恢复到某一个已知的正确状态的功能。 数据库系统采用的恢复技术是衡量系统优劣的重要指标。,第七章 数据库恢复技术,7.1 事务的基本概念 7.2 数据库恢复概述 7.3 故障的种类 7.4 恢复的实现技术 7.5 恢复策略 7.6 具有检查点的恢复技术 7.7 数据库镜像 7.8 Oracle的恢复技术 7.9 小结,7.3 故障的种类,事务内部故障 系统故障 介质故障 计算机病毒,一、事务故障,什么是事务故障 某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了,1)可以预期的事务故障,在事务

7、程序中可以预先估计到的错误 可以在事务程序的代码中加入判断和ROLLBACK语句,当事务执行到ROLLBACK语句时,由系统对事务进行回滚操作,撤销所有刚刚进行的操作。,一、事务故障,2)非预期的事务故障 在事务程序中不可能事先估计到的错误,运算溢出 数据错误 并发执行的事务发生死锁而被迫撤销某个事务等,事务故障的恢复,对于事务内部故障,可以采用的恢复方法是:,撤消事务(UNDO) 强行回滚(ROLLBACK)该事务,即清除该事务对数据库的所有修改,使得这个事务好象根本没有执行过一样。,二、系统故障,引起系统停止运行,并要求重新启动系统的事件,都称为系统故障,影响:正在运行的事务都要受到影响,

8、但是不会破坏数据库。,系统故障:,某些硬件故障(CPU坏) 软件故障(OS,DBMS,应用程序出现错误) 突然停电,系统故障的恢复,1)有些事务没有执行成功就被迫中止,因此,当系统重新启动时,要求数据库的恢复子系统撤销这些事务已经做过的所有操作,从而保证数据的一致性。撤销Undo。,2)有些事务已经完全执行成功,但是还没有来得及把结果写到数据库中,因此,当系统重新启动时,要求把这一部分的事务结果重新写到数据库中去。重做Redo。,三、介质故障,系统故障 软故障,介质故障的影响: 破坏数据库或部分数据,发生的可能性小,但破坏性最大。,介质故障 硬故障:,磁盘损坏 磁头碰撞 强磁场干扰,三、介质故

9、障,介质故障的恢复:,1)把备份的数据库恢复到一个新的磁盘上,使数据库处于备份时的正确状态;,2)在日志文件中找到从备份那一刻到发生介质故障时所提交的成功事务,并把所有的这些事务重做一遍。,四、计算机病毒造成故障,计算机病毒是一种人为的故障或破坏,可以影响软件、硬件、介质等。,解决方法:尽量防毒。,数据库恢复小结,数据库恢复的基本原理:冗余。 利用存储在其它地方的备份数据来重建数据库。,恢复的实现技术:复杂。 恢复子系统的代码要占系统全部代码的10%以上。,第七章 数据库恢复技术,7.1 事务的基本概念 7.2 数据库恢复概述 7.3 故障的种类 7.4 恢复的实现技术 7.5 恢复策略 7.

10、6 具有检查点的恢复技术 7.7 数据库镜像 7.8 Oracle的恢复技术 7.9 小结,7.4 恢复的实现技术,数据库恢复包括2个关键问题:,如何建立冗余数据 如何备份数据库或数据库中的数据:,数据转储 登录日志文件,当数据库被破坏时,如何利用这些备份数据来恢复数据库。,7.4.1 数据转储,转储:是指DBA定期的将整个数据库复制到磁带或另一个磁盘上保存起来的过程,这些备用的数据文本称为后备副本或后援副本,转储方式,转储状态,1静态转储,静态转储:从转储开始到转储结束的整个过程中,不能有事务在运行,即不允许对数据库进行任何存取、修改操作。因此,静态转储得到的结果一定是一个数据一致性的副本。

11、,优点:简单,易操作。 缺点:由于在转储时不能运行事务,即不能对数据库进行任何操作,降低了数据库的可用性。,2. 动态转储,动态转储:在转储期间允许对数据库进行存取或修改操作,即允许事务在运行,转储和用户事务可以同时执行。,优点:用户事务可以和转储并行进行,不会影响新事务的运行。 缺点:不能保证副本中的数据正确有效。,解决方法:必须在转储期间把所有事务对数据库的修改活动记录下来,建立一个日志文件,这样,把备份的副本和日志文件结合起来才能把数据库恢复到某一个正确的状态。,3海量转储与增量转储,海量转储: 每次转储全部数据库 增量转储: 只转储上次转储后更新过的数据,海量转储与增量转储比较 从恢复

12、角度看,使用海量转储得到的后备副本进行恢复往往更方便 但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效,4转储方法小结,转储方法分类,5. 转储策略,应定期进行数据转储,制作后备副本。 但转储又是十分耗费时间和资源的,不能频繁进行。 DBA应该根据数据库使用情况确定适当的转储周期和转储方法。,每天晚上进行动态增量转储 每周进行一次动态海量转储 每月进行一次静态海量转储,7.4.2 登记日志文件,1. 日志文件 是用来记录事务对数据库的更新操作的文件,2. 日志文件的格式,日志文件的内容(续),3. 以记录为单位的日志文件内容 各个事务的开始标记(BEGIN TRANSACTIO

13、N) 各个事务的结束标记(COMMIT或ROLLBACK) 各个事务的所有更新操作,注意:每个事务的开始标记、每个事务的结束标记、每个更新操作均作为日志文件中的一个日志记录。,以记录为单位的日志文件内容,一个日志记录的内容: 事务标识 操作类型(插入、删除或修改) 操作对象(记录ID、Block NO.) 更新前数据的旧值(对插入操作而言,此项为空值) 更新后数据的新值(对删除操作而言, 此项为空值),日志文件的内容(续),4. 以数据块为单位的日志文件内容 事务标识 被更新的数据快,注意:将更新前和更新后的整个数据块都放入到日志文件,因此不需要操作类型和操作对象等信息。,二、日志文件的用途,

14、在事务故障恢复和系统故障恢复时,必须使用日志文件,在动态转储时,必须建立日志文件,协助后备副本进行数据库故障恢复,在静态转储中,也可以建立日志文件。当使用后备副本把数据库恢复到某一个正确状态后,还可以使用日志文件把这一刻后的事务处理重新做一次,从而恢复尽可能多的数据,三、登记日志文件的原则,在建立日志文件时,必须遵循2条原则:,原则1:登记的次序严格按照并行事务执行的时间 原则2:必须先写日志文件,后写数据库。,第七章 数据库恢复技术,7.1 事务的基本概念 7.2 数据库恢复概述 7.3 故障的种类 7.4 恢复的实现技术 7.5 恢复策略 7.6 具有检查点的恢复技术 7.7 数据库镜像

15、7.8 Oracle的恢复技术 7.9 小结,7.5.1 事务故障的恢复,事务故障:事务在运行至正常终止点前被中止 恢复方法:由恢复子系统利用日志文件撤消(UNDO)此事务已对数据库进行的修改 由系统自动完成,不需要用户干预,事务故障的恢复步骤,1. 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。,2. 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库: 若是插入操作, “更新前的值”为空,则相当于做删除操作 若是删除操作,“更新后的值”为空,则相当于做插入操作 若是修改操作,则用修改前的值代替修改后的值。,事务故障的恢复步骤,3. 继续反向扫描日志文

16、件,查找该事务的其他更新操作,并做同样处理。 4. 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。,7.5.2 系统故障的恢复,系统故障对数据库的影响及其相应的恢复方法有以下2 种:,有些事务没有执行成功就被迫中止,因此,当系统重新启动时,要求撤销Undo 这些事务已经做过的所有操作,从而保证数据的一致性。,系统故障的恢复由系统在重新启动时自动完成,不需要用户干预,有些事务已经完全执行成功,但是还没有来得及把结果写到数据库中,因此,当系统重新启动时,要求重做Redo 这些事务并把结果写入数据库中去。,系统故障的恢复步骤,1. 正向扫描日志文件(即从头扫描日志文件) Redo队列

17、: 在故障发生前已经提交的事务 T1, T3, T8 Undo队列:故障发生时尚未完成的事务 T2, T4, T5, T6, T7, T9 .,系统故障的恢复步骤,2. 对Undo队列事务进行UNDO处理 反向扫描日志文件,对每个UNDO事务的更 新操作执行逆操作 T2, T4, T5, T6, T7, T9 3. 对Redo队列事务进行REDO处理 正向扫描日志文件,对每个REDO事务重新 执行登记的操作 T1, T3, T8,7.5.3 介质故障的恢复,发生介质故障时,正在使用的磁盘上的物理数据和日志文件都被破坏,破坏性最大。,恢复方法: 重装数据库, 使数据库恢复到一致性状态,并重做所有

18、已经完成的事务。,恢复时需要DBA参加,他的任务是:重装最近转储的数据库副本和有关的各日志文件副本,然后执行系统提供的恢复命令,由DBMS来完成具体的恢复操作。,7.5.3 介质故障的恢复,恢复的具体步骤 1. 装入最新的后备数据库副本,使数据库恢复到最近一次转储时的一致性状态。 对于静态转储的数据库副本,装入后数据库即处于一致性状态 对于动态转储的数据库副本,还须同时装入转储时刻的日志文件副本,利用与恢复系统故障相同的方法(即REDO+UNDO),才能将数据库恢复到一致性状态。,利用静态转储副本将数据库恢复到一致性状态,故障发生点 静态转储 运行事务 正常运行 Ta Tb Tf 登记日志文件

19、 重装后备副本 恢复 ,利用动态转储副本将数据库恢复到一致性状态,Ta Tb Tf 动态转储 运行事务 故障发生点 正常运行 登记日志文件 登记新日志文件 转储日志文件 重装后备副本,然后利用转储的日志文件恢复 恢复到一 致性状态,介质故障的恢复(续),2. 装入有关的日志文件副本,重做已完成的事务。 首先扫描日志文件,找出故障发生时已提交的事务的标识,将其记入重做队列。 然后正向扫描日志文件,对重做队列中的所有事务进行重做处理。即将日志记录中“更新后的值”写入数据库。,第七章 数据库恢复技术,7.1 事务的基本概念 7.2 数据库恢复概述 7.3 故障的种类 7.4 恢复的实现技术 7.5

20、恢复策略 7.6 具有检查点的恢复技术 7.7 数据库镜像 7.8 Oracle的恢复技术 7.9 小结,7.6 具有检查点的恢复技术,恢复数据库时需要解决2个问题:,搜索整个日志文件,检查哪些事务需要撤销( Undo), 哪些事务需要重做(Redo),为了减少数据库恢复时间,提出了具有检查点的恢复技术,Redo处理:重新执行某些已经成功完成的事务,7.6 具有检查点的恢复技术,具有检查点(checkpoint)的恢复技术:,检查点记录的内容有:记录在检查点时刻所有正在执行的事务清单,这些事务在日志文件中最近一次记录的地址。,数据库系统定时设置检查点,在检查点时刻,才把事务对数据库的修改写入到

21、数据库中去(此前,事务对数据库的修改操作都放在数据缓冲区中),并在日志文件中写入一条检查点记录。,利用检查点的恢复策略(续),Tc ( 检查点 ),Tf( 系统故障 ),REDO,UNDO,UNDO,REDO,T2,T3,T4,T5,不要REDO,T1,数据库运行时间,利用检查点的恢复步骤,在日志文件中根据检查点的记录地址,找到最后一个检查点记录;,从该检查点记录中得到,在检查点时刻所有正在执行的事务清单列表ACTIVE-LIST ;并建立如下两个队列:,对于在故障发生点已经成功完成的事务,列入重做Redo队列; 对于在故障发生时还没有完成的事务,列入撤销Undo队列;,对于Redo队列和Un

22、do队列中的事务,分别做相应的处理。,第七章 数据库恢复技术,7.1 事务的基本概念 7.2 数据库恢复概述 7.3 故障的种类 7.4 恢复的实现技术 7.5 恢复策略 7.6 具有检查点的恢复技术 7.7 数据库镜像 7.8 Oracle的恢复技术 7.9 小结,7.7 数据库镜像,介质故障是对系统影响最为严重的一种故障,严重影响数据库的可用性:,提高数据库可用性的解决方案 数据库镜像(Mirror),介质故障恢复比较费时 为预防介质故障,DBA必须周期性地转储数据库,数据库镜像(续),数据库镜像 根据DBA的要求,DBMS自动的把整个数据库或其中的关键数据复制到另一个磁盘上 DBMS自动

23、保证镜像数据与主数据的一致性(图7.5a),数据库镜像的用途,出现介质故障时 DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本,没有出现故障时 可用于并发操作,一个用户对数据加排他锁修改数据 其他用户可以读镜像数据库上的数据,数据库镜像(续),第七章 数据库恢复技术,7.1 事务的基本概念 7.2 数据库恢复概述 7.3 故障的种类 7.4 恢复的实现技术 7.5 恢复策略 7.6 具有检查点的恢复技术 7.7 数据库镜像 7.8 Oracle的恢复技术 7.9 小结,7.8 Oracle的恢复技术,Oracle中数据库恢复技术: 转储、登记日志文件,Oracle中

24、转储后备副本的方法: 1)文件拷贝 2) Export实用程序 3)用SQL命令Spool 4)自己编程实现,Oracle中重装后备副本的方法: 1)文件拷贝 2) Import实用程序 3)SQL*Loader 实用程序 4)自己编程实现,7.9 小结,如果数据库只包含成功事务提交的结果,就说数据库处于一致性状态。保证数据一致性是对数据库的最基本的要求。 事务是数据库的逻辑工作单位 DBMS保证系统中一切事务的原子性、一致性、隔离性和持续性 事务是数据库恢复和并发控制的基本单位,小结(续),DBMS必须对事务故障、系统故障和介质故障进行恢复,恢复中最经常使用的技术:数据库转储和登记日志文件,恢复的基本原理:利用存储在后备副本、日志文件和数据库镜像中的冗余数据来重建数据库,数据转储的分类:静态海量转储,动态海量转储,静态增量转储,动态增量转储,小结(续),常用的对于各类故障的恢复策略: 事务故障的恢复 UNDO 系统故障的恢复 UNDO + REDO 介质故障的恢复 重装备份并恢复到一致性状态 + REDO,小结(续),提高恢复效率的技术 检查点技术 可以提高系统故障的恢复效率 可以在一定程度上提高利用动态转储备份进行介质故障恢复的效率 镜像技术 镜像技术可以改善介质故障的恢复效率,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1