事务处理技术.pptx
文本预览下载声明
数据库恢复技术;如何定义事务;COMMIT
事务正常结束
提交事务的所有操作(读+更新)
事务中所有对数据库的更新永久生效
ROLLBACK
事务异常终止
事务运行的过程中发生了故障,不能继续执行
回滚事务的所有更新操作
事务滚回到开始时的状态; 事务的特性;1. 原子性;2. 一致性;一致性与原子性;3. 隔离性;T1的修改被T2覆盖了!;4. 持续性;事务的特性 ;在任何情况下,DBMS都应保证事务的ACID性质。正常运行
时和发生故障时,都应保证事务的ACID性质。
不但在单个应用运行时应保证事务的ACID性质;而且在多
个应用并行运行时,也应保证事务的ACID性质。
保证事务在故障发生时满足ACID性质的措施称为恢复技术。
保证多个事务在并行执行时满足ACID性质的措施称为并发
控制技术。
恢复和并发控制是保证事务正确运行的两项基本技术,它
们被合称为事务管理。; 恢复技术概述;; 故障的种类;BEGIN TRANSACTION
读帐户甲的余额BALANCE;
BALANCE = BALANCE-AMOUNT;AMOUNT 为转帐金额)
IF(BALANCE〈0 ) THEN {
打印′金额不足,不能转帐′;
ROLLBACK;(撤消刚才的修改,恢复事务)}
ELSE{
读帐户乙的余额BALANCE1; BALANCE1 = BALANCE1+AMOUNT; 写回BALANCE1; COMMIT;};上面这个例子所包括的两个更新操作要么全部完成要么
全部不做。否则就会使数据库处于不一致状态,例如只
把帐户甲的余额减少了而没有把帐户乙的余额增加。
在这段程序中若产生帐户甲余额不足的情况,应用程序
可以发现并让事务滚回,撤消已作的修改,恢复数据库
到正确状态。
事务内部更多的故障是非预期的,是不能由应用程序处
理的。如运算溢出、并发事务发生死锁而被选中撤消该
事务、违反了某些完整性限制等。以后,事务故障仅指
这类非预期的故障。;事务故障的常见原因
输入数据有误
运算溢出
违反了某些完整性限制
某些应用程序出错
并行事务发生死锁
……;发生事务故障时,夭折的事务可能已把对数据库的部分修改写回磁盘
事务故障的恢复:撤消事务(UNDO)
强行回滚(ROLLBACK)该事务
清除该事务对数据库的所有修改,使得这??事务象根本没有启动过一样;2.系统故障
什么是系统故障
整个系统的正常运行突然被破坏
所有正在运行的事务都非正常终止
内存中数据库缓冲区的信息全部丢失
外部存储设备上的数据未受影响
;系统故障的常见原因;系统故障的恢复;发生系统故障时,一些尚未完成的事务的结果可能已送
入物理数据库,有些已完成的事务可能有一部分甚至全
部留在缓冲区,尚未写回到磁盘上的物理数据库中,从
而造成数据库可能处于不正确的状态。
为保证数据一致性,恢复子系统必须在系统重新启动时
让所有非正常终止的事务回滚,强行撤消(UNDO)所有未
完成事务。重做(Redo)所有已提交的事务,以将数据库
真正恢复到一致状态。;3、介质故障
系统故障常称为软故障(Soft Crash),介质故障称
为硬故障(Hard Crash)。
硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强
磁场干扰等。这类故障将破坏数据库或部分数据库,
并影响正在存取这部分数据的所有事务。
这类故障比前两类故障发生的可能性小得多,但破坏
性最大。;4、计算机病毒
计算机病毒是具有破坏性、可以自我复制的计算机程
序。计算机病毒已成为计算机系统的主要威胁,自然
也是数据库系统的主要威胁。因此数据库一旦被破坏
仍要用恢复技术把数据库加以恢复。
总结各类故障,对数据库的影响有两种可能性。一是
数据库本身被破坏。二是数据库没有破坏,但数据可
能不正确,这是因为事务的运行被非正常终止造成的。; 恢复的实现技术;恢复技术大致有下列三种:
1. 单纯以后备复本为基础的恢复技术;
1)周期性的数据库转储;
2)增量转储。
优点:实现简单,不增加数据库正常运行时的开销。
缺点:不能恢复到数据库的最近一致状态。(只能用
在小型和不重要的数据库系统);2. 以后备复本和运行记录(Log 或Journal)为基础的
恢复技术;
下面将详细介绍这种技术。
优点:数据库恢复到最近的一致状态。
缺点:实现复杂,运行时需保留运行记录。
----大部分商品化DBMS支持这种恢复技术,这是主
要的恢复方法
显示全部