你的浏览器不支持本网站所要求的功能, 现在看到的是本网站简化版本.

为了获得最佳体验, 请使用最新的Chrome, Safari, Firefox 或 Edge 浏览器.

6. 数据库保护

6.3 数据库恢复技术

Powered by impress.js
Ver. 2408

### 事务 - 用户定义的一个数据库操作序列 - 是不可分割的工作单位 - 以 BEGIN TRANSACTION 开始 - 以 COMMIT 或 ROLLBACK 结束
### 事务的 ACID 特性 - 原子性: 是数据库工作的最小单位 - 一致性: 从一个一致性状态变到另一个 - 隔离性: 执行不能被其他事务干扰 - 持久性: 对数据库的改变是永久的
### 数据库恢复 - 将数据库从错误状态恢复到正确状态的功能 - 数据库恢复的基本原理是冗余
### 故障的种类 - 事务内部故障 - 系统故障 - 介质故障 - 计算机病毒
### 事务内部故障 BEGIN TRANSACTION BALANCE = BALANCE - AMOUNT; IF (BALANCE < 0 ) THEN {PRINT "INSUFFICIENT FUNDS"; ROLLBACK;} ELSE {BALANCE1 = BALANCE1 + AMOUNT; COMMIT;} - 当事务没有到达 COMMIT 或 ROLLBACK 语句时 - 意味着出现事务故障
### 系统故障 - 造成系统停止运转的事件 - 如硬件错误, 操作系统故障, DBMS代码错误等 - 影响所有正在运行的事务, 但不破坏数据库 - 需要在系统重新启动后撤销未完成的事务并重做已提交的事务
### 介质故障 - 指外存故障 - 磁盘损坏, 磁头碰撞等 - 会破坏数据库 - 影响正在存取这部分数据的所有事务 - 需要将数据库从备份或日志中重建
### 计算机病毒 - 一种人为的故障或破坏 - 可以繁殖和传播 - 对计算机系统和数据库造成危害 - 使用病毒防护软件诊断和消除
### 总结 - 有些故障会破坏数据库本身 - 有些故障会导致数据不正确 - 数据库恢复需要在不影响其他事务运行的情况下, 将数据库恢复到正确状态
### 恢复的实现技术 - 如何建立冗余数据 - 如何利用这些冗余数据实施数据库恢复
### 数据转储 - DBA 定期将整个数据库复制到其他存储介质上保存 - 备用的数据称为后备副本 (backup) 或后援副本
### 静态转储 - 在系统中无运行事务时进行的转储操作 - 简单, 但会降低数据库可用性
### 动态转储 - 转储期间允许对数据库进行存取或修改 - 必须把转储期间各事务对数据库的修改登记下来 - 建立日志文件 (logfile)
### 海量转储 - 每次转储全部数据库 - 恢复会更方便
### 增量转储 - 每次只转储上一次转储后更新过的数据 - 更节省空间 - 通常更实用
### 日志文件 - 用来记录事务对数据库的更新操作的文件 - 以记录为单位 - 以数据块为单位
### 以记录为单位 - 各个事务的开始 (BEGIN TRANSACTION) 标记 - 各个事务的结束 (COMMIT 或 ROLLBACK) 标记 - 各个事务的所有更新操作 - 被称作日志记录 (log record)
### 日志记录的内容 - 事务标识 (标明是哪个事务) - 操作的类型 (插入, 删除或修改) - 操作对象 (记录内部标识) - 更新前数据的旧值 (对插入操作而言, 此项为空值) - 更新后数据的新值 (对删除操作而言, 此项为空值)
### 以数据块为单位 - 事务标识 - 被更新的数据块
### 日志文件的作用 - 事务故障恢复和系统故障恢复必须用日志文件 - 在动态转储方式中必须建立日志文件 - 在静态转储方式中也可以建立日志文件
### 登记日志文件的原则 - 登记的次序严格按并发事务执行的时间次序 - 先写日志文件, 后写数据库
![course 6.3 mindmap](img/c06/mindmap-6-3.png)
### 6.3 数据库恢复技术 - 什么是事务? - 请解释事务的 ACID 特性. - 数据库恢复的基本原理是什么? - 系统故障和介质故障有何不同? - 什么是数据转储? - 什么是日志文件? ---- [ 6.2 数据库完整性](dbds-6-2.html#/overview) [| 练习 |](dbds-exec.html) [ 6.4 数据库并发控制](dbds-6-4.html#/overview)

黑公网安备23010302001726号   黑ICP备2024033110号-1