您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 数据库系统第10章数据库恢复技术.
AnIntroductiontoDatabaseSystem1数据库系统概论AnIntroductiontoDatabaseSystem第十章数据库恢复技术AnIntroductiontoDatabaseSystem2第十章数据库恢复技术10.1事务的基本概念10.2数据库恢复概述10.3故障的种类10.4恢复的实现技术10.5恢复策略10.6具有检查点的恢复技术10.7数据库镜像AnIntroductiontoDatabaseSystem310.1事务的基本概念一、什么是事务二、如何定义事务三、事务的特性AnIntroductiontoDatabaseSystem4一、事务1.事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单元。事务和程序是两个概念:一个事务可以是:一条或一组SQL语句程序:一个程序通常包含多个事务事务是恢复和并发控制的基本单位AnIntroductiontoDatabaseSystem5一、事务【例】在银行中两个帐户之间转帐,从帐户A转X元到帐户B。它同时涉及到两个不同帐户的读写操作。Updatezhxxsetye=ye-Xwherezh=AUpdatezhxxsetye=ye+Xwherezh=BAnIntroductiontoDatabaseSystem6二、如何定义事务1.显式定义方式BEGINTRANSACTIONBEGINTRANSACTIONSQL语句1SQL语句1SQL语句2SQL语句2…………COMMITROLLBACK提交事务的所有操作回滚到事务的开始状态正常提交异常终止AnIntroductiontoDatabaseSystem7二、如何定义事务usexscjbegintransactioninsertintostudentvalues(‘1111’,‘张华','女',20,'CS')insertintostudentvalues(‘3333’,‘刘洋’,‘男',20,'CS')committransaction例:AnIntroductiontoDatabaseSystem8二、如何定义事务2.隐式方式当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务。默认事务:每条SQL语句都构成一个事务,隐含事务的开始和结束控制点。若在执行该语句时遇到错误,则撤销操作;否则,提交并保存操作的结果。AnIntroductiontoDatabaseSystem9三、事务的特性(ACID特性)为了保证数据库的完整性(正确性),数据库必须维护事务的ACID特性:1.原子性(Atomicity)事务是数据库的逻辑工作单位事务中的所有操作要么全执行,要么都不执行例如:在执行Ti时,如果故障发生在write(A)和write(B)之间,则数据库中的数据就不一致AnIntroductiontoDatabaseSystem10三、事务的特性(ACID特性)2.一致性(Consistency)如果在执行事务之前的数据库是一致的,那么在执行事务之后的数据库也是一致的一致性状态:数据库中只包含成功事务提交的结果不一致状态:数据库中包含了失败事务的结果例如:对于Ti来说,一致性要求就是不改变帐户A和帐户B的和,否则事务就会创造或毁灭钱!AnIntroductiontoDatabaseSystem113.隔离性(Isolation)一个事务内部的操作及使用的数据对其他并发事务是隔离的。并发执行的各个事务之间不能互相干扰。三、事务的特性(ACID特性)读A=500A←A-450写回A=50①读A=500②③A←A-400写回A=100④T2T1目的:就是要确保事务并发执行后的系统状态,与这些事务按某种次序串行执行后的状态是等价的;AnIntroductiontoDatabaseSystem124.持续性(Durability)一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。保证事务ACID特性是事务处理的任务破坏事务ACID特性的因素:多个事务并行运行时,不同事务的操作交叉执行事务在运行过程中被强行停止三、事务的特性(ACID特性)AnIntroductiontoDatabaseSystem13第十章数据库恢复技术10.1事务的基本概念10.2数据库恢复概述10.3故障的种类10.4恢复的实现技术10.5恢复策略10.6具有检查点的恢复技术10.7数据库镜像AnIntroductiontoDatabaseSystem1410.2数据库恢复概述1.故障是不可避免的计算机硬件故障系统软件和应用软件的错误操作员的失误恶意的破坏2.故障的影响运行事务非正常中断破坏数据库AnIntroductiontoDatabaseSystem1510.2数据库恢复概述3.数据库管理系统对故障的对策DBMS提供恢复子系统保证故障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的状态保证事务ACID恢复技术是衡量DBMS优劣的重要指标之一AnIntroductiontoDatabaseSystem16第十章数据库恢复技术10.1事务的基本概念10.2数据库恢复概述10.3故障的种类10.4恢复的实现技术10.5恢复策略10.6具有检查点的恢复技术10.7数据库镜像事务故障系统故障介质故障计算机病毒AnIntroductiontoDatabaseSystem17一、事务故障1.事务故障某个事务在运行过程中由于种种原因未运行至正常终止点。2.事务故障的常见原因违反了某些完整性限制输入数据有误运算溢出并行事务发生死锁等。AnIntroductiontoDatabaseSystem18一、事务故障3.事务故障的分类可预期的:应用程序可以发现的故障。如:违反了某些完整性限制输入数据有误等可由应用程序处理。不可预期的:应用程序无法发现的故障。如:运算溢出发生死锁等应用程序无法处理,由系统进行处理。AnIntroductiontoDatabaseSystem19二、系统故障1.系统故障(软故障)指造成系统停止运转的任何事件,使得系统要重新启动。影响正在运行的所有事务,但不破坏数据库导致内存数据丢失,所有运行事务都异常终止.2.系统故障的常见原因特定类型的硬件错误(如CPU故障)操作系统故障或DBMS代码错误突然停电AnIntroductiontoDatabaseSystem20三、介质故障1.介质故障(硬故障)使存储在外存中的数据部分丢失或全部丢失。介质故障发生的可能性较小,但破坏性大;破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。2.介质故障的原因磁盘损坏、磁头碰撞、瞬时强磁场干扰等AnIntroductiontoDatabaseSystem21四、计算机病毒计算机病毒已成为计算机系统的主要威胁各种故障对数据库的破坏:1.数据库本身被破坏2.数据库没破坏,数据不正确恢复的基本原理-----冗余AnIntroductiontoDatabaseSystem22第十章数据库恢复技术10.1事务的基本概念10.2数据库恢复概述10.3故障的种类10.4恢复的实现技术10.5恢复策略10.6具有检查点的恢复技术10.7数据库镜像AnIntroductiontoDatabaseSystem2310.4恢复的实现技术恢复机制涉及的关键问题如何建立冗余数据?数据转储(backup)登录日志文件(logging)AnIntroductiontoDatabaseSystem2410.4恢复的实现技术10.4.1数据转储(backup)10.4.2登录日志文件(logging)AnIntroductiontoDatabaseSystem25一、什么是转储转储是指DBA定期地将整个数据库复制到磁带、磁盘或其他介质上保存起来的过程。也称后备副本AnIntroductiontoDatabaseSystem26故障发生点转储运行事务↓正常运行─┼───────┼─────────────TaTbTf重装后备副本重新运行事务恢复─┼───────┴------------→恢复到Tb时刻状态一、什么是转储AnIntroductiontoDatabaseSystem27二、转储方法1.静态转储系统中无运行事务时进行的转储。即转储开始时数据库处于一致性状态,转储期间不允许对数据库任何存取、修改操作。优点:实现简单;缺点:降低了数据库的可用性。转储必须等用户事务结束新事务必须等转储结束AnIntroductiontoDatabaseSystem282.动态转储转储和用户事务可以并发运行。优点:提高数据库的可用性;缺点:不能保证副本中的数据正确有效。如:转储期间某个时刻Tc,系统将数据A=100转储,而在下一时刻Td某一事务将A改为200,转储结束后,后备副本上A的值已经过时。二、转储方法AnIntroductiontoDatabaseSystem292.动态转储二、转储方法需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件;后备副本+转储日志文件才能把数据库恢复到某一时刻的正确状态。利用动态转储的副本进行故障恢复AnIntroductiontoDatabaseSystem30利用动态转储副本进行恢复TaTbTf动态转储运行事务故障发生点正常运行─┼───────┼─────────────登记日志文件登记新日志文件─────────┼─────────────转储日志文件重装后备副本,然后利用转储的日志文件恢复恢复到一-━━━━━━━┥致性状态AnIntroductiontoDatabaseSystem313.海量转储和增量转储海量转储:每次转储全部数据库增量转储:只转储上次转储后更新过的数据海量转储与增量转储比较海量转储恢复方便;对大的数据库,事务处理频繁,增量转储方式实用、有效二、转储方法AnIntroductiontoDatabaseSystem32三.转储方法小结转储状态动态转储静态转储转储方式海量转储动态海量转储静态海量转储增量转储动态增量转储静态增量转储DBA应该根据数据库使用情况确定适当的转储周期和转储方法。如何制定转储策略?AnIntroductiontoDatabaseSystem3310.4.2登记日志文件一、日志文件的内容二、日志文件的用途三、登记日志文件的原则AnIntroductiontoDatabaseSystem34一、日志文件的内容1.日志文件(log)是用来记录事务对数据库更新操作的文件。2.日志文件内容各事务的开始标记(BEGINTRANSACTION)每个事务的所有更新操作(logrecord)各事务的结束标记(COMMIT或ROLLBACK)AnIntroductiontoDatabaseSystem353.每条日志记录的内容事务标识操作类型(插入、删除或修改)操作对象(记录ID)更新前数据的旧值更新后数据的新值一、日志文件的内容AnIntroductiontoDatabaseSystem36一、日志文件的内容日志文件示例……T1,BeginTransaction……T1,A,1000,900……T1,B,1000,1100……T1,Commit……BEGINTRANT1:1Read(A)2A=A-1003Write(A)4Read(B)5B=B+1006Write(B)COMMIT事务日志文件假设:执行T1事务前A、B的分别值为:1000。AnIntroductiontoDatabaseSystem37二、日志文件的用途故障发生点静态转储运行事务↓正常运行─┼──────┼──────────┼──TaTbTf登记日志文件└───────────┴──重装后备副本利用日志文件恢复事务继续运行介质故障恢复─────────┴---─-------┴──────登记日志文件└──
本文标题:数据库系统第10章数据库恢复技术.
链接地址:https://www.777doc.com/doc-2333174 .html