数据库恢复相关知识笔记_数据库

1、数据库恢复的原理

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

2、故障恢复的两个操作

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

2.1 撤销操作

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

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

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

2.2 重做事务 

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

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

3、故障恢复策略介绍 

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

3.1 事务故障恢复

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

事务恢复步骤如下:

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

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

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

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

3.2 系统故障的恢复 

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

3.3 介质故障的恢复 

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

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

IT技术分享社区

个人博客网站:https://programmerblog.xyz

数据库恢复相关知识笔记_数据库基础_02

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识