数据库——恢复技术

本文详细介绍了数据库恢复技术,包括事务故障、系统故障和介质故障的分类,以及基于日志、检查点和转储的恢复策略。恢复的基本思想是通过建立冗余数据来确保在故障后能恢复到一致状态。日志记录了所有更新活动,用于redo和undo操作。延迟更新和即时更新技术分别处理事务和系统故障。检查点技术提高了恢复效率。介质故障恢复依赖于数据库的后备副本和日志。
摘要由CSDN通过智能技术生成

目录

一、数据库恢复概述

1.1故障分类

1.1.1事务故障

1.1.2系统故障

1.1.3介质故障

1.2恢复的基本思想

二、基于日志的恢复技术

2.1日志

2.1.1日志记录的格式

2.1.2登记日志的原则

2.1.3 redo和 undo

2.2延迟更新技术

2.2.1基于延迟更新技术的事务故障恢复

2.2.2基于延迟更新技术的系统故障恢复

2.3即时更新技术

2.3.1基于即时更新技术的事务故障恢复

2.3.2基于即时更新技术的系统故障恢复

三、基于检查点的恢复技术

3.1检查点

3.2基于检查点的系统故障恢复

四、介质故障恢复技术

4.1转储

4.1.1静态转储与动态转储

4.1.2海量存储与增量存储

4.2介质故障恢复


一、数据库恢复概述

DBMS的子恢复系统必须确保故障发生后能够把数据库恢复到某种一致状态,最大限度地降低损失,并将崩溃后的数据库不能使用的时间减小到最小

1.1故障分类

1.1.1事务故障

某个事务在运行过程中由于种种原因未能运行到正常终止而夭折

两种错误导致事务执行失败

  • 程序的逻辑错误
  • 系统错误

1.1.2系统故障

由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的事务都以非正常方式终止

产生原因

  • 操作系统或 DBMS代码错误
  • 操作员操作失误
  • 特定类型的硬件错误(CPU故障)
  • 突然停电等

1.1.3介质故障

存储数据库的存储设备故障

产生原因

  • 磁盘损坏
  • 磁头碰撞
  • 操作系统的某种潜在错误
  • 瞬时强磁场干扰等

 

1.2恢复的基本思想

在系统正常运行时建立冗余数据,保证有足够的信息可用于故障恢复。故障发生后采取措施,将数据库内容恢复到某个一致性状态,保证事务原子性和持久性

数据库系统主要通过登记日志数据转储建立冗余数据

利用冗余数据进行故障恢复考虑因素

  • 存储器性质
  • 事务的更新何时写入数据库
  • 缓冲

 

 

二、基于日志的恢复技术

2.1日志

日志是日志记录的序列,记录了数据库中所有的更新活动

2.1.1日志记录的格式

一条更新日志记录了一个事务对数据库的一次 write操作,包括

  • 事务标识符
  • 操作类型
  • 操作对象
  • 旧值
  • 新值
<Ti,start>     --事务Ti开始
<Ti,Xj,V1,V2>  --事务Ti对 Xj的一次更新,其中 V1是旧值,V2是新值。对于插入,V1为空;对于删除,V2为空
<Ti,commit>    --事务Ti正常提交
<Ti,abort>     --事务Ti异常终止

2.1.2登记日志的原则

日志记录必须严格按并发事务执行的时间次序登记

必须先记日志,后写数据库

2.1.3 redo和 undo

redo(Ti) 根据日志记录,按登记日志的次序,将事务 Ti每次更新的数据对象的新值用 write操作重新写到数据库(不是重新执行事务 Ti)

undo(Ti) 根据日志记录,按登记日志的相反次序,将事务 Ti每次更新的数据对象的旧值用 write操作写回数据库

redo和 undo都是幂等的,执行多次等价于执行一次

 

2.2延迟更新技术

延迟更新将事务对数据库的更新推迟到事务提交之后

遵循规则

  1. 每个事务在到达提交点之前不能更新数据库
  2. 在一个事务的所有更新操作的日志记录写入稳定存储器之前,该事务不能到达提交点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值