数据库第十章数据库恢复技术

10.1 事务的基本概念

事务的概念
  • 事务:是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位;是恢复和并发控制的基本单位;
    在这里插入图片描述
事务的特性(ACID)
  • 原子性(Atomicity):事务中包括的诸操作要么都做,要么都不做
  • 一致性(Consistency)事务执行的结果必须是使数据库从一个
    ** 一致性状态变到另一个一致性状态**(数据库中只包含成功事务提交的结果)注:不一致状态:数据库中包含失败事务的结果
  • 隔离性(Isolation)一个事务内部的操作及使用的数据对其他并发事务是隔离的;并发执行的各个事务之间不能互相干扰
  • 持续性(Durability )一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

10.2 数据库恢复概述

10.3 故障的种类

故障的种类
  • 事务故障
  • 系统故障
  • 介质故障
事务故障
  • 事务故障:某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了
  • 如何恢复?撤销事务
系统故障
  • 整个系统的正常运行突然被破坏,所有正在运行的事务都非正常终止,内存中数据库缓冲区的信息全部丢失,外部存储设备上的数据未受影响;
  • 系统故障的恢复
  • 在这里插入图片描述
介质故障
  • **定义:**硬件故障使存储在外存中的数据部分丢失或全部丢失
  • 常见原因:磁盘损坏,磁头碰撞,操作系统的某种潜在错误,瞬时强磁场干扰
  • 恢复:①装入数据库发生介质故障前某个时刻的数据副本②重做自此时始的所有成功事务,将这些事务已提交的结果重新记入数据库

10.4 恢复的实现技术

恢复操作的基本原理:冗余 恢复的实现技术:复杂
恢复机制涉及的关键问题
  • 如何建立冗余数据?①数据转储②登录日志文件
  • 如何利用这些冗余数据进行数据库的恢复?
数据转储
  • 定义:DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程。
    在这里插入图片描述
转储方法
  • ①静态转储 系统无运行状态时进行转储;转储开始时数据库处于一致性;状态转储期间不允许对数据库的任何存取、修改活动
  • ②动态转储:转储操作与用户事务并发进行;转储期间允许对数据库进行存取或修改
  • ③海量转储 :每次转储全部数据库
  • ④增量转储:只转储上次转储后更新过的数据
转储策略
  • 应定期进行数据转储,制作后备副本。
  • 但转储又是十分耗费时间和资源的,不能频繁进行。
  • DBA应该根据数据库使用情况确定适当的转储周期和转储方法。
登录日志文件
  • 定义:用来记录事务对数据库的更新操作的文件
  • 分为以记录为单位的日志文件(插入了什么类型什么值)和以数据块为单位的日志文件;
  • 用途:①进行事务故障恢复②进行系统故障恢复③协助后备副本进行介质故障恢复

10.5 恢复策略

事务故障的恢复
  • 定义:事务在运行至正常终止前中止
  • 方法:恢复子系统应利用日志文件撤消(UNDO)此事务已对数据库进行的修改
  • 注意:由系统自动完成,不需要用户干预;
  • 例子:插入操作, “更新前的值”为空,则相当于做删除操作
系统故障的恢复
  • 原因有许多:① 一些未完成事务对数据库的更新已写入数据库② 一些已提交事务对数据库的更新还留在缓冲区没来得及写入数据库
  • 恢复方法:① Undo 故障发生时未完成的事务② Redo 已完成的事务
  • 注意:由系统在重新启动时自动完成,不需要用户干预
  • 步骤:① 正向扫描日志文件(即从头扫描日志文件)找出Redo队列: 在故障发生前已经提交的事务 T1, T3, T8……和Undo队列:故障发生时尚未完成的事务 T2, T4, T5, T6, T7, T9 ……;② 对Undo队列事务进行UNDO处理;③ 对Redo队列事务进行REDO处理
介质故障的恢复
  • ①重装数据库,使数据库恢复到一致性状态②重做已完成的事务

在这里插入图片描述
在这里插入图片描述

10.6 具有检查点的恢复技术

10.7 数据库镜像

10.8 Oracle的恢复技术

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值