第九章数据库恢复技术第九章数据库恢复技术第九章数据库恢复技术第九章数据库恢复技术9.1事务的基本概念9.2数据库恢复概述9.3故障的种类9.4恢复的实现技术9.5恢复策略9.6具有检查点的恢复技术9.7数据库镜像第九章数据库恢复技术第九章数据库恢复技术9.1事务的基本概念9.2数据库恢复概述9.3故障的种类9.4恢复的实现技术9.5恢复策略9.6具有检查点的恢复技术9.7数据库镜像9.19.1事务的基本概念事务的基本概念事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位恢复和并发控制的基本单位9.19.1事务的基本概念事务的基本概念示例银行转帐:事务T从A帐户过户50¥到B帐户T:read(A);A:=A–50;write(A);read(B);B:=B+50;write(B);read(X):从数据库传送数据项X到事务的工作区中write(X):从事务的工作区中将数据项X写回数据库9.19.1事务的基本概念事务的基本概念事务和程序比较在关系数据库中,一个事务可以是一条或多条SQL语句,或整个程序。一个程序通常包含多个事务9.19.1事务的基本概念事务的基本概念显式定义事务BEGINTRANSACTIONCOMMITROLLBACK事务以Begintransaction开始,以Commitwork或Rollbackwork结束Commitwork表示提交,事务正常结束Rollbackwork表示事务非正常结束,撤消事务已做的操作,回滚到事务开始时的状态9.19.1事务的基本概念事务的基本概念显式定义事务BEGINTRANSACTIONBEGINTRANSACTIONSQL语句1SQL语句1SQL语句2SQL语句2…………COMMITROLLBACK例如,银行转账事务,这个事务把一笔金额从一个账户甲转给另一个账户乙。BEGINTRANSACTION读账户甲的余额BALANCE;BALANCE=BALANCE-AMOUNT;(AMOUNT为转账金额)写回BALANCE;IF(BALANCE<0)THEN{打印'金额不足,不能转账';ROLLBACK;(撤销刚才的修改,恢复事务)}ELSE{读账户乙的余额BALANCE1;BALANCE1=BALANCE1+AMOUNT;写回BALANCE1;COMMIT;}9.19.1事务的基本概念事务的基本概念隐式方式当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务9.19.1事务的基本概念事务的基本概念AutoCommit事务是SQLServer默认事务方式。它指出每条SQL语句都构成事务,隐含事务的开始和结束控制点。例:updateaccountssetbal=bal-100whereaccountno=‘A’updateaccountssetbal=bal+100whereaccountno=‘B’9.19.1事务的基本概念事务的基本概念例:采用显示事物的处理方式begintranupdateaccountssetbal=bal-100whereaccountno=‘A’updateaccountssetbal=bal+100whereaccountno=‘B’endtran活动状态失败状态部分提交状态提交状态中止状态初始状态事务无法继续正常执行事务回滚,数据库恢复到事务开始前状态成功完成,永久写入数据库事务状态9.19.1事务的基本概念事务的基本概念事务的ACID特性原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)9.19.1事务的基本概念事务的基本概念事务的ACID特性原子性(Atomicity)事务中包含的所有操作要么全做,要么全不做原子性由恢复机制实现9.19.1事务的基本概念事务的基本概念事务的ACID特性一致性(Consistency)事务开始前,数据库处于一致性的状态;事务结束后,数据库必须仍处于一致性状态9.19.1事务的基本概念事务的基本概念事务的ACID特性隔离性(Isolation)系统必须保证事务不受其它并发执行事务的影响对任何一对事务T1,T2,在T1看来,T2要么在T1开始之前已经结束,要么在T1完成之后再开始执行隔离性通过并发控制机制实现9.19.1事务的基本概念事务的基本概念事务的ACID特性持续性(Durability)一个事务一旦提交之后,它对数据库的影响必须是永久的系统发生故障不能改变事务的持久性持久性通过恢复机制实现9.19.1事务的基本概念事务的基本概念事务ACID特性可能遭到破坏的因素:多个事务并行运行时,不同事务交叉执行事物在运行过程中被强行停止第九章数据库恢复技术第九章数据库恢复技术9.1事务的基本概念9.2数据库恢复概述9.3故障的种类9.4恢复的实现技术9.5恢复策略9.6具有检查点的恢复技术9.7数据...