8.1数据库故障及恢复策略 课件(共16张PPT)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

资源下载
  1. 二一教育资源

8.1数据库故障及恢复策略 课件(共16张PPT)-《数据库应用技术-SQL Server》同步教学(人民邮电版)

资源简介

(共16张PPT)
数据库备份与恢复
第8章
目录
01
数据库故障
及恢复策略
02
数据库恢复的原理及方法
03
数据库备
份操作
04
数据库恢
复操作
本章主要内容
本章主要介绍了数据库的备份和恢复。数据库恢复技术用来应对各种各样的故障,当数据库出现故障时,恢复机制能将数据库恢复到一致性状态,保证数据库中的数据是正确的。
数据库的恢复是以备份为基础的,SQL Server 2019的备份和恢复组件为存储在SQL Server中的关键数据提供了重要的保护手段。本章着重讨论备份和恢复的策略与过程。
数据库故障及恢复策略
第8章
01
数据库系统在运行中发生故障后,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态,这时可利用日志文件和数据库转储的后备副本将数据库恢复到故障前的某个一致性状态。数据库故障是指导致数据库值出现错误描述状态的情况,数据库运行过程中可能出现各种各样的故障,这些故障可分为3类:事务故障、系统故障和介质故障。根据不同的故障类型,应该采取不同的恢复策略。
8.1.1 事务故障及恢复
事务故障表示由非预期的、不正常的程序结束所造成的故障。造成程序非正常结束的原因包括输入数据错误、运算溢出、违反存储保护和并行事务发生死锁等。
8.1.1 事务故障及恢复
【例8.1】图书借阅事务:某图书借阅成功后,需要将该图书的库存数量A减去借阅数量M,同时在借阅记录上添加借阅数量M。
BEGIN TRANSACTION
读图书库存量A;
A=A-M;
IF(A<0) THEN{
显示库存数量不足,不能借阅;
ROLLBACK;
}
ELSE
{
读已借图书数量B;
B=B+M;
COMMIT;
}
8.1.1 事务故障及恢复
发生事务故障时,被迫中断的事务可能已对数据库进行了修改,为了消除该事务对数据库的影响,要利用日志文件中所记录的信息强行回滚该事务,将数据库恢复到修改前的初始状态。为此,要检查日志文件中由这些事务引起变化的记录,取消这些没有完成的事务所做的一切改变。这类恢复操作称为事务撤销(UNDO),具体做法如下。
(1)反向扫描日志文件,查找该事务的更新操作。
(2)对该事务的更新操作执行反操作,即对已经插入的新记录进行删除操作,对已删除的记录进行插入操作,对修改的数据恢复旧值,用旧值代替新值。这样由后向前逐个扫描该事务已做的所有更新操作并执行反操作,直到扫描到此事务的开始标记,则事务故障恢复完毕。
8.1.2 系统故障及恢复
系统故障称为软故障,是指造成系统停止运转的任何事件,使得系统要重新启动。
系统断电
数据库管理系统代码错误
特定类型的硬件错误(如CPU故障)
操作系统故障
8.1.2 系统故障及恢复
系统故障的影响:
B
所有正在运行的事务都非正常终止
C
内存中数据库缓冲区的信息全部丢失
D
不破坏数据库
A
整个系统的正常运行突然被破坏
8.1.2 系统故障及恢复
发生系统故障时可能会出现两种情况:
1.所有正在运行的事务非正常终止
2.数据库内存缓冲区的信息全部丢失
恢复策略:系统重新启动时,恢复程序让所有非正常终止的事务回滚,强行撤消(UNDO)所有未完成事务。
恢复策略:系统重新启动时,恢复程序需要重做(REDO)所有已提交的事务。
8.1.2 系统故障及恢复
具体做法如下:
(1) 正向扫描日志文件
重做(REDO) 队列
撤销 (UNDO)队列
既有BEGIN TRANSACTION记录
也有COMMIT记录
只有BEGIN TRANSACTION记录,无相应的COMMIT记录
8.1.2 系统故障及恢复
(3) 对重做(REDO)队列事务
进行重做(REDO)处理
(2) 对撤销(UNDO)队列事务
进行撤销(UNDO)处理
反向扫描日志文件,对每个撤销事务的更新操作执行逆操作
正向扫描日志文件,对每个重做事务重新执行登记的操作
8.1.2 系统故障及恢复
系统故障发生后,并不能确定哪些未完成的事务已更新过数据库,哪些事务的提交结果尚未写入数据库,这样,系统重新启动后,就要撤销所有的未完成事务,重做所有已提交的事务。但是,在故障发生前已经运行完毕的事务有些是正常结束的,有些是异常结束的,所以不需要把它们全部撤销或重做。
8.1.3 介质故障及恢复
介质故障是指系统在运行过程中,由于辅助存储器介质受到破坏,使存储在外存中的数据部分丢失或全部丢失。这类故障比事务故障和系统故障发生的可能性要小,但这是最严重的一种故障,破坏性很大,磁盘上的物理数据和日志文件可能被破坏。
解决此问题需要装入发生介质故障前最新的数据库后备副本,然后利用日志文件重做该副本所运行的所有事务。
8.1.3 介质故障及恢复
具体方法如下。
(1)装入最新的数据库后备副本,使数据库恢复到最近一次转储的可用状态。
(2)装入最新的日志文件副本,根据日志文件中的内容重做已完成的事务。首先正向扫描日志文件,找出发生故障前已提交的事务,将其记入重做队列。再对重做队列中的各个事务进行重做处理,方法是正向扫描日志文件,对每个重做事务重新执行登记的操作,即将日志文件中数据更新后的值写入数据库。

展开更多......

收起↑

资源预览