数据库恢复相关知识笔记

举报
IT技术分享社区 发表于 2023/01/28 12:59:39 2023/01/28
【摘要】 1、数据库恢复的原理数据库恢复的原理主要是在数据库发生故障之后,建立冗余数据,在故障发生之后利用冗余数据来完成数据库恢复。数据转储和建立日志文件是建立冗余数据常用的技术手段。一般情况下两种技术手段会同时使用。2、故障恢复的两个操作故障恢复有撤销事务(UNDO)、重做(REDO)两个操作。2.1 撤销操作撤销事务就是将未完成的事务撤销,使数据库恢复到事务执行前的正确状态。撤销事务的过程:反向扫...


2a2fa9b0c912ae91032e7963b411f49b.jpeg

1、数据库恢复的原理

数据库恢复的原理主要是在数据库发生故障之后,建立冗余数据,在故障发生之后利用冗余数据来完成数据库恢复。数据转储和建立日志文件是建立冗余数据常用的技术手段。一般情况下两种技术手段会同时使用。

2、故障恢复的两个操作

故障恢复有撤销事务(UNDO)、重做(REDO)两个操作。

2.1 撤销操作

撤销事务就是将未完成的事务撤销,使数据库恢复到事务执行前的正确状态。

撤销事务的过程:反向扫描未完成的事务日志,查找事务的更新操作;对该事务的更新操作执行反向操作,然后利用日志文件记录中更新前的值写入数据库,插入的记录从数据库中删掉,删除的记录重新插入数据库中;

继续反向扫描日志文件,重复以上操作,直到事务开始标志。

2.2 重做事务 

重做事务是将已经提交的事务重新执行。

重做事务的过程:从事务的开始标识开始,正向扫描日志文件,重新执行日志文件登记的对事务对数据库的所有操作,直到事务结束标识。

3、故障恢复策略介绍 

针对不同的数据故障应该采取不同的恢复策略。

3.1 事务故障恢复

事务故障是在事务在运行至正常终止点(提交、回滚)之前终止。日志文件只有该事务的开始标识而没有结束标识。一般针对这类故障的恢复通过撤销产生的故障事务,使数据库恢复到该事务执行前的正确状态来完成。

事务恢复步骤如下:

  • 反向扫描文件日志,查找该事务的更新操作

  • 对事务的更新操作执行反向操作

  • 继续反向扫描日志文件,做同样处理直到事务的开始标志

说明:事务的故障恢复由系统自动完成,对用户是透明的。

3.2 系统故障的恢复 

系统故障会造成数据库的数据不一致。主要原因:未完成的事务对书库的更新操作可能已经写入了数据库;已提交的事务对数据库的更新可能还在缓冲区没来得及写入数据库。系统故障数据恢复要撤销故障发生时未完成的事务,重做已提交的事务。

3.3 介质故障的恢复 

介质故障由数据库遭到破坏,需要重装数据库,需要装载故障前最近依次的备份和故障前的日志文件副本,再按照系统故障的恢复过程执行撤销和重做操作来进行恢复。

说明:介质故障要有数据库管理员来参与,装入数据库的副本和日志文件的副本,再由数据库系统执行撤销和重做操作。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。