《数据的保护与恢复》PPT课件.ppt_第1页
《数据的保护与恢复》PPT课件.ppt_第2页
《数据的保护与恢复》PPT课件.ppt_第3页
《数据的保护与恢复》PPT课件.ppt_第4页
《数据的保护与恢复》PPT课件.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、第九章 数据的保护与恢复,为了适应数据共享的环境,DBMS必须提供数据保护能力,以保证数据库中数据的安全可靠和正确有效 安全性保护 完整性检查 并发控制 数据恢复 9.1 故障与恢复 9.2 并发控制,13:24:03,1,9.1 数据库恢复,故障是不可避免的 计算机硬件故障、系统软件和应用软件的错误、操作员的失误、恶意的破坏 故障的影响 运行事务非正常中断、破坏数据库 数据库管理系统对故障的对策 DBMS提供恢复子系统,保证故障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的状态 恢复技术是衡量系统优劣的重要指标,13:24:03,2,9.1.1 事务,事务是用户定义的一个数据库操作

2、序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序 事务是恢复和并发控制的基本单位 定义事务的格式: BEGIN TRANSACTION 事务名 ROLLBACK 事务名 COMMIT TRANSACTION 事务名 ROLLBACK表示要撤消该事务已做的一切操作,回退到事务开始的状态 COMMIT表示提交事务中的一切操作,使得对数据库的改变生效,13:24:03,3,举例:Sql Server中定义事务,BEGIN TRAN UPDATE SC SET grade = grade * 1.1 DELETE fr

3、om SC Where sno=04001 IF ERROR!=0 OR ROWCOUNT=0 BEGIN ROLLBACK TRAN PRINT 出现错误,所有操作已被取消 RETURN END ELSE PRINT 操作成功 COMMIT TRAN,13:24:03,4,事务的特性(ACID特性) 原子性(Atomicity):事务是数据库的逻辑工作单位 一致性(Consistency):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态 隔离性(Isolation):一个事务的执行不能被其他事务干扰 持续性(Durability ):一个事务一旦提交,它对数据库中数据的改变

4、就应该是永久性的 保证事务ACID特性是事务处理的任务 破坏事务ACID特性的因素 多个事务并行运行时,不同事务的操作交叉执行 事务在运行过程中被强行停止,不能用于事务操作的T-SQL语句 CREATE|ALTER|DROP DATABASE BACKUP|RESTORE LOG等 自动启动一个事务的T-SQL语句 INSERT、DELETE、SELECT、UPDATE ALTER TABLE CREATE、DROP GRANT、REVOKE,9.1.2 恢复的实现技术,恢复操作的基本原理:冗余 利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据 恢复机制涉及的关键问题

5、 1. 如何建立冗余数据 数据转储(backup) 登录日志文件(logging) 2. 如何利用这些冗余数据实施数据库恢复 转储策略 应定期进行数据转储,制作后备副本 转储不能频繁进行(耗费时间和资源) DBA应该根据数据库使用情况确定适当的转储周期(日、月、周等)和转储方法,13:24:03,6,13:24:03,7,转储方法,静态转储:在系统中无运行事务时进行转储,转储期间不允许对数据库的任何存取、修改活动(一致性) 动态转储:与用户事务并发进行,转储期间允许对数据库进行存取或修改(需要建立日志文件) 海量转储: 每次转储全部数据库 增量转储: 只转储上次转储后更新过的数据,13:24:

