数据库三种故障及其恢复手段

三种故障:
1.事务故障:事务内部的故障,主要有可预期和不可预期的。
解决办法:可预期的用户会在写应用程序的时候用 if 语句避免,不可预期的系统自动根据日志文件对事务进行撤销和重做。

2.系统故障:由于各种原因导致系统停止运行,使得缓冲区里的数据没写进磁盘造成的故障,对数据库无损害。
基本解决方法:
(1)正向扫描日志文件找到已提交的事务和 未提交的事务
(2)已提交的加入redo队列,未提交的加入undo队列。
(3)反向扫描日志文件对undo队列里所有事务执行逆操作,正向扫描日志文件对redo队列里的所有事务重做。

检查点法:
(注:建立检查点时会强制把此时缓冲区的数据写入磁盘)

(1)在日志文件里找发生故障前的最后的一个检查点。
(2)把这个检查点记录里的所有正在运行的事务加入undo队列。
(3)从检查点开始正向扫描日志文件遇到一个事务的开始就把这个事务加入undo队列,遇到一个事务的结束就把这个事务从undo队列加到redo队列。
(4)对undo队列里事务执行撤销,对redo队列里的事务实行重做。

3.介质故障:硬件故障造成的数据库损坏,数据丢失。
解决办法:重装副本,再根据日志文件把已完成的事务redo。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值