导图社区 第十章 数据库恢复技术
六个方面:事务的基本概念、数据库恢复概述、故障种类、恢复的实现技术、恢复策略、具有检查点的恢复技术
编辑于2022-05-30 21:50:40MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
这是一篇关于数据库原理的思维导图,本篇思维导图包含关系数据结构及形式化定义、关系操作、关系的完整性、关系代数。
数据库管理并发控制,分六个板块,概述、封锁、封锁协议、死锁和活锁、并发调度的可串行性、两段锁协议
社区模板帮助中心,点此进入>>
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
这是一篇关于数据库原理的思维导图,本篇思维导图包含关系数据结构及形式化定义、关系操作、关系的完整性、关系代数。
数据库管理并发控制,分六个板块,概述、封锁、封锁协议、死锁和活锁、并发调度的可串行性、两段锁协议
第十章 数据库恢复技术
事务的基本概念
事务
事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务是恢复和并发控制的基本单位
事务的ACID特性
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持续性(Durability )
数据库恢复概述
故障是不可避免的
计算机硬件故障
软件的错误
操作员的失误
恶意的破坏
故障的影响
运行事务非正常中断,影响数据库中数据的正确性
破坏数据库,全部或部分丢失数据
数据库的恢复
恢复子系统是数据库管理系统的一个重要组成部分
恢复技术是衡量系统优劣的重要指标
故障的种类
1.事务内部的故障
通过事务程序本身发现
有的是非预期的,不能由事务程序处理的
事务故障的恢复:事务撤消(UNDO)
意味着
事务没有达到预期的终点(COMMIT或者显式的ROLLBACK)
数据库可能处于不正确状态。
2.系统故障
称为软故障,是指造成系统停止运转的任何事件,使得系统要重新启动。
整个系统的正常运行突然被破坏
所有正在运行的事务都非正常终止
不破坏数据库
内存中数据库缓冲区的信息全部丢失
系统故障的常见原因
特定类型的硬件错误(如CPU故障)
操作系统故障
数据库管理系统代码错误
系统断电
系统故障的恢复
恢复策略:系统重新启动时,恢复程序让所有非正常终止的事务回滚,强行撤消(UNDO)所有未完成事务
恢复策略:系统重新启动时,恢复程序需要重做(REDO)所有已提交的事务
3.介质故障
称为硬故障,指外存故障
磁盘损坏
磁头碰撞
瞬时强磁场干扰
可能性小得多,但破坏性大得多
4.计算机病毒
一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程序
可以繁殖和传播,造成对计算机系统包括数据库的危害
种类
小的病毒只有20条指令,不到50B
大的病毒像一个操作系统,由上万条指令组成
危害
有的病毒传播很快,一旦侵入系统就马上摧毁系统
有的病毒有较长的潜伏期,计算机在感染后数天或数月才开始发病
有的病毒感染系统所有的程序和数据
有的只对某些特定的程序和数据感兴趣
各类故障,对数据库的影响有两种可能性
一是数据库本身被破坏
二是数据库没有被破坏,但数据可能不正确,这是由于事务的运行被非正常终止造成的。
恢复的实现技术
数据转储
转储是指数据库管理员定期地将整个数据库复制到磁带、磁盘或其他存储介质上保存起来的过程
备用的数据文本称为后备副本(backup)或后援副本
转储方法
(1)静态转储与动态转储
静态转储
优点:实现简单
缺点:降低了数据库的可用性
动态转储
优点
不用等待正在运行的用户事务结束
不会影响新事务的运行
缺点
不能保证副本中的数据正确有效
(2)海量转储与增量转储
海量转储: 每次转储全部数据库
增量转储: 只转储上次转储后更新过的数据
比较
从恢复角度看,使用海量转储得到的后备副本进行恢复往往更方便
如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效
登记日志文件
1.日志文件的格式和内容
内容
各个事务的开始标记(BEGIN TRANSACTION)
各个事务的结束标记(COMMIT或ROLLBACK)
各个事务的所有更新操作
格式
以记录为单位的日志文件
以数据块为单位的日志文件
2.日志文件的作用
进行事务故障恢复
进行系统故障恢复
协助后备副本进行介质故障恢复
3.登记日志文件
登记的次序严格按并发事务执行的时间次序
必须先写日志文件,后写数据库
恢复策略
事务故障的恢复
(1) 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。
(2) 对该事务的更新操作执行逆操作。即将日志记录中“更新前的值” 写入数据库。
(3) 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。
(4) 如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。
系统故障的恢复
1. Undo 故障发生时未完成的事务
2. Redo 已完成的事务
介质故障的恢复
1.重装数据库
2.重做已完成的事务
具有检查点的恢复技术
问题的提出
搜索整个日志将耗费大量的时间
重做处理:重新执行,浪费了大量时间
具有检查点(checkpoint)的恢复技术
在日志文件中增加检查点记录(checkpoint)
增加重新开始文件
恢复子系统在登录日志文件期间动态地维护日志
检查点技术