七章数据库恢复技术讲课资料.pptVIP

  • 0
  • 0
  • 约6.77千字
  • 约 43页
  • 2019-11-29 发布于天津
  • 举报
第七章 数据库恢复技术 本章主要教学内容: ?事务的概念及性质 ?故障的种类 ?恢复的实现技术及策略 7.1 事务的基本概念 一、事务 1. 定义: 事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位 2. 事务和程序的区别: 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序 一个应用程序通常包含多个事务 事务是恢复和并发控制的基本单位。 二、定义事务的方法 1. 显示定义方法: BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 …… …… COMMIT ROLLBACK 说明: COMMIT 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新永久生效 ROLLBACK 事务异常终止 事务运行的过程中发生了故障,不能继续执行 撤消事务中对数据库的所有更新操作 事务滚回到开始时的状态 2. 隐式定义方式 当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务。 三、事务的特性 事务的ACID特性: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持续性(Durability ) 1. 原子性: 事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。 3. 隔离性 一个事务的执行不能被其他事务干扰。 一个事务内部的操作及使用的数据对其他并发事务是隔离的 并发执行的各个事务之间不能互相干扰 举例: ? ? 读A=16 ? ? ? ? A←A-3 写回A=13 ① 读A=16 ? ② ? ③ A←A-1 写回A=15 ? ④ T2 T1 T1的修改被T2覆盖 4. 持续性 持续性也称永久性(Permanence)。 一个一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。 接下来的其他操作或故障不应该对其执行结果有任何影响。 保证事务ACID特性是事务处理的任务 破坏事务ACID特性的因素 多个事务并行运行时,不同事务的操作交叉执行 事务在运行过程中被强行停止 事务是恢复和并发控制的基本单位。 7.2 数据库恢复概述 故障是不可避免的 计算机硬件故障 系统软件和应用软件的错误 操作员的失误 恶意的破坏 故障的影响 运行事务非正常中断 破坏数据库 数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的恢复。 数据库管理系统对故障的对策 DBMS提供恢复子系统 保证故障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的状态 保证事务ACID 恢复技术是衡量系统优劣的重要指标。 7.3 故障的种类 一、事务内部的故障 某个事务在运行过程中由于种种原因未运行至正常终止——事务故障。(数据库可能处于不一致状态) 事务故障的常见原因(非预期的): 输入数据有误 运算溢出 违反了某些完整性限制 某些应用程序出错 并行事务发生死锁 …… 事务故障 通过事务程序本身发现(由程序自身处理P249例) 非预期的,不能由事务程序处理 发生事务故障时,该事务可能已把对数据库的部分修改写回磁盘。 事务故障的恢复:撤消事务(UNDO)。 强行回滚(ROLLBACK)该事务 清除该事务对数据库的所有修改,使得这个事务象根本没有启动过一样 二、系统故障 1. 系统故障是指造成系统停止运转的任何事件,使得系统要重新启动。 整个系统的正常运行突然被破坏 所有正在运行的事务都非正常终止 内存中数据库缓冲区的信息全部丢失 2. 系统故障的常见原因: 操作系统或DBMS代码错误 操作员操作失误 特定类型的硬件错误(如CPU故障) 突然停电 3. 系统故障的恢复: 清除尚未完成的事务对数据库的所有修改 系统重新启动时,恢复程序要强行撤消(UNDO)所有未完成事务。 将缓冲区中已完成事务提交的结果写入数据库

文档评论(0)

1亿VIP精品文档

相关文档