【摘要】 事务 不仅是恢复的基本单位 也是并发控制的基本单位 ACID特征 原子性 一致性 隔离性 持续性 故障(事务故障指的是非预期的故障) 数据库本身被破坏 数据库没有被破坏,但数据可能不正确,这是由于事务的运行被非正常终止造成的。 事务故障恢复:事务撤销(UNDO) 恢复策略方法(系统重启后) 强行撤回(UNDO) 重做(REDO) 介质故障 计…
-
事务
-
不仅是恢复的基本单位
-
也是并发控制的基本单位
-
-
ACID特征
-
原子性
-
一致性
-
隔离性
-
持续性
-
-
故障(事务故障指的是非预期的故障)
-
数据库本身被破坏
-
数据库没有被破坏,但数据可能不正确,这是由于事务的运行被非正常终止造成的。
-
-
事务故障恢复:事务撤销(UNDO)
-
恢复策略方法(系统重启后)
-
强行撤回(UNDO)
-
重做(REDO)
-
-
介质故障
-
计算机病毒
-
恢复
-
冗余:利用存储在系统别处的冗余数据来重建数据库中已被破坏或不正确的那部分数据
-
恢复基本原理:利用存储在后备副本、日志文件和数据库镜像中的冗余数据来重建数据库
-
-
恢复的实现技术
-
数据转储(backup)
-
转储:数据库管理员定期地将整个数据库复制到磁带、磁盘或其他存储介质上保存起来的过程。备用的数据文本称为后备副本(backup)或后援副本。
-
静态转储
-
转储必须等待正运行的用户事务结束 新的事务必须等转储结束
-
-
动态转储(并发)
-
数据容易过时:例在转储期间的某时刻Tc,系统把数据A=100转储到磁带上,而在下一时刻Td,某一事务将A改为200。
-
-
-
-
登记日志文件(logging)
-
日志文件(log file)是用来记录事务对数据库的更新操作的文件
-
事务故障恢复和系统故障恢复必须用日志文件
-
登记的次序严格按并发事务执行的时间次序必须先写日志文件,后写数据库
-
为什么要先写日志文件写数据库和写日志文件是两个不同的操作
-
Answer:在这两个操作之间可能发生故障 如果先写了数据库修改,而在日志文件中没有登记下这个修改,则以后就无法恢复这个修改了 如果先写日志,但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性
-
-
-
在静态转储方式中,也可以建立日志文件。
-
当数据库毁坏后可重新装入后援副本把数据库恢复到转储结束时刻的正确状态
-
利用日志文件,把已完成的事务进行重做处理
-
对故障发生时尚未完成的事务进行撤销处理
-
不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态
-
-
-
恢复策略
-
事务故障:事务在运行至正常终止点前被终止
-
由恢复子系统利用日志文件撤消(UNDO)此事务已对数据库进行的修改
-
-
系统故障
-
Undo 故障发生时未完成的事务
-
Redo 已完成的事务
-
-
介质故障
-
重装数据库
-
重做已完成的事务
-
-
-
具有检查点的恢复技术
-
在日志文件中增加检查点记录(checkpoint)
-
增加重新开始文件
-
恢复子系统在登录日志文件期间动态地维护日志
-
-
-
T1:在检查点之前提交
-
T2:在检查点之前开始执行,在检查点之后故障点之前提交
-
T3:在检查点之前开始执行,在故障点时还未完成
-
T4:在检查点之后开始执行,在故障点之前提交
-
T5:在检查点之后开始执行,在故障点时还未完成
-
-
使用检查点方法可以改善恢复效率
-
当事务T在一个检查点之前提交,T对数据库所做的修改已写入数据库
-
写入时间是在这个检查点建立之前或在这个检查点建立之时
-
在进行恢复处理时,没有必要对事务T执行重做操作
-
-
-
数据库镜像
-
数据库管理系统自动把整个数据库或其中的关键数据复制到另一个磁盘上
-
数据库管理系统自动保证镜像数据与主数据的一致性
-
-
出现介质故障时
-
可由镜像磁盘继续提供使用
-
同时数据库管理系统自动利用镜像磁盘数据进行数据库的恢复
-
不需要关闭系统和重装数据库副本
-
文章来源: blog.csdn.net,作者:进击的sheep,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/hahaha224/article/details/115989575