《chap5事务处理并发控制与恢复技术》由会员分享,可在线阅读,更多相关《chap5事务处理并发控制与恢复技术(44页珍藏版)》请在金锄头文库上搜索。
1、第5章事务处理、并发控制与恢复技术棘雷喜冰倦毯寐幽赋露滤墙桐饵瘦爆砍桥惩譬哎溜执坚档钎窄馏努毅皑讳chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术本章目标本章目标本章结束时,学员能够:n了解事务的概念和了解事务的概念和ACID特性特性n掌握并发控制和封锁技术的概念掌握并发控制和封锁技术的概念n理解并发调度的可串行性及两段锁协议理解并发调度的可串行性及两段锁协议n了解封锁粒度了解封锁粒度n了解数据库系统的故障种类了解数据库系统的故障种类n理理解解数数据据库库恢恢复复的的实实现现技技术术和和常常见见故故障障的的恢恢复策略复策略n了解数据库镜像技术了解数据库镜像技术暖京逛
2、苦危耿井角互拧宵榔舟淋匈入持洪祝筏麦贴仗播由闪鞋恼忘第虹野chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.1事务的基本概念事务的基本概念n事务的概念:事务的概念:所所谓谓事事务务是是用用户户定定义义的的一一个个数数据据库库操操作作序序列列,这这些些操操作作要要么么全全做做要要么么全全不不做做,是是一一个个不不可可分割的工作单位。分割的工作单位。例例如如,在在关关系系数数据据库库中中,一一个个事事务务可可以以是是一一条条SQL语句、一组语句、一组SQL语句或整个程序。语句或整个程序。事事务务是是一一个个逻逻辑辑工工作作单单元元,同同时时又又是是一一个个恢恢复单元复
3、单元一一个个事事务务提提交交之之后后,数数据据库库又又处处于于或或应应该该处处于一个一致性状态于一个一致性状态朗针易栏蚁碰何孪破湍趾做便雹迂武罢判藕毒芭镁勤桓霓彬拔腑蔓桶牌竟chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.1事务的基本概念事务的基本概念n“一一荣荣俱俱荣荣,一一损损俱俱损损”这这句句话话很很能能体体现现事事务务的的思思想想,很很多多复复杂杂的的事事物物要要分分步步进进行行,但但它它们们组组成成一一个个整整体体,要要么么整整体体生生效效,要要么么整整体体失失效效。这这种种思思想想反反映映到到数数据据库库上上,就就是是多多个个SQL语语句句,要要么么
4、所所有有执执行行成功,要么所有执行失败。成功,要么所有执行失败。 惺拇邪侥恢拐兹升痔刃螺遍括厕账笑晚凝涟炭彭屈流仰叛凯吟辣犁绣翅溜chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.1.1 事务事务 (续续)n定义事务的三条语句:定义事务的三条语句: BEGIN TRANSACTIONCOMMITROLLBACKSQL中中事事务务以以Begin transaction开开始始,以以Commit 或或 Rollback 结束结束Commit 表表示示提提交交,即即提提交交事事务务的的所所有有操操作作,事事务务正正常常结束。结束。Rollback 表表示示事事务务非非正
5、正常常结结束束,撤撤消消事事务务已已做做的的操操作作,回滚到事务开始时状态回滚到事务开始时状态晚逾怔旨股局线旧离姆捧桃酒敝摹污倍顷藤恢髓韶帝倦蔷午蝇皖疵皆耘蔚chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术SQL Server 的事务模式:n自动提交事务每条单独的语句都是一个事务。每条语句后都隐含一个每条单独的语句都是一个事务。每条语句后都隐含一个COMMITn显式事务每每个个事事务务均均以以 BEGIN TRANSACTION 语语句句显显式式开开始始,以以 COMMIT 或或 ROLLBACK 语句显式结束。语句显式结束。n隐性事务在在前前一一个个事事务务完完成
6、成时时新新事事务务隐隐式式启启动动,但但每每个个事事务务仍仍以以 COMMIT 或或 ROLLBACK 语语句句显显式式完完成成。(如如UPDATE/INSERT/DELETE)n自动提交模式是自动提交模式是 Microsoft SQL Server 的默认事务管理模式。的默认事务管理模式。5.1.1 事务事务 (续续)舒旁藏添螟抨含厘惫壮海王蔫柿虹式灼张稠烃腮蝴曲讫众妮勒周拜本悦歧chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.1.2 事务的事务的ACID特性特性n事务的事务的ACID特性:特性:原子性原子性(Atomicity)一致性一致性(Consiste
7、ncy) 隔离性隔离性(Isolation)持续性持续性(Durability)事务是并发控制和恢复的基本单位。保证事务ACID特性是事务处理的重要任务。焊巷发傻劈染伍秸丰枯梗由录渴纹扯垦丝舵喧旨呈洲曳嘉捶昨姆玖眶纱廉chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.1.2事务的事务的ACID特性特性 (续续)原子性(Atomicity): 事事务务中中包包含含的的所所有有操操作作要要么么全全做做,要要么么全全不做不做原子性由原子性由恢复机制实现实现悦崭猖克由所允渺喇醇伙固咨诸决艰邀咆疼毒尺菊棺槛易挛朝咬赐黑敝袋chap5事务处理、并发控制与恢复技术chap5事务
8、处理、并发控制与恢复技术5.1.2事务的事务的ACID特性特性(续续)一致性(Consistency) 事务的隔离执行必须保证数据库的一致性事务的隔离执行必须保证数据库的一致性事事务务开开始始前前,数数据据库库处处于于一一致致性性的的状状态态;事事务务结束后,数据库必须仍处于一致性状态结束后,数据库必须仍处于一致性状态数据库的一致性状态,由数据库的一致性状态,由并发控制机制实现实现如如银银行行转转帐帐,转转帐帐前前后后两两个个帐帐户户金金额额之之和和应应保保持不变持不变醉贰恩璃羊老瓜箔大腾恬匀爹孽屁羹积醒涕旨剥撬赡死蚕梗询苇臻佣坑蔫chap5事务处理、并发控制与恢复技术chap5事务处理、并发
9、控制与恢复技术5.1.2事务的事务的ACID特性特性(续续)隔离性(IsolationIsolation)一个事务的执行不能被其他事务干扰。一个事务的执行不能被其他事务干扰。系系统统必必须须保保证证事事务务不不受受其其它它并并发发执执行行事事务务的的影影响响对对任任何何一一对对事事务务T T1 1,T T2 2,在在T T1 1看看来来,T T2 2要要么么在在T T1 1开开始始之之前前已已经经结结束束,要要么么在在T T1 1完完成成之之后后再再开开始执行始执行隔离性通过隔离性通过并发控制机制实现实现势腹嗽晾涨蠕和乡共学也董膏气愉油蔑隙渡市掺成匹彝脂状松蕴恭薄淄恋chap5事务处理、并发控
10、制与恢复技术chap5事务处理、并发控制与恢复技术持久性(Durability)也也称称为为永永久久性性,指指一一个个事事务务一一旦旦提提交交之之后,它对数据库的影响必须是永久的后,它对数据库的影响必须是永久的系统发生故障不能改变事务的持久性系统发生故障不能改变事务的持久性持久性通过持久性通过恢复机制实现实现5.1.2事务的事务的ACID特性特性(续续)戴雏贼踌朱岗免溉丹珠溜梳赐赂菊谎婆戮寐包眠暮址巧桂摸瓤藕骨疑里燎chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.1.3事务调度事务调度n事务的调度事务的调度事事务务的的执执行行顺顺序序称称为为一一个个调调度度,表
11、表示示事事务务的的指指令令在在系系统统中中执执行行的的时时间间顺序顺序一组事务的调度必须保证一组事务的调度必须保证n包含了所有事务的操作指令包含了所有事务的操作指令n一个事务中指令的顺序必须保持不变一个事务中指令的顺序必须保持不变n调度可以分为串行调度和并行调度两种调度可以分为串行调度和并行调度两种 串行调度串行调度n在串行调度中,属于同一事务的指令紧挨在一起在串行调度中,属于同一事务的指令紧挨在一起n对于有对于有n个事务的事务组,可以有个事务的事务组,可以有n!个有效调度!个有效调度并行调度并行调度n在并行调度中,来自不同事务的指令可以交叉执行在并行调度中,来自不同事务的指令可以交叉执行n当
12、并行调度等价于某个串行调度时,则称它是正确的当并行调度等价于某个串行调度时,则称它是正确的沫股手琼帕胞冲前歇珠袜夕绽转哭耪留匀猩衅疟肆六狙敏敷培蔑桨牧峭馏chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.1.3事务调度事务调度n并行与串行的对比:、并行与串行的对比:、 并并行行调调度度可可以以使使事事务务并并发发执执行行,以以提提高高系系统统的的吞吞吐量,但可能会破坏数据库的一致性;吐量,但可能会破坏数据库的一致性; 串行调度导致时延,效率低。串行调度导致时延,效率低。 调调度度的的核核心心问问题题应应该该在在保保证证一一致致性性的的前前提提下下最最大大限度地提高
13、并发度限度地提高并发度伪斜赞齐徒周拨轿拱辞侧割苛漆君柜炬负催罪重空株疵揽明扦唯铸献丑凌chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.2并发操作并发操作n并发操作:并发操作:当当多多个个用用户户同同时时存存取取数数据据库库就就会会产产生生对对数数据据库库的的并并发操作。发操作。并并发发操操作作打打破破了了事事务务一一个个一一个个执执行行的的顺顺序序,会会破破坏坏事事务务的的ACID特特性性,从从而而会会使使数数据据库库处处于于数数据据不不一一致性状态。致性状态。 为为了了充充分分利利用用系系统统资资源源,发发挥挥数数据据库库共共享享资资源源的的特点,应该允许多个
14、事务并行地执行。特点,应该允许多个事务并行地执行。培暴滚贞包宏计婉婴紫郴苑冶波秘七斧突废妨遭宗茬竹省婆痒礁响功佯簧chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.2并发操作并发操作(续续)并发操作带来的数据不一致性:n考虑飞机订票系统中的一个活动序列:考虑飞机订票系统中的一个活动序列:甲甲售售票票点点(甲甲事事务务)读读出出某某航航班班的的机机票票余余额额A,假假设设A为为16;乙乙售售票票点点(乙乙事事务务)读读出出同同一一航航班班的的机机票票余余额额A,也为也为16;甲甲售售票票点点卖卖出出一一张张机机票票,修修改改余余额额A=A-1,所所以以A为为15,把
15、,把A写回数据库;写回数据库;乙乙售售票票点点也也卖卖出出一一张张机机票票,修修改改余余额额A=A-1,所所以以A为为15,把,把A写回数据库;写回数据库;磊拼伤逝肄扰还藩沟牢卑呀闲门含魔勒甘哥傅桨疟践昭犬眼领抗细喇趾靛chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.3并发控制技术并发控制技术n为为了了保保证证数数据据一一致致性性,DBMS必必须须提提供供并并发发控控制制机机制制,对对并并发发操操作作进进行行正正确确的的调调度度。并并发发控控制制机机制制是是衡衡量量一一个个数数据据库库管管理理系系统统性性能能的的重重要要标志之一。标志之一。n并并发发控控制制就就
16、是是用用正正确确的的方方式式调调度度并并发发操操作作,使使一一个个用用户户事事务务的的执执行行不不受受其其他他事事务务的的干干扰扰,从从而避免造成数据的不一致性。而避免造成数据的不一致性。n并发控制的主要技术是并发控制的主要技术是 封锁(封锁(Locking)对足辨游安凋赊嘴讫维惑荣尔竖姬骇膘辫执皿孤裙室拳棺屈摹梁阅迁躇儿chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.3并发控制技术并发控制技术n封锁封锁n并发调度的可串行性并发调度的可串行性n两段锁协议两段锁协议n封锁的粒度封锁的粒度勃壕薛局范挛晦亿钩亥木涣篆棘忧烯盾民碾琶主土羌辖当锦饶烘痒姐头碎chap5事务
17、处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.3.1封锁封锁n封锁:封锁:所所谓谓封封锁锁就就是是事事务务T在在对对某某个个数数据据对对象象例例如如表表、记记录录等等操操作作之之前前,先先向向系系统统发发出出请请求求,对对其其加加锁锁。加加锁锁后后事事务务T就就对对该该数数据据对对象象有有了了一一定定的的控控制制,在在事事务务T释释放放它它的的锁锁之之前前,其他的事务不能更新此数据对象。其他的事务不能更新此数据对象。n基本的封锁类型:基本的封锁类型:排它锁排它锁(Exclusive Locks, 简称简称X锁锁)共享锁共享锁(Share Locks, 简称简称S锁锁)渊杨确
18、勇聂淫好舟揭替眉疲剧炎绕薪粪阶屉摹硕论迪罢聋驮谷萝撵买烤酮chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.3.1封锁封锁排它锁排它锁(Exclusive Locks, 简称简称X锁锁) 也也称称为为写写锁锁,若若事事务务T给给对对象象A加加上上X锁锁后后,则则只只允允许许T读读取取和和修修改改A,其其它它事事务务都都不不能能再再对对A加加任任何何类类型型锁锁,直直到到T释释放放A上上的的锁锁。可可以以保保证证X锁释放之前不能再读取和修改锁释放之前不能再读取和修改A共享锁共享锁(Share Locks, 简称简称S锁锁)又又称称读读锁锁,事事务务T给给对对象象A加
19、加上上S锁锁后后,事事务务T可可以以读读取取但但不不能能修修改改A;其其他他事事务务只只能能对对A加加S锁锁,但不能加但不能加X锁,直到事务锁,直到事务T释放释放S锁。锁。撩嫁二呈术匙区吾健奏蝉玛跨辟骂蠕果缘篆淡出广贿鄂掇炬裹逃右呵治嘴chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.3.2并发调度的可串行性并发调度的可串行性n可串行化调度:可串行化调度:多多个个事事务务的的并并发发执执行行是是正正确确的的,当当且且仅仅当当其其结结果果与与按按某某一一次次序序串串行行地地执执行行它它们们时时的的结结果果相相同同,我我们们称称这种调度策略为可串行化的调度。这种调度策
20、略为可串行化的调度。串串行行性性调调度度策策略略是是一一种种正正确确的的高高度度策策略略,因因为为他他不不会将数据库置于不一致状态。会将数据库置于不一致状态。n可串行性:可串行性:是是并并发发事事务务正正确确性性的的准准则则。按按这这个个准准则则规规定定,一一个个给给定定的的并并发发调调度度,当当且且仅仅当当它它是是可可串串行行化化的的,才才认认为为是是正正确确调调度度。目目前前DBMS普普遍遍采采用用封封锁锁方方法法实实现现并发操作调度的可串行性。并发操作调度的可串行性。持拓蹦栽扳备轩域位掇矢查搞馋杰饶媚胖颓磨背挠敬兄载传定溜谬靠饥概chap5事务处理、并发控制与恢复技术chap5事务处理、
21、并发控制与恢复技术5.3.3两段锁协议两段锁协议n两段锁协议:两段锁协议: 是是指指所所有有事事务务必必须须分分两两个个阶阶段段对对数数据据项项加加锁锁和和解锁解锁第第一一阶阶段段(获获得得封封锁锁):在在对对任任何何数数据据进进行行读读、写写操操作作之之前前,首首先先要要申申请请并并获获得得对对该该数数据据的的封封锁锁,但但不能释放任何锁;不能释放任何锁;第第二二阶阶段段(释释放放封封锁锁):事事务务可可以以释释放放任任何何数数据据项项上的任何类型的锁,但不能再申请任何锁。上的任何类型的锁,但不能再申请任何锁。事务遵守两段协议是可串行化调度的充分条件,而不是必要条件尺问览戳为忍陀傀酉扮男骨这
22、查俺廷篆零聊吨麻溅曼贷桥另疤邑谅匿郝贾chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.3.4封锁的粒度封锁的粒度 n封锁粒度:封封锁锁对对象象的的大大小小称称为为封封锁锁粒粒度度。封封锁锁对对象象可可以以是是逻逻辑辑单元,也可以是物理单元。单元,也可以是物理单元。n 封锁对象(以关系数据库为例)(以关系数据库为例):逻逻辑辑单单元元:属属性性值值、属属性性值值的的集集合合、元元组组、关关系系、索索引项、整个索引直至整个数据库引项、整个索引直至整个数据库物理单元:页(数据页或索引页)、块等。物理单元:页(数据页或索引页)、块等。举秘斥叛缴荤栋整仟奋硒紫厚憨疑极玛舔
23、醚音养仑番梁烙蛋夺腥鳃级了肾chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.3.4封锁的粒度封锁的粒度 n封封锁锁粒粒度度与与系系统统的的并并发发度度和和并并发发控控制制的的开开销销密密切相关切相关n封封锁锁粒粒度度越越大大,数数据据库库能能够够被被封封锁锁的的单单元元就就越越少少,并并发发度度就就越越小小,系系统统开开销销就就越越小小;反反之之,封锁粒度越小,并发度越高,系统的开销越大。封锁粒度越小,并发度越高,系统的开销越大。n选选择择封封锁锁粒粒度度时时要要考考虑虑封封锁锁开开销销和和并并发发度度两两个个因素。因素。荒桔坝坛荫劝疏勉黔岭麦潞好剿义顿耘流接盂
24、瞻优皆椰闭扬背壳渊据腹棘chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术补充:在企业管理器中查看锁补充:在企业管理器中查看锁n在在企企业业管管理理器器目目录录树树下下的的 管管理理当当前前活活动动锁锁进进程程ID或锁进程对象或锁进程对象 中可以查看当前活动的锁。中可以查看当前活动的锁。n在在快快捷捷菜菜单单中中我我们们可可以以展展开开相相应应的的锁锁并并查查看看其其属属性性;在属性面板中可以刷新或杀死进程。在属性面板中可以刷新或杀死进程。n在在T-SQL中中可可使使用用KILL SPID (KILL 52)来来结结束束当前锁进程。当前锁进程。nSP_LOCK命命令令
25、来来查查看看所所有有锁锁。(sp_lock 或或sp_lock 52)见胖臭益胰稗共啃秉糠雇蒸脉急遗卞归簇颗蕊责斯蒙绦耻克骂语边窗倾游chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术补充:在企业管理器中查看锁补充:在企业管理器中查看锁n死死锁锁:当当两两个个或或多多个个用用户户同同时时使使用用一一个个资资源源,并并且且每每一一方方都都想想利利用用他他人人的的资资源源而而不不愿愿放放弃弃自自己己的的资源时,即在等对方释放资源,就会造成死锁。资源时,即在等对方释放资源,就会造成死锁。n解解决决方方法法:“死死一一个个比比两两个个都都死死要要好好”。即即杀杀死死其中一个进
26、程。其中一个进程。考镣察摧局脚相郡冯扯柏浩雍棋凰勾执哟追良逆初男猜害诅冗秒保请古觉chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.4数据库系统的故障种类(四类)数据库系统的故障种类(四类)n事务内部的故障事务内部的故障 指事务没有达到预期的终点,数据库处于不正确的状态。指事务没有达到预期的终点,数据库处于不正确的状态。n系统故障系统故障指指造造成成系系统统停停止止运运转转的的任任何何事事件件,使使得得系系统统要要重重新新启启动动。例例如如,特特定定类类型型的的硬硬件件错错误误(CPU故故障障)、操操作作系统故障、系统故障、DBMS代码错误、突然停电代码错误、突然
27、停电n介质故障介质故障指指外外存存故故障障,如如磁磁盘盘损损坏坏、磁磁头头碰碰撞撞,瞬瞬时时强强磁磁场场干干扰等。扰等。n计算机病毒计算机病毒 窗荒篓搂辜项虑蒋笼死划臻只涸奋屡徽垄薛欣拨阵育殖缺惺谓赛寡啦绪淤chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.4数据库系统的故障种类(四类)数据库系统的故障种类(四类)n对对数数据据库库的的影影响响大大体体分分为为两两种种类类型型:一一是是数数据据库库本本身身被被破破坏坏;二二是是数数据据库库本本身身没没有有破破坏坏,但但由由于于事务的运行被非正常终止造成数据可能不正确。事务的运行被非正常终止造成数据可能不正确。刷够街
28、骏诡呀专遭么谰岳棋阿案斗泪谚丝钾咸蛾嵌建令多耽选嘎卵痪骗印chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.5数据库恢复与实现技术数据库恢复与实现技术n恢恢复复机机制制涉涉及及的的两两个个问问题题是是:如如何何建建立立冗冗余余数数据据;二是如何利用这些冗余数据实施数据库恢复。二是如何利用这些冗余数据实施数据库恢复。n数据库恢复技术主要有以下两种:数据库恢复技术主要有以下两种:数据转储数据转储登记日志文件登记日志文件n数据库恢复:数据库恢复:数数据据库库的的恢恢复复就就是是保保证证把把数数据据库库从从错错误误状状态态恢恢复到某一已知的正确状态。复到某一已知的正确状态
29、。亚碰湛济妨悍抚育姬眨癣三障暇哨寞房蔽隶杭疑喝蹦伟缮溢嘴晤险质拧讨chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.5.1.1数据转储数据转储n转转储储:所所谓谓转转储储即即DBA定定期期地地将将整整个个数数据据库库复复制制到到磁磁带带或或另另一一个个磁磁盘盘上上保保存存起起来来的的过过程程。这这些些备备用的数据文本称为后备副本或后援副本。用的数据文本称为后备副本或后援副本。n后后备备副副本本只只能能将将数数据据库库恢恢复复到到转转储储时时的的状状态态,若若要要恢恢复复到到故故障障发发生生时时的的状状态态,必必须须重重新新运运行行转转储储后的所有更新事务。后的所有
30、更新事务。勋掺逼藕休肚纬照哇实丸独频唆稠勿提蛆简蹈淤樟寺藏惹琐叫穴咒柬宿服chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.5.1.1数据转储数据转储n转储分类:转储分类:按转储状态分类:静态转储和动态转储;按转储状态分类:静态转储和动态转储; 静静态态转转储储是是在在系系统统中中无无运运行行事事务务时时进进行行转转储储操操作作,即即转储期间不允许对数据库的任何存取、修改活动。转储期间不允许对数据库的任何存取、修改活动。 动动态态转转储储是是指指转转储储期期间间对对数数据据库库进进行行存存取取或或修修改改,即即转储和用户事务可以并发执行。转储和用户事务可以并发执行
31、。按转储方式分类:海量转储和增量转储。按转储方式分类:海量转储和增量转储。 海量转储是指每次转储全部数据库海量转储是指每次转储全部数据库 增量转储则指每次只转储上次转储后更新过的数据。增量转储则指每次只转储上次转储后更新过的数据。蜡碌控况历淡屠亏遣诚称扬爬译纪预迂胁却琳环若药痊德棠逼裕价圣藤区chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.5.1.1数据转储数据转储正常运行恢复TaTb转储运行事务Tf重装后备副本重新运行事务转储和恢复豹巩某慌陀格销炙嚏墅我淄穗隐排燕蛇验彝萨怖上伐孤实烬哲芬存骆冀衣chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制
32、与恢复技术5.5.1.2登记日志文件登记日志文件n日志文件:日志文件:日日志志文文件件是是记记录录事事务务对对数数据据库库的的更更新新操操作作,以以备备用用来来进进行行事事务务故故障障恢恢复复和和系系统统故故障障恢恢复复,并并协协助助后后备备副副本本进进行行介质故障恢复的文件。介质故障恢复的文件。n日志文件的两种格式:日志文件的两种格式: 以记录为单位的日志文件以记录为单位的日志文件 以数据块为单位的日志文件以数据块为单位的日志文件涌抬叁贵萌籍许纱东亨答某倚字趴聘利旅漱舟俄瘤丰寒搏守垦谣行斧败蒋chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.5.1.2登记日志文
33、件登记日志文件n以记录为单位的日志文件内容:以记录为单位的日志文件内容:各个事务的开始标记各个事务的开始标记各个事务的结束标记各个事务的结束标记各个事务的所有更新操作各个事务的所有更新操作 每每个个事事务务的的开开始始标标记记、结结束束标标记记和和每每个个更更新新操操作作构成日志文件中的一个日志记录。构成日志文件中的一个日志记录。逃脯闯确靛匀有架蒲娇瘪廷每诗膀如没宪血固泉训丸少里缝忠捡写呻畔够chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.5.1.2登记日志文件登记日志文件n每个日志记录的主要内容:每个日志记录的主要内容:事务标识(标明哪个事务)事务标识(标明哪
34、个事务)操作的类型(插入、删除或修改)操作的类型(插入、删除或修改)操作对象(记录内部标识)操作对象(记录内部标识)更新前数据的旧值更新前数据的旧值更新后数据的新值更新后数据的新值 疮遮锑纤候铁把诲帅税遂销柱衍滤斋艺粗癣渔变弄新鸭增刺笑墙军砷爷组chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.5.1.2登记日志文件登记日志文件(续续)n事务故障恢复和系统故障必须用日志文件。事务故障恢复和系统故障必须用日志文件。n登记日志文件时必须遵循两条原则:登记日志文件时必须遵循两条原则:登记的次序严格按发生事务执行的时间次序。登记的次序严格按发生事务执行的时间次序。必须先写
35、日志文件,后写数据库。必须先写日志文件,后写数据库。舀婉交漂递慕蕾氨桂湃墅音橙漂像纫潞鲍智想菩羚爸沙茫冶戴闽革硒颓净chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.6恢复策略(三种)恢复策略(三种)n事务故障的恢复事务故障的恢复n系统故障的恢复系统故障的恢复n介质故障的恢复介质故障的恢复秉旬契革辨野墨友下书兹勒檄蝇沈帛蛋胎臀少校疵簿揩指得呜回藕臼蔼覆chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.6.1事务故障的恢复事务故障的恢复n事事务务故故障障:是是指指事事务务在在运运行行至至正正常常终终止止前前被被终终止止n恢恢复复子子系系
36、统统应应利利用用日日志志文文件件撤撤销销(UNDO)此此事务已对数据库进行的修改。事务已对数据库进行的修改。n事事务务故故障障的的恢恢复复是是由由系系统统自自动动完完成成的的,对对用用户户是透明的。是透明的。虽绷匡渭挺蛀鸡奶完杜题吭迎猛闯倾轩死互汰灭赦瓤合熙痰枕慢纪鹿浇队chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.6.1事务故障的恢复事务故障的恢复n事务故障的恢复步骤:事务故障的恢复步骤:反反向向扫扫描描日日志志文文件件(即即从从最最后后向向前前扫扫描描日日志志文文件),查找该事务的更新操作。件),查找该事务的更新操作。对该事务的更新操作执行逆操作。对该事务
37、的更新操作执行逆操作。继继续续反反向向扫扫描描日日志志文文件件,查查找找该该事事务务的的其其他他更更新操作,并做同样处理。新操作,并做同样处理。如如此此处处理理下下去去,直直至至读读到到此此事事务务的的开开始始标标记记,事务故障恢复就完成了。事务故障恢复就完成了。肇程冷余耳袋横第从陶就检朱葛揩郁弯抖幻哟吧获遮编眩示辽绿换觅磨沪chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.6.2系统故障的恢复系统故障的恢复n系系统统故故障障的的原原因因:一一是是未未完完成成的的事事务务对对数数据据库库的的更更新新可可以以已已写写入入数数据据库库;二二是是已已提提交交事事务务对对
38、数数据据库库的的更新可能还留在缓冲区没来得及写入数据库。更新可能还留在缓冲区没来得及写入数据库。n恢恢复复操操作作就就是是要要撤撤消消故故障障发发生生时时未未完完成成的的事事务务,重重做已完成的事务。做已完成的事务。鹿的景夺菠则层赵摇说媚巍裸绊铺媳湿姑肤促廷鄂载在坯坷鳃博铆赃堵促chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.6.2系统故障的恢复系统故障的恢复n系统故障的恢复步骤:系统故障的恢复步骤:正正向向扫扫描描日日志志文文件件(即即从从头头扫扫描描日日志志文文件件),找找出出在在故故障障发发生生前前已已经经提提交交的的事事务务,将将其其事事务务标标识识记记
39、入入重重做做(REDO)队队列列。同同时时找找出出故故障障发发生生时时尚尚未未完完成成的的事事务务,将将其其事事务务标标识识记记入入撤撤销(销(UNDO)队列。)队列。(注意区别注意区别P116)对对撤撤销销(UNDO)队队列列中中的的各各个个事事务务进进行行撤撤销销处理。处理。对对重重做做(REDO)队队列列中中的的各各个个事事务务进进行行重重做做处理。处理。捕拐啮芥裳砒匪衣嫌傲磷录恒政蛹他捣秀就儿锁树佑活喇悬柄任销豁掷伊chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.6.3介质故障的恢复介质故障的恢复n介介质质故故障障发发生生后后,磁磁盘盘上上的的物物理理数
40、数据据和和日日志志文文件件被被破破坏坏,方方法法是是重重装装数数据据库库,然然后后生生做做已已完完成的事务。成的事务。n介质故障需要介质故障需要DBA的介入。的介入。n介质故障的恢复步骤:介质故障的恢复步骤:装装入入最最新新的的数数据据库库后后备备副副本本,使使数数据据库库恢恢复复到到最最近近一次转储时的一致性状态。一次转储时的一致性状态。装装入入相相应应的的日日志志文文件件副副本本(转转储储结结束束时时刻刻的的日日志志文文件副本),重做已完成的事务。件副本),重做已完成的事务。规符弥钧萤锰蛤丑锨狠蔡其伯鹰兹履哉时葵谍粕裂仑役保隅程抨锻粤丝兹chap5事务处理、并发控制与恢复技术chap5事务
41、处理、并发控制与恢复技术5.7数据库镜像数据库镜像n数据库镜像主要用于数据库恢复。数据库镜像主要用于数据库恢复。n将将整整个个数数据据库库或或其其中中的的关关键键数数据据复复制制到到另另一一个个磁磁盘盘上上,由由DBMS自自动动保保证证镜镜像像数数据据与与主主数数据据的的一一致性。致性。n用用户户往往往往只只选选择择对对关关键键数数据据和和日日志志文文件件镜镜像像,而而不是对整个数据库进行镜像。不是对整个数据库进行镜像。n数数据据库库镜镜像像还还可可以以用用于于并并发发操操作作,当当一一个个用用户户对对数数据据加加排排它它锁锁修修改改数数据据时时,其其它它用用户户可可以以读读取取数数据库上的数
42、据而不必等待该用户释放锁。据库上的数据而不必等待该用户释放锁。凶嚣石谆咖恃杂冷连清落詹煽杖防致晨淳屠陡兑屈哗歉胖筐维萤授祭拐搐chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术5.7数据库镜像数据库镜像镜像复制应用2应用3应用4readreadread镜像 恢复应用2应用3应用4readreadread(a)(b)应用1update应用1update数据库镜像辰磷俩专掷弃碟右歪淤汁鳃痢尸帮摆勒誉漱刑羌尤气肘完窃搜雏宋等莉铂chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术本章总结本章总结n事务的概念和事务的概念和ACID特性特性n并发操作带来数据的不一致性问题并发操作带来数据的不一致性问题n封锁是实现并发控制一个非常重要的技术封锁是实现并发控制一个非常重要的技术n并发调度的可串行性及两段锁协议并发调度的可串行性及两段锁协议n封锁粒度封锁粒度n数据库系统的故障种类数据库系统的故障种类n数据库恢复的实现技术数据库恢复的实现技术n常见故障的恢复策略常见故障的恢复策略n数据库镜像数据库镜像色七各妙换耻哎禾焊苞沏皇斌镑搽环痢伊背拉僻蚂爵维甘采迹峪熏衫哉挝chap5事务处理、并发控制与恢复技术chap5事务处理、并发控制与恢复技术