一个NotionNext搭建的博客
数据库系统概论
大数据原理与应用
javaWeb应用开发基础教程
python
毕业设计
大数据技术综合应用
实训-航空数据系统
java面向对象程序设计
数据结构
算法分析与设计
SPARK
Python爬虫大数据采集与挖掘
云计算
概率论与数理统计
数字逻辑
计算机网络
计算机组成原理
linux
操作系统
人工智能导论
数据仓库与数据挖掘
数据可视化
大数据安全与隐私保护
c语言
C++
第十章]数据库恢复技术
事务的基本概述
用户定义的一个数据库操作序列,不可分割
COMMIT表示提交
ROLLBACK表示回滚
特性
- 原子性
- 一致性
- 隔离性
- 持续性(永久性)
数据库恢复概述
故障的种类
- 事务内部的故障
- 处于不确定状态,需要强行回滚
- UNDO事务撤销
- 系统故障
- 撤销未完成事件,重做已完成事件
- REDO重做
- 介质故障
- 计算机病毒
恢复实现的技术
数据转储
重装后数据只能恢复到转储时的状态
静态转储
系统无运行事务时转储
动态转储
转储时允许用对数据库存取和修改
- 会把期间修改活动记录到日志文件,之后再恢复
海量转储
转储全部
增量转储
转储增加的
日志文件
用来记录事务对数据库的更新操作
格式和内容
- 各个事务的开始
- 各个事务的结束
- 各个事物的所有更新
日志记录
每个事务的开始结束和所有更新都作为日志文件的一条日志记录
- 事务的标识
- 操作的类型
- 操作对象
- 更新前的数据
- 更新后的数据
登记日志文件
- 次序按照并发事务执行的时间次序
- 先写日志文件再写数据库
恢复策略
事务故障的恢复
- 反向扫描日志文件,查找该事务的更新操作
- 对该事务的更新操作执行逆操作(插入←→删除,反修改)
- 继续扫描,其他更新操作同样处理直到读到开始标记
系统故障的恢复
- 正向扫描日志文件找出在发生前已提交事务,标识进入REDO-LIST;未完成的事务,标识进入UNDO-LIST
- 对UNDO-LIST的各个事务进行UNDO处理,反向扫描日志文件,对更新操作执行逆操作
- 对REDO-LIST的各个事务进行REDO处理,正向扫描日志文件,重新登记日志文件
介质故障的恢复
- 重装数据库,重做已完成的事务
- 重装数据库副本,若动态转储,还需同时装入重装开始的日志文件副本,利用系统故障的REDO、UNDO,将数据库恢复到一致性
- 装入转储结束的日志文件,REDO、UNDO将数据库恢复到一致
Prev
第八章]数据库编程
Next
第十一章]并发控制
Loading...