欢迎来到天天文库
浏览记录
ID:8827964
大小:28.55 KB
页数:4页
时间:2018-04-08
《数据库恢复技术和并发控制》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数据库恢复技术和并发控制一、数据库恢复技术1.事务所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单元。2.事务的特性事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability),简称为ACID特性。(1)原子性事务是数据库的逻辑工作单位,事务中包含的诸操作要么都做,要么都不做。(2)一致性事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。(3)隔离性一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数
2、据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰(4)持续性指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。事务是恢复和并发控制的基本单位。保证事务ACID特性是事务管理的重要任务。3.故障种类数据库系统中可能发生的各种各样的故障,大致可以分为下几类:(1)事务内部的故障有的可以通过事务程序本身发现,如转账时发现账户余额不足。更多的故障是非预期的,是不能由应用程序处理的,如运算溢出、并发事务发生死锁而被选中撤销该事务、违反了某些完整性限制等(2)系统故障指造成系统停止运转的任
3、何事件,使得系统要重新启动。例如:硬件错误(CPU故障)、操作系统故障、DBMS代码错误、系统断电等。这类故障影响正在运行的所有事务,但不破坏数据库。这时主存内容,尤其是数据库缓冲区(在内存)中的内容都被丢失,所有运行事务都非正常终止。发生故障时,一些尚未完成的事务的结果可能已送入物理数据库,从而造成数据库可能处于不正确的状态。恢复子系统必须在系统重新启动时让所有非正常终止的事务回滚,强行撤销(UNDO)所有未完成事务。另一方面,有些已完成的事务可能有一部分甚至全部留在缓冲区,尚未写回到磁盘上的物理数据库中,系统故障使得这些事务对数据库的修改部分或全
4、部丢失,这也会使数据库处于不一致状态,因此应将这些事务已提交的结果重新写入数据库。所以系统重新启动后,恢复子系统除需要撤销所有未完成的事务,还需要重做(REDO)所有已提交的事务,以将数据库真正恢复到一致状态。(3)介质故障也称硬故障,如磁盘损坏、磁头碰撞、强磁场干扰等。(4)计算机病毒4.恢复的实现技术恢复机制涉及的两个关键问题是:第一,如何建立冗余数据;第二,如何利用这些冗余数据实施数据库恢复。建立冗余数据最常用的技术是数据转储和登录日志文件。5.恢复策略当系统运行过程中发生故障,利用数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性
5、状态。(1)事务故障的恢复事务故障是指事务在运行至正常终止点前被终止,这时恢复子系统应利用日志文件撤销(UNDO)此事务已对数据库进行的修改。事务故障的恢复是由系统自动完成的,对用户是透明的。恢复步骤:1>反向扫描日志文件,查找该事务的更新操作2>对事务的更新操作执行逆操作3>继续查找该事务的其他更新操作,并做同样处理,直至读到该事务的开始标记,事务故障恢复就完成了。(2)系统故障的恢复系统故障造成数据库不一致状态的原因有两个,一是未完成事务对数据库的更新可能已写入数据库,二是已提交事务对数据库的更新可能还留在缓冲区没来得及写入数据库。因此恢复操作就
6、是要撤销故障发生时未完成的事务,重做已完成的事务。系统故障的恢复是由系统在重新启动时自动完成的,不需要用户干预。恢复步骤:1>正向扫描日志文件,找出在故障发生前已提交的事务(这些事务既有BEGINTRANSACTION标记,也有COMMIT标记),将其事务标识记入重做(REDO)队列。同时找出故障发生时尚未完成的事务(这些事务只有BEGINTRANSACTION标记,无相应的COMMIT标记),将其事务标识记入撤销队列。2>对撤销队列中的各个事务进行撤销(UNDO)处理。方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中
7、“更新前的值”写入数据库。3>对重做队列中的各个事务进行重做(REDO)处理。方法是,正向扫描日志文件,对每个REDO事务重新执行日志文件登记的操作,即将日志记录中“更新后的值”写入数据库。(3)介质故障的恢复恢复方法是重装数据库,然后重做已完成的事务。 二、并发控制1.交叉并发方法:单处理机系统中的并发事务并没有真正地并行运行,但是减少了处理机的空闲时间,提高了系统的效率。2.同时并发方法:多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并发执行。3.并发控制概述为了保证事务的隔离性和一致性,DBMS需
8、要对并发操作进行正确调度。并发操作带来的数据不一致性主要包括丢失修改、不可重复读和读“脏”数据等。下面把事务
此文档下载收益归作者所有