6、03,8,日志文件(log)是用来记录事务对数据库的更新操作的文件 日志文件的格式 以记录为单位的日志文件 以数据块为单位的日志文件 对于以记录为单位的日志文件,需要登记的内容包括: 各个事务的开始标记 各个事务的结束标记 各个事务的所有更新操作 记录为单位的日志文件中的一个日志记录 ,内容包括: 事务标识 操作类型(插入、删除或修改) 操作对象(记录内部标识) 更新前数据的旧值(插入操作时此项为空值) 更新后数据的新值(删除操作时此项为空值,13:24:03,9,登记日志文件的原则 登记的次序严格按并行事务执行的时间次序 必须先写日志文件,后写数据库 写日志文件操作:把表示这个修改的日志记录

7、写到日志文件 写数据库操作:把对数据的修改写到数据库中 为什么要先写日志文件 写数据库和写日志文件是两个不同的操作 在这两个操作之间可能发生故障 如果先写了数据库修改,而在日志文件中没有登记下这个修改,则以后就无法恢复这个修改了 如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性,13:24:03,10,9.1.3 恢复策略,事务故障的恢复 系统自动完成,不需要用户干预 反向扫描文件日志,找到对该事务的更新操作后,执行逆操作。例如:如果记录中是插入操作,执行删除 系统故障的恢复 系统重新启动时自动完成,不需要用户干预。故障原因是一些

8、未完成事务对数据库的更新已写入数据库;或者已提交事务对数据库的更新还留在缓冲区没写入数据库 恢复方法:正向扫描日志文件,找出故障发生前已提交的事务,记入重做(Redo)队列;找出故障发生时未完成的事务,记入撤销(Undo)队列。然后对重做队列中的各个事务作Redo 处理,撤销队列中的各事务做Undo处理 介质故障的恢复 重装数据库,然后重做已完成的事务,13:24:03,11,9.2 并发控制,多用户并发存取同一数据将导致以下的数据不一致问题: 丢失修改 读脏数据 不能重复读 例如:飞机订票系统中的甲、乙两个售票点随机读票余额、售票,13:24:03,12,丢失修改:T1的修改被丢失 读脏数据

9、:T2读到的数据与数据库中的数据不一致 不能重复读,13:24:03,13,并发控制的主要技术封锁,一个事务向系统提出请求,对被操作的数据加锁,其他事务必须等到此事务解锁之后才能访问该数据 基本的封锁类型: 共享(S)锁:又称为读锁,用于读操作 若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁 排它(X)锁:又称写锁,用于写操作。 若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁,13:24:03,14,封锁协议,在运用X锁和S锁对数据对象加锁时,需要约定一些规则:封锁协议 何时申请X锁

10、或S锁 持锁时间、何时释放 不同的封锁协议,在不同的程度上为并发操 作的正确调度提供一定的保证 常用的封锁协议:三级封锁协议,13:24:03,15,1级封锁协议,事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放 1级封锁协议可防止丢失修改 在1级封锁协议中,如果是读数据,不需要加锁的,所以它不能保证可重复读和不读“脏”数据,没有丢失修改,13:24:03,16,读“脏”数据,不可重复读,13:24:03,17,2级封锁协议,1级封锁协议+事务T在读取数据R前必须先加S锁,读完后即可释放S锁 2级封锁协议可以防止丢失修改和读“脏”数据。 在2级封锁协议中,由于读完数据后即可释放S锁,

11、所以它不能保证可重复读,13:24:03,18,2级封锁协议:不可重复读,13:24:03,19,3级封锁协议,1级封锁协议 + 事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放 3级封锁协议可防止丢失修改、读脏数据和不可重复读,13:24:03,20,可重复读,不读“脏”数据,13:24:03,21,不同级别的封锁协议小结,13:24:03,22,封锁方法:两段锁协议 1. 在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁 2. 在释放一个封锁之后,事务不再获得任何其他封锁 “两段”锁的含义:事务分为两个阶段 第一阶段是获得封锁,也称为扩展阶段; 第二阶段是释放封锁,也

12、称为收缩阶段。 【例】事务1遵守两段锁协议,而事务2不遵守。 事务1的封锁序列: Slock A . Slock B . Xlock C . Unlock B . Unlock A . Unlock C; 事务2的封锁序列: Slock A . Unlock A . Slock B . Xlock C . Unlock C . Unlock B,两段锁协议与三级封锁协议 两类不同目的的协议 两段锁协议的目的是保证并发调度的正确性 三级封锁协议的目的是在不同程度上保证数据一致性 遵守第三级封锁协议必然遵守两段协议 封锁粒度: 封锁对象的大小 封锁的对象: 逻辑单元,物理单元 【例】在关系数据库中,封锁对象: 逻辑单元: 属性值、属性值集合、元组、关系、索引项、整个索引、整个数据库等 物理单元:页(数据页或索引页)、物理记录等,13:24:03,23,13:24:03,24,引进意向锁 目的是为了提高对某个数据对象加锁时系统的检查效率 含义:对任一结点加基本锁,必须先对它的上层结点加意向锁;若对一个结点加意向锁,则说明该结点的下层结点正在被加锁 常用意向锁 IS锁(意向共享锁):如果对一个数据对象加IS锁,表示它的后裔结点拟(意向)加S锁 【例】

温馨提示

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

评论

0/150

提交评论