数据库:数据库恢复技术

数据库系统的故障种类

事务故障

事务执行失败:逻辑错误、系统错误。
逻辑错误:系统内部条件导致事务无法正常执行,例如:非法输入、找不到数据、运算溢出等
系统错误:系统外部条件导致事务无法正常执行,例如:并发事务由于死锁而强制撤销事务
恢复:撤销事务UNDO

系统崩溃

造成系统停止运转的任何事件,例如:CPU异常,O/S异常,DBMS异常,拔掉电源等,此时数据库本身并没有遭到破坏,只是数据不正确
恢复:发生系统故障时,对于未提交的事务,强行撤消(UNDO)所有未完成事务,对于事务已经提交,但缓冲区中的信息尚未完全写回到磁盘上(commit or abort))。重做(REDO)所有已提交的事务
检查点恢复机制

检查点

由于扫描整个日志文件比较困难搜索过程耗时,故引入检查点,降低开销。
1.当前缓冲中的日志记录写入日志文件
2.在日志文件中加入一个检查点记录
3.将当前缓冲所有数据写入数据库
4.将检查点记录的地址写入重新开始文件

恢复流程:

  1. 在重新开始记录文件中找到最后一个检查点记录
  2. 找到正在执行的事务清单,将其放入UNDO列表
  3. 从检查点位置开始正向扫描日志文件,如果有新事物开始则放入UNDO队列,如果有事务提交,将其放入REDO队列,指导文件结束
  4. 对UNDO列表执行UNDO操作,对REDO列表执行REDO操作

介质/磁盘故障

外存故障,数据库遭到破坏,影响正在存取这部分数据的事务,如磁盘破坏,强磁场干扰等
恢复:装入数据库发生故障签的副本,重做此时此刻的所有成功事务,并将这些成功事务已经提交的结果写入数据库
恢复原理:数据冗余
数据转存

数据转存

转存状态:静态转存(系统没有运行事务时进行的操作,过程中禁止操作数据库,降低数据库的可用性)、动态转存(转储期间允许对数据库进行存取和修改)
转存方式:海量转存(每次转存全部数据库)、增量转存(每次转储数据库的增量部分)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值