数据库复习之——故障恢复

数据库的故障恢复涉及到了如何保证数据库事务的原子性和持久性问题!

一、数据库的故障

(一)、故障分类

  • 事务故障

    某程序(事务)自身运行错误引起的故障;

  • 系统故障

    由掉电、非正常关机等引起的故障;

  • 介质故障

    由介质损坏引起的错误;

(二)、故障恢复的宏观思路

​ 故障恢复即:将DB由当前不正确的状态恢复到已知为正确的某一状态;

​ 故障恢复即保证数据库事务的:

​ (1)原子性:即事务的所有操作,要么全执行,要么全部不执行;

​ (2)持久性;已经提交的事务要对数据库产生持久性的影响;而未提交的事务对数据库不应由影响;

  • 事务故障恢复

    事务的故障恢复可以通过:重做事务(Redo)和撤销事务(Undo)两种方式来恢复;

    Redo可保证已提交事务的持久性;而Undo可以消除未提交事务的影响;

  • 系统故障恢复

    1、系统故障可通过运行日志来进行恢复:

    (1)运行日志是DBMS维护的一个文件,以流水的方式记录事务对数据库的每一次操作以及操作顺序;

    (2)运行日志是直接写入到存储介质中的,保持正确性;

    (3)事务对数据库进行操作的时候:首先写运行日志;成功后再与数据库缓冲区交换数据信息;

    2、当出现系统故障时,按照运行日志记录的事务操作顺序来重做故障发生时已经结束的事务,同时也要撤销那些在故障发生时还未结束的事务;

    3、发生故障时,应该从哪个时间点来恢复?检查点;

    (1)检查点:在该时刻,DBMS强制使内存缓冲区中更新的全部内容写回到磁盘数据库中;

    (2)DBMS在运行日志中要定期更新检查点的位置;

    4、系统故障恢复?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhang L.R.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值