《关系数据库事务处理技术ppt课件.ppt》由会员分享,可在线阅读,更多相关《关系数据库事务处理技术ppt课件.ppt(40页珍藏版)》请在三一办公上搜索。
1、第10讲 事务处理技术,参考教材第1011章,2,本讲内容,事务的基本概念数据库恢复技术并发控制技术,3,什么是事务,事务是用户定义的一个数据库操作序列该序列内的操作是不可分割的在RDBMS中,一个事务可由一条、多条SQL语句组成在RDBMS中,用于事务的标准SQL语句有BEGIN TRANSACTION开始事务COMMIT提交事务所有操作,事务正常结束ROLLBACK事务执行中遇故障,回滚到事务开始时的状态,事务结束,4,事务的特性,原子性(Atomicity)同一事务内的操作不可分割一致性(Consistency)事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态隔离性(Is
2、olation)一个事务的执行不能被其他事务干扰,5,事务的特性,持续性(Durability)某一事务一旦提交,其对数据库中数据的改变就是永久性的发生于该事务提交后的其他操作或故障,均不影响该事务的执行结果事务的四个特征Atomicity、Consistency、Isolation、DurabilityACID特性,6,事务的处理技术,事务处理技术用于保证事务的ACID特性保证被强行终止的事务对数据库和其他事务没有任何影响数据库恢复技术保证多个事务的交叉运行不影响这些事务的原子性并发控制,7,本讲内容,事务的基本概念数据库恢复技术并发控制技术,8,数据库恢复技术,故障种类恢复的实现技术恢复的
3、策略,9,事务内部故障,事务内部故障有两大类可通过事务程序发现的,ROLLBACK非预期的,不能由应用程序处理若未特别指明,事务故障特指这一类故障事务故障意味着事务没有到达预期的终点数据库可能处于不正确的状态,10,系统故障,所有造成系统停止运转的事件都可称为系统故障发生系统故障可能造成数据库缓冲区中内容丢失,使得运行的事务非正常终止已完成的事务部分或全部留在缓冲区,尚没有写到物理数据库中,11,介质故障,系统故障又称为软故障介质故障被称为硬故障,比如磁盘损坏、瞬时强磁场干扰等破坏部分或整个数据库,影响正在存取相应数据的事务发生机率小于前两种故障,但破坏性大,12,数据库恢复技术,故障种类恢复
4、的实现技术恢复的策略,13,数据库恢复机制的关键建立冗余数据利用冗余数据恢复数据库建立冗余数据的常用技术数据转储登记日志文件,14,数据转储,DBA定期地将整个数据库复制到磁盘或另一个磁盘上保存的过程称为转储备用数据称为后备副本,运行事务,15,数据转储的分类,静态转储在系统中无运行事务时进行的转储只要转储开始时数据库处于一致性状态,则得到的后备副本一定是一致的由于对事务运行的限制,可能降低数据库可用性动态转储在转储期间允许对数据库进行存取或修改得到的后备副本不一定是一致的,16,数据转储的分类,海量转储每次转储全部数据库用得到的后备副本进行数据库恢复比较方便但如果数据库大且事务处理频繁,则不
5、实用增量转储每次只转储上一次转储后被更新过的数据转储和使用后备副本进行恢复时比海量转储麻烦,17,日志文件概念及格式,日志文件是用于记录事务对数据库的更新操作的文件不同RDBMS采用的日志文件格式不完全一样日志文件的格式以记录为单位的日志文件事务标识、操作类型、操作对象、更新前数据的值、更新后数据的值以数据库块为单位的日志文件事务标识、更新前的数据块、更新后的数据块,18,日志文件的作用,事务故障和系统故障的恢复必须使用登记日志动态转储方式中,必须使用登记日志静态转储中,也可能用到登记日志,19,登记日志文件的准则,日志的登记次序严格按并发事务执行的时间次序必须先写日志文件,后写数据库将数据的
6、修改写到数据库中是一个操作将表示该数据修改的日志写到日志文件中又是一个操作两操作执行时可能发生发生故障,20,数据库恢复技术,故障种类恢复的实现技术恢复的策略,21,事务故障的恢复,事务故障的恢复由系统自动完成,对用户透明某事务发生故障后,系统恢复步骤1. 反向扫描日志文件,查找该事务的更新操作2. 对该事务的更新操作执行逆操作3. 继续反向扫描日志,查找该事务的其他更新操作,返24. 直到反向扫描到事务的开始标记,22,系统故障的恢复,系统故障恢复由系统自动完成,不需用户干预系统故障的恢复步骤1. 正向扫描日志文件,找出在故障发生前已提交的事务,将其事务标识记入重做队列;找出故障发生时尚未完
7、成的事务,将其事务标识记入撤消队列2. 对撤消队列中的各个事务进行撤消处理3. 对重做队列中的各个事务进行重做处理,23,介质故障的恢复,最严重的故障,磁盘上的物理数据和日志文件被破坏介质故障的恢复步骤1. 装入最新的数据库后备副本,使数据库恢复到最近一次转储时的一致性状态2. 装入相应的日志文件副本,重做已完成的事务,24,本讲内容,事务的基本概念数据库恢复技术并发控制技术,25,并发操作及其引发的问题并发控制的实现封锁两段锁协议,26,并发操作的必要性,事务一个一个串行执行,可避免同时运行多个事务所引发的冲突但无法充分利用系统资源不同的事务,在执行过程中需不同的资源串行执行所有事务,导致某
8、些系统资源处于空闲,27,并发的分类,交叉并发(Interleaved Concurrency)单CPU处理系统中采用的并发方式事务轮流交叉运行不是真正意义上的并发同时并发(Simultaneous Concurrency)多CPU处理系统中采用的并发方式每个CPU运行一个事务是真正意义上的并发,28,并发操作引发的问题,丢失修改 两事务同时读入同一数据并修改某一事务提交的结果破坏了另一事务提交的结果,29,并发操作引发的问题,不可重复读 两事务并发操作某一事务T1读取数据后,另一事务T2执行了更新操作,使T1无法再现前一次读取的结果,30,并发操作引发的问题,读“脏”数据 两事务并发操作某一
9、事务T1修改某一数据,并将其写入数据;另一事务T2读取该数据后,T1回滚事务T2读到的数据是不正确的数据,31,并发控制的必要性,当多个事务对数据库进行并发操作,可能造成丢失修改、不可重复读、读“脏”数据等问题破坏事务的ACID特性为保证事务的隔离性、一致性,需对并发操作进行控制并发控制机制也是衡量一个RDBMS性能的重要指标之一,32,并发操作及其引发的问题并发控制的实现封锁两段锁协议,33,封锁,事务T对某个数据对象进行操作前,向系统发出加锁请求系统加锁,事务T拥有对该数据对象的控制控制程度由所加锁类型确定事务T释放所加的琐之前,其他事务不可更新该数据对象事务T执行完后,释放所加的琐,34
10、,常用锁类型,排它锁(写锁)Xlock事务T对数据对象A加Xlock,则只有T才可读取、修改A其他事务不可对A加任何类型的锁,直到T释放A上的锁共享锁(读锁)Slock事务T对数据对象A加Slock,则T可读A但不能修改A其他事务可对A加Slock ,直到T释放A上的锁,35,封锁解决丢失修改,36,封锁存在的问题,死锁相互等待,事务无法结束,T1封锁R1,T2封锁R2,请求封锁R2等待T2,请求封锁R1等待T1,37,死锁的预防,一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行缺点:扩大封锁范围,降低系统并发性 无法准确预期哪些数据被加锁顺序封锁法预先对数据对象规定一个封锁顺序,所有事务按该顺序实行封锁缺点:维护成本高、很难准确预测封锁对象,38,死锁的诊断,超时法当一事务等待时间超过预定值,则诊断为发生了死锁难点:超时时间的设定等待图法以有向图的方式描述所有事务的等待情况图中出现回路则发生了死锁,39,并发操作及其引发的问题并发控制的实现封锁两段锁协议,40,两段封锁协议,所有事务必须分两个阶段对数据项加锁和解锁扩展阶段:在对任何数据进行读、写操作前,首先要申请并获得对该数据的封锁但不能释放任何锁收缩阶段:在释放一个封锁后,事务不再申请和获得任何其他封锁可以释放任何锁,