《《数据恢复技术》PPT课件》由会员分享,可在线阅读,更多相关《《数据恢复技术》PPT课件(119页珍藏版)》请在金锄头文库上搜索。
1、数 据 库 概 论 与 技 术数据恢复技术汤 娜中山大学计算机科学系1数据库恢复概述2故障的种类3数据存储结构4恢复的实现技术5恢复策略6具有检查点的恢复技术7数据库镜像8小结数据库恢复技术数据库恢复概述事务v事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位v事务的ACID特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)数据库恢复概述v故障是不可避免的计算机硬件故障系统软件和应用软件的错误操作员的失误恶意的破坏v故障的影响运行事务非正常中断,但不会破坏
2、数据库破坏数据库数据库恢复概述(续)v数据库管理系统对故障的对策保证故障发生后,能把数据库中的数据从错误状态恢复到某种逻辑一致的状态保证事务ACIDDBMS提供恢复子系统v恢复技术是衡量系统优劣的重要指标v恢复算法正常事务处理时,采取措施保证有足够的数据用于故障恢复故障发生后,将数据库内容恢复到某个保证数据库一致性、原子性及持久性的状态故障的种类3故障的种类v事务故障v系统故障v介质故障一、事务故障v什么是事务故障某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了v事务故障的常见原因输入数据有误运算溢出违反了某些完整性限制某些应用程序出错并行事务发生死锁。事务故障的恢复v发生事务故障时
3、,夭折的事务可能已把对数据库的部分修改写回磁盘v处理方法预期故障: 通过在程序中加判断条件来实现。执行回滚(ROLLBACK)语句来撤销事务。非预期的故障: 如由于死锁、运算溢出而被迫撤销的事务等,由系统来撤销事务事务故障的恢复的本质:撤消事务(UNDO)3故障的种类v事务故障v系统故障v介质故障二、系统故障v什么是系统故障整个系统的正常运行突然被破坏所有正在运行的事务都非正常终止内存中数据库缓冲区的信息全部丢失外部存储设备上的数据未受影响系统故障的常见原因v操作系统或DBMS代码错误v操作员操作失误v特定类型的硬件错误(如CPU故障)v突然停电系统故障的恢复v清除尚未完成的事务对数据库的所有
4、修改系统重新启动时,恢复程序要强行撤消(UNDO)所有未完成事务v将缓冲区中已完成事务提交的结果写入数据库系统重新启动时,恢复程序需要重做(REDO)所有已提交的事务3故障的种类v事务故障v系统故障v介质故障三、介质故障v硬件故障使存储在外存中的数据部分丢失或全部丢失v介质故障比前两类故障的可能性小得多,但破坏性大得多介质故障的常见原因v硬件故障磁盘损坏磁头碰撞操作系统的某种潜在错误瞬时强磁场干扰介质故障的恢复v装入数据库发生介质故障前某个时刻的数据副本v重做自此时始的所有成功事务,将这些事务已提交的结果重新记入数据库数据存储结构StorageStructurevVolatile storag
5、e:doesnotsurvivesystemcrashesexamples:mainmemory,cachememoryvNonvolatile storage:survivessystemcrashesexamples:disk,tape,flashmemory,non-volatile(batterybackedup)RAMvStable storage:amythicalformofstoragethatsurvivesallfailuresapproximatedbymaintainingmultiplecopiesondistinctnonvolatilemediaStable-St
6、orageImplementationvMaintainmultiplecopiesofeachblockonseparatedisksraid远程灾备copiescanbeatremotesitestoprotectagainstdisasterssuchasfireorflooding.vFailureduringdatatransfercanstillresultininconsistentcopies:BlocktransfercanresultinSuccessfulcompletionPartialfailure:destinationblockhasincorrectinform
7、ationTotalfailure:destinationblockwasneverupdatedStable-StorageImplementationvProtectingstoragemediafromfailureduringdatatransfer(onesolution):Executeoutputoperationasfollows(assumingtwocopiesofeachblock):Writetheinformationontothefirstphysicalblock.Whenthefirstwritesuccessfullycompletes,writethesam
8、einformationontothesecondphysicalblock.Theoutputiscompletedonlyafterthesecondwritesuccessfullycompletes.Stable-StorageImplementation(Cont.)vProtectingstoragemediafromfailureduringdatatransfer(cont.):vCopiesofablockmaydifferduetofailureduringoutputoperation.Torecoverfromfailure:1.Firstfindinconsisten
9、tblocks:1.Expensive solution:Comparethetwocopiesofeverydiskblock.2.Better solution:lRecordin-progressdiskwritesonnon-volatilestorage(Non-volatileRAMorspecialareaofdisk).lUsethisinformationduringrecoverytofindblocksthatmaybeinconsistent,andonlycomparecopiesofthese.lUsedinhardwareRAIDsystems2.Ifeither
10、copyofaninconsistentblockisdetectedtohaveanerror(badchecksum),overwriteitbytheothercopy.Ifbothhavenoerror,butaredifferent,overwritethesecondblockbythefirstblock.DataAccessvPhysical blocksarethoseblocksresidingonthedisk.vBuffer blocksaretheblocksresidingtemporarilyinmainmemory.vBlockmovementsbetweend
11、iskandmainmemoryareinitiatedthroughthefollowingtwooperations:input(B)transfersthephysicalblockB tomainmemory.output(B)transfersthebufferblockB tothedisk,andreplacestheappropriatephysicalblockthere.DataAccessvEachtransactionTi hasitsprivatework-areainwhichlocalcopiesofalldataitemsaccessedandupdatedby
12、itarekept.TislocalcopyofadataitemXiscalledxi.vWeassume,forsimplicity,thateachdataitemfitsin,andisstoredinside,asingleblock.DataAccess(Cont.)vTransactiontransfersdataitemsbetweensystembufferblocksanditsprivatework-areausingthefollowingoperations:read(X)assignsthevalueofdataitemXtothelocalvariablexi.w
13、rite(X)assignsthevalueoflocalvariablexi todataitemXinthebufferblock.boththesecommandsmaynecessitatetheissueofan input(BX)instructionbeforetheassignment,iftheblockBXinwhichXresidesisnotalreadyinmemory.vTransactionsPerformread(X)whileaccessingXforthefirsttime;Allsubsequentaccessesaretothelocalcopy.Aft
14、erlastaccess,transactionexecuteswrite(X).voutput(BX)neednotimmediatelyfollowwrite(X).Systemcanperformtheoutputoperationwhenitdeemsfit.ExampleofDataAccessxYABx1y1bufferBuffer Block ABuffer Block Binput(A)output(B)read(X)write(Y)diskworkareaofT1workareaofT2memoryx2恢复的实现技术恢复操作的基本原理v恢复操作的基本原理:冗余利用存储在系统其
15、它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据v恢复的实现技术:复杂一个大型数据库产品,恢复子系统的代码要占全部代码的10%以上4恢复的实现技术恢复机制涉及的关键问题1.如何建立冗余数据v数据转储(backup)v登录日志文件(logging)2.如何利用这些冗余数据实施数据库恢复4.1数据转储(备份)一、什么是转储二、转储的用途三、转储方法一、什么是转储v转储是指DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程。v这些备用的数据文本称为后备副本或后援副本。二、转储方法1静态转储与动态转储2海量转储与增量转储3转储方法小结1静态转储v在系统中无运行事务时进行转储转储开始时数
16、据库处于一致性状态。转储期间不允许对数据库的任何存取、修改活动v优点:实现简单v缺点:降低了数据库的可用性转储必须等用户事务结束新的事务必须等转储结束动态转储v转储操作与用户事务并发进行转储期间允许对数据库进行存取或修改v优点不用等待正在运行的用户事务结束不会影响新事务的运行v动态转储的缺点不能保证副本中的数据正确有效动态转储v利用动态转储得到的副本进行故障恢复需要把动态转储期间各事务对数据库的修改活动登记下来,建立日志文件后备副本加上日志文件才能把数据库恢复到某一时刻的正确状态2海量转储与增量转储v海量转储:每次转储全部数据库v增量转储:只转储上次转储后更新过的数据v海量转储与增量转储比较3转储方法小结v转储方法分类转储状态转储状态动态转储动态转储静态转储静态转储转储转储方式方式海量转储海量转储动态海量转储动态海量转储静态海量转储静态海量转储增量转储增量转储动态增量转储动态增量转储静态增量转储静态增量转储3恢复的实现技术3.1数据转储3.2登记日志文件3.2登记日志文件一、日志文件的内容三、登记日志文件的原则一、日志文件的内容1.什么是日志文件日志文件(log)是用来记录事务对数据库