导图社区 CH10 数据库恢复技术
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
CH10 数据库恢复技术
事务的基本概念
事务
恢复和并发控制的基本单位
用户定义的一个数据库操作序列
事务是恢复和并发控制的基本单位
BEGIN TRANSACTION ··· ··· COMMIT(提交:读+更新)
BEGIN TRASACTION ··· ··· ROLLBACK(异常终止,回滚到开始状态,即撤销)
事务的ACID特性
atomicity 原子性 consistency 一致性 isolation 隔离性 durability 持续性
数据库恢复概述
数据库管理系统把数据库从错误状态恢复到某一已知的正确状态
恢复操作的基本原理:冗余
故障的种类
事务内部的故障(一般指非预期的)
恢复:UNDO(事务撤销) 强行rollback该事务,撤销该事务已做出的修改
系统故障(软故障)
未完成事务的结果部分已写入数据库
所有非正常终止事务回滚,强行撤销所有未完成事务
已完成事务的部分结果未写入数据库
重做(REDO)所有已提交的事务
介质故障
可能性小,破坏性大
计算机病毒
恢复的实现技术
数据转储(backup)
静态转储与动态转储
海量转储与增量转储
登记日志文件
以记录为单位的日志文件
以数据块为单位的日志文件
先写日志文件,后写数据库
恢复策略
事务故障的恢复
① 反向扫描文件日志,查找该事务的更新操作 ② 对该事务的更新操作执行逆操作,即恢复更新前的值 ③ 继续反向扫描,查找该事务的其他更新操作,做同样处理 ④ 直至读到此事务的开始标记,事务故障恢复完成
系统故障的恢复
① 正向扫描日志文件 - 重做队列(有begin transaction有commit) - 撤销队列(有begin transaction有commit) ② 对UNDO队列事务进行撤销处理 - 反向扫描日志文件,对每个撤销事务的更新操作执行逆操作 ③ 对REDO队列事务进行重做处理 - 正向扫描日志文件,对每个重做事务重新执行等级操作
介质故障的恢复
① 装入最新的后备数据库副本,使数据库恢复到最近一次转储时的一致性状态 ② 装入有关的日志文件副本,重做已经完成的事务
具有检查点的恢复技术
① 从重新开始文件中找到最后一个检查点记录在日志文件中的地址 由该地址在日志文件中找到最后一个检查点记录 ② 由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST - 建立两个事务队列:UNDO-LIST和REDO-LIST - 把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO-LIST暂未空 ③ 从检查点开始正向扫描日志文件,直至日志文件结束: - 如有新开始的事务Ti,把Ti暂时放入UNDO-LIST - 如有COMMIT的事务Tj,把Tj从UNDO-LIST移到REDO-LIST ④ 对UNDO-LIST中每个事务执行UNDO撤销操作 对REDO-LIST中每个事务执行REDO操作
数据库镜像
只选择对关键数据和日志文件进行镜像
出现介质故障时: - 可由镜像磁盘继续提供使用 - 同时数据库管理系统自动利用镜像磁盘数据进行数据库的恢复 - 不需要关闭系统和重装数据库副本
没有出现故障时: - 可用于并发操作 - 一个用户对数据加排他锁修改数据,其他用户可以读镜像数据库上的内容(不必等待释放锁)