版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章数据库恢复技术10.1事务的基本概念10.2数据库恢复概述10.3恢复的实现10.4恢复策略10.5具有检查点的恢复技术10.6数据库镜像10.7SQLServer的恢复技术11/15/20221第十章数据库恢复技术第十章数据库恢复技术10.1事务的基本概念11/110.1事务的基本概念什么是事务?事务的基本操作与状态系统赋予事务的特性11/15/20222第十章数据库恢复技术10.1事务的基本概念什么是事务?11/10/202210.1.1什么是事务?典型事务,如银行转帐:帐户A–10000元;帐户B+10000元。Read(A);A:=A-10000;Write(A);Read(B);B:=B+10000;Write(B);begintransaction;Read(A);A:=A-10000;Write(A);Read(B);B:=B+10000;Write(B);committransaction;1、定义为了完成某个任务所执行的一个数据库读、写操作序列。2、显式定义方式
BEGINTRANSACTIONSQL语句1SQL语句2。。。。。
COMMIT(或ROLLBACK)3、隐式方式当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务。11/15/20223第十章数据库恢复技术10.1.1什么是事务?典型事务,如银行转帐:Read(10.1.2事务的基本操作与状态1)事务开始(begintransaction):开始执行。2)事务读写(read/write):进行数据库操作。3)事务结束(endtransaction):完成所有操作。4)事务交付(commit):完成所有操作,并保存所有结果。5)事务撤消(rollback):执行途中出现异常,系统或用户撤消事务。活跃部分交付交付撤消终止事务开始事务结束交付撤消读写操作事务的起点事务的终点11/15/20224第十章数据库恢复技术10.1.2事务的基本操作与状态1)事务开始(begin10.1.3系统赋予事务的特性(ACID)为了保证事务并发、有效、正确地执行,保证数据库的正确性,系统必须赋予事务一些特性。1)原子性(Atomicity):最基本特性 事务的所有操作要么全部完成,要么均不执行。原子性在于保证正确性。由DBMS的恢复子系统来保证原子性。2)一致性(Consistency):事务必须将数据库从一种一致状态转换为另一种一致状态。由DBMS和程序开发者共同保证数据库的一致性。3)隔离性(Isolation):任何事务不能访问到其他未交付事务的中间结果。由DBMS的并发控制子系统来保证事务的隔离性。4)持久性(Durability):保证已交付事务的结果不丢失,且与以后的故障无关。由DBMS的恢复子系统负责确保事务的持久性。11/15/20225第十章数据库恢复技术10.1.3系统赋予事务的特性(ACID)为了10.2数据库恢复概述1、引入“恢复”技术的原因事务故障、系统故障、介质故障计算机病毒2、恢复的基本原理冗余3、恢复的含义所谓数据库的恢复就是利用存储在系统其他地方的冗余数据来修复数据库中被破坏的或不正确的数据,使数据库从错误状态恢复到某一已知的正确状态。(1)数据库本身被破坏(2)数据库没有被破坏,但数据可能不正确11/15/20226第十章数据库恢复技术10.2数据库恢复概述1、引入“恢复”技术的原因(1)10.3恢复的实现技术恢复机制涉及的两个关键问题:如何建立冗余数据如何利用冗余数据实施数据库恢复数据转储登记日志文件不同故障的恢复策略有所不同11/15/20227第十章数据库恢复技术10.3恢复的实现技术恢复机制涉及的两个关键问题:数据转10.3.1数据转储1、含义DBA定期地将整个数据库复制到磁带或另一个磁盘上形成后备副本保存起来的过程。2、利用转储方法进行恢复的过程3、转储状态静态转储动态转储4、转储方式海量转储增量转储
TaTbTf正常运行转储运行事务故障发生点重装后备副本重新运行事务恢复11/15/20228第十章数据库恢复技术10.3.1数据转储1、含义TaTbTf正常运行转储运行10.3.2登记日志文件日志文件的格式和内容日志文件的作用登记日志文件11/15/20229第十章数据库恢复技术10.3.2登记日志文件日志文件的格式和内容11/1一、日志文件的格式和内容什么是日志文件日志文件(log)是用来记录事务对数据库的更新操作的文件。日志文件的格式以记录为单位的日志文件以数据块为单位的日志文件11/15/202210第十章数据库恢复技术一、日志文件的格式和内容什么是日志文件11/10/20221日志文件的格式和内容(续)以记录为单位的日志文件内容各个事务的开始标记(BEGINTRANSACTION)各个事务的结束标记(COMMIT或ROLLBACK)各个事务的所有更新操作以上均作为日志文件中的一个日志记录(logrecord)每条日志记录的内容事务标识(标明是哪个事务)操作类型(插入、删除或修改)操作对象(记录内部标识)更新前数据的旧值(对插入操作而言,此项为空值)更新后数据的新值(对删除操作而言,此项为空值)11/15/202211第十章数据库恢复技术日志文件的格式和内容(续)以记录为单位的日志文件内容11/1日志文件的格式和内容(续)以数据块为单位的日志文件,每条日志记录的内容事务标识(标明是那个事务)被更新的数据块11/15/202212第十章数据库恢复技术日志文件的格式和内容(续)以数据块为单位的日志文件,每条日志二、日志文件的作用进行事务故障恢复进行系统故障恢复协助后备副本进行介质故障恢复11/15/202213第十章数据库恢复技术二、日志文件的作用进行事务故障恢复11/10/20221利用静态转储副本和日志文件进行恢复TaTbTf正常运行转储运行事务故障发生点登记日志文件重装后备副本利用日志文件恢复事务恢复登记日志文件继续运行11/15/202214第十章数据库恢复技术利用静态转储副本和日志文件进行恢复TaTbTf正常运行转储运三、登记日志文件基本原则登记的次序严格按并行事务执行的时间次序必须先写日志文件,后写数据库写日志文件操作:把表示这个修改的日志记录写到日志文件写数据库操作:把对数据的修改写到数据库中11/15/202215第十章数据库恢复技术三、登记日志文件基本原则11/10/202215第十章数10.4恢复策略事务分类基本的恢复操作不同故障的恢复策略11/15/202216第十章数据库恢复技术10.4恢复策略事务分类11/10/202216第十章10.4.1事务分类圆满事务指日志文件中记录了事务的commit标识,说明日志中已经完整地记录下事务所有的更新活动。夭折事务指日志文件中只有事务的开始标识,而无commit标识,说明对事务更新活动的记录是不完整的,无法根据日志来重现事务。为保证事务的原子性,应该撤销这样的事务。11/15/202217第十章数据库恢复技术10.4.1事务分类圆满事务11/10/202217第十10.4.2基本的恢复操作:Redo和UndoRedo和Undo是针对事务的某一次更新操作。Redo是重新执行这次操作。其处理的方法是,正向扫描日志文件,将日志记录中“更新后的值”重新写入数据库。Undo是消除这次操作的影响,将事务执行点回退到这次操作之前。其处理的方法是,反向扫描日志文件,将日志记录中“更新前的值”重新写入数据库。在利用日志文件进行恢复的过程中,对已结束的事务中的更新操作进行Redo,对未结束的事务中的更新操作进行Undo。11/15/202218第十章数据库恢复技术10.4.2基本的恢复操作:Redo和UndoRedo和10.4.3不同故障的恢复策略事务故障的恢复系统故障的恢复介质故障的恢复11/15/202219第十章数据库恢复技术10.4.3不同故障的恢复策略事务故障的恢复11/1思考题在SQL语言中,定义事务控制的语句主要有________、________和________。事务具有四个特性:它们是___、____、____和____。这个四个特性也简称为_____特性。_______和_______是数据库恢复的基本技术。如何进行事务故障的恢复?系统故障的恢复?介质故障恢复?11/15/202220第十章数据库恢复技术思考题在SQL语言中,定义事务控制的语句主要有_______10.5具有检查点的恢复技术问题的提出检查点技术利用检查点的恢复策略11/15/202221第十章数据库恢复技术10.5具有检查点的恢复技术问题的提出11/10/210.5.1问题的提出两个问题搜索整个日志将耗费大量的时间REDO处理:重新执行,浪费了大量时间11/15/202222第十章数据库恢复技术10.5.1问题的提出两个问题11/10/202222第解决方案具有检查点(checkpoint)的恢复技术在日志文件中增加检查点记录(checkpoint)增加重新开始文件恢复子系统在登录日志文件期间动态地维护日志11/15/202223第十章数据库恢复技术解决方案具有检查点(checkpoint)的恢复技术11/110.5.2检查点技术检查点记录的内容1.建立检查点时刻所有正在执行的事务清单2.这些事务最近一个日志记录的地址重新开始文件的内容记录各个检查点记录在日志文件中的地址11/15/202224第十章数据库恢复技术10.5.2检查点技术检查点记录的内容11/10/202动态维护日志文件的方法动态维护日志文件的方法周期性地执行如下操作:建立检查点,保存数据库状态。具体步骤是:1.将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上2.在日志文件中写入一个检查点记录3.将当前数据缓冲区的所有数据记录写入磁盘的数据库中4.把检查点记录在日志文件中的地址写入一个重新开始文件11/15/202225第十章数据库恢复技术动态维护日志文件的方法动态维护日志文件的方法11/10/20建立检查点恢复子系统可以定期或不定期地建立检查点,保存数据库状态定期按照预定的一个时间间隔,如每隔一小时建立一个检查点不定期按照某种规则,如日志文件已写满一半建立一个检查点11/15/202226第十章数据库恢复技术建立检查点恢复子系统可以定期或不定期地建立检查点,保存数据库10.5.3利用检查点的恢复策略Tc(检查点)Tf(系统故障)UNDOUNDO
REDO
REDOT2T3T4T5不要REDOT111/15/202227第十章数据库恢复技术10.5.3利用检查点的恢复策略Tc(检查点)Tf利用检查点的恢复步骤1.从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。2.由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST建立两个事务队列UNDO-LISTREDO-LIST把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空。11/15/202228第十章数据库恢复技术利用检查点的恢复步骤1.从重新开始文件中找到最后一个检查利用检查点的恢复策略(续)3.从检查点开始正向扫描日志文件,直到日志文件结束如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列4.对UNDO-LIST中的每个事务执行UNDO操作对REDO-LIST中的每个事务执行REDO操作11/15/202229第十章数据库恢复技术利用检查点的恢复策略(续)3.从检查点开始正向扫描日志文件,10.6数据库镜像介质故障是对系统影响最为严重的一种故障,严重影响数据库的可用性介质故障恢复比较费时为预防介质故障,DBA必须周期性地转储数据库提高数据库可用性的解决方案数据库镜像(Mirror)11/15/202230第十章数据库恢复技术10.6数据库镜像介质故障是对系统影响最为严重的一种故障数据库镜像技术什么是数据库镜像数据库镜像即根据DBA的要求,DBMS自动把整个数据库或其中的关键数据复制到另一个磁盘上,每当主数据库更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据库的一致性。11/15/202231第十章数据库恢复技术数据库镜像技术什么是数据库镜像11/10/202231第十章数据库镜像(续)11/15/202232第十章数据库恢复技术数据库镜像(续)11/10/202232第十章数据库恢复数据库镜像的用途出现介质故障时可由镜像磁盘继续提供使用同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本11/15/202233第十章数据库恢复技术数据库镜像的用途出现介质故障时11/10/202233第十章数据库镜像存在的问题及解决办法存在的问题频繁地复制数据自然会降低系统运行效率解决办法只选择对关键数据和日志文件镜像,而不是对整个数据库进行镜像11/15/202234第十章数据库恢复技术数据库镜像存在的问题及解决办法存在的问题11/10/2022设有四个事务T1、T2、T3、T4,它们的操作定义如下:在系统崩溃之前系统在日志中记录了如下内容:T1T2T3T4read_item(A)read_item(D)write_item(D)read_item(B)write_item(B)read_item(D)write_item(D)read_item(A)write_item(A)read_item(C)write_item(C)read_item(B)write_item(B)read_item(A)write_item(A)[begin_transaction,T1][read_item,T1,A][read_item,T1,D][write_item,T1,D,20][commit,T1][checkpoint][begin_transaction,T2][read_item,T2,B][write_item,T2,B,12][begin_transaction,T4][read_item,T4,B][write_item,T4,B,15]
[begin_transaction,T3][read_item,T3,A][write_item,T3,A,30][read_item,T4,A][write_item,T4,A,20][commit,T4][read_item,T2,D][write_item,T2,D,25]如果系统采用立即修改的恢复技术和检查点机制,当系统重启后,哪些事务需要回退?哪些操作需要Redo?哪些操作需要Undo?是否会出现事务嵌套回退的情形?11/15/202235第十章数据库恢复技术设有四个事务T1、T2、T3、T4,它们的操作定义如下:在系10.7SQLServer的恢复技术10.7.1备份数据库10.7.2还原数据库10.7.3备份和还原的策略11/15/202236第十章数据库恢复技术10.7SQLServer的恢复技术10.7.110.7.1备份数据库SQLServer数据备份的特点SQLServer数据库备份的类型创建和管理备份设备备份数据库11/15/202237第十章数据库恢复技术10.7.1备份数据库SQLServer数据备份一、SQLServer数据备份的特点SQLServer支持在线备份备份工作由数据库管理员来完成11/15/202238第十章数据库恢复技术一、SQLServer数据备份的特点SQLServe二、SQLServer数据库备份的类型全数据库备份事务日志备份增量备份(差异备份)文件和文件组备份11/15/202239第十章数据库恢复技术二、SQLServer数据库备份的类型全数据库备份1三、创建和管理备份设备备份设备是SQLServer用来存储数据库、事务日志或文件和文件组备份的存储介质。备份设备可以是本地机器上的磁盘文件、远端服务器上的磁盘文件、磁带以及命名管道。创建一个备份设备时,要给它一个逻辑名称和一个物理名称。例如:设备类型逻辑名称物理名称本地磁盘DB_BACKUP_DISKD:\BACKUPS\DBBACKUP01.BAK网络磁盘TL_BACKUP_SQLBACK\\SQLBACK\BACKUPS\TLBACKUP.BAK磁带TAPE_BACKUP\\.\TAPE0命名管道NP_BACKUP\\SQLBACK\PIPE\SQL\BACKUP11/15/202240第十章数据库恢复技术三、创建和管理备份设备备份设备是SQLServer用来存创建备份设备使用企业管理器使用系统存储过程sp_addumpdevice
sp_addumpdevice[@devtype=]'device_type',[@logicalname=]'logical_name',[@physicalname=]'physical_name'[,{[@cntrltype=]controller_type|[@devstatus=]'device_status'}]创建备份设备时,返回0表示创建成功,返回1表示创建失败。
disk、pipe、tape11/15/202241第十章数据库恢复技术创建备份设备使用企业管理器disk、pipe、tape11示例例1:创建一个磁盘备份设备:EXECsp_addumpdevice 'disk','student_full','d:\xcm\student.bak'例2:创建一个磁带备份设备:EXECsp_addumpdevice'tape','tapedump1','\\.\tape0'11/15/202242第十章数据库恢复技术示例例1:创建一个磁盘备份设备:11/10/202242第十管理备份设备列出备份设备使用企业管理器使用sp_helpdevice系统存储过程删除一个备份设备使用企业管理器使用SP_DROPDEVICE系统存储过程SP_dropdevicelogicalname[,DELFILE]11/15/202243第十章数据库恢复技术管理备份设备列出备份设备11/10/202243第十章数四、备份数据库备份的内容master数据库msdb数据库model数据库distribution数据库所有的用户数据库使用企业管理器来备份数据库数据库所有任务备份数据库使用备份语句BACKUP来备份数据库11/15/202244第十章数据库恢复技术四、备份数据库备份的内容11/10/202244第十章使用BACKUP来备份数据库完全备份BACKUP
DATABASE
studentTO
student_full
WITHINIT
增量备份(差异备份)BACKUP
DATABASE
studentTO
DISK=‘d:\xm\student_diff.bak'
WITHNOINIT,DIFFERENTIAL
日志备份BACKUP
LOG
studentTO
student_log
WITHNOINIT
文件和文件组备份BACKUPDATABASEstudent
FILE=stu2TO
student_file
11/15/202245第十章数据库恢复技术使用BACKUP来备份数据库完全备份11/10/20224510.7.2还原数据库使用企业管理器还原数据库使用RESTORE命令还原数据库还原整个数据库还原差异备份还原日志备份还原文件和文件组11/15/202246第十章数据库恢复技术10.7.2还原数据库使用企业管理器还原数据库11/1使用RESTORE命令还原数据库还原整个数据库RESTORE
DATABASE
studentFROM
student_full
还原差异备份RESTORE
DATABASE
studentFROM
student_differ
WITHNORECOVERY
还原日志备份RESTORE
LOG
studentFROM
student_log
WITHRECOVERY
11/15/202247第十章数据库恢复技术使用RESTORE命令还原数据库还原整个数据库11/10/还原文件和文件组library数据库创建在lib1、lib2和lib3文件上。Lib2备份在lib2bk备份文件上。该数据库的日志备份在liblog备份设备上,现在lib2数据文件坏了,可以通过下述命令将它恢复: RESTORE
DATABASE
library
FILE
=lib2 FROM
lib2bk
WITHNORECOVERY
GO RESTORE
LOG
library FROM
liblog
WITHRECOVERY11/15/202248第十章数据库恢复技术还原文件和文件组library数据库创建在lib1、lib210.7.3备份和还原的策略还原模型备份类型全数据库数据库差异事务日志文件或文件差异简单必需可选不允许不允许完全必需可选必需可选大容量日志记录必需可选必需可选11/15/202249第十章数据库恢复技术10.7.3备份和还原的策略还原模型备份类型全数据库数1.你备份SQLServer数据的理由有哪些?A.崩溃恢复。 C.将数据从一种处理器结构转移到另一种。B.数据的历史档案。D.将数据从一个服务器转移到另一个。2.建立备份并且从中恢复的备份设备类型有哪些?A.磁带设备 B.空设备C.命名管理设备D.本地磁盘设备3.SQLServer备份是动态备份,对于一名系统管理员,这意味着什么?A.你不必计划备份工作;SQLServer会自动地为你完成。B.当用户使用数据库的时候,你可以备份它,只不过性能上有点影响。C.备份和恢复过程会在必要的时候发生,而无需用户干预。D.动态备份是事务日志过程,并且这个过程是不断地运行的。思考题11/15/202250第十章数据库恢复技术1.你备份SQLServer数据的理由有哪些?思考题114.假设你是一个包含着联机事务处理数据库的SQLServer的管理员。数据库每天24小时运转。将全部数据库备份到磁带大约要花费4个小时;事务日志备份到磁带大约需20分钟。主要目的:建立数据库备份结构,允许1小时的数据损失。次要目的:允许数据库在一定的情况下及时被恢复,允许用户在高峰使用期间以一种有效的方式继续工作。请问,下列哪种建议方案可达到主要目的和次要目的。A.每天执行4次数据库的完全备份。B.非高峰使用的小时内执行数据库的完全备份,每小时进行一次把事务日志备份到磁带的操作。C.非高峰使用的小时内执行数据库的完全备份。每小时进行一次把事务日志备份到磁盘的操作。11/15/202251第十章数据库恢复技术4.假设你是一个包含着联机事务处理数据库的SQLSer5、SQLServer现在有三种方法备份数据库中的数据,分别是【】备份、【】备份和【】备份。6、下列哪项不是你应该定期维护的SQLServer数据库备份? ①msdb ②master ③distribtion ④Tempdb7、下列哪条命令是对library数据库进行增量备份。 ①BACKUPDATABASElibrarytoNw1WITHINIT ②BACKUPDATABASElibraryFILE=lib2TOlibrarybk ③BACKUPLOGlibraryTOnwlogWITHNOINIT ④BACKUPDATABASElibraryTODISK= 'e:\xcm\nwdiff.bak'WITHNOINIT,DIFFERENTIAL11/15/202252第十章数据库恢复技术5、SQLServer现在有三种方法备份数据库中的数据,分第十章数据库恢复技术10.1事务的基本概念10.2数据库恢复概述10.3恢复的实现10.4恢复策略10.5具有检查点的恢复技术10.6数据库镜像10.7SQLServer的恢复技术11/15/202253第十章数据库恢复技术第十章数据库恢复技术10.1事务的基本概念11/110.1事务的基本概念什么是事务?事务的基本操作与状态系统赋予事务的特性11/15/202254第十章数据库恢复技术10.1事务的基本概念什么是事务?11/10/202210.1.1什么是事务?典型事务,如银行转帐:帐户A–10000元;帐户B+10000元。Read(A);A:=A-10000;Write(A);Read(B);B:=B+10000;Write(B);begintransaction;Read(A);A:=A-10000;Write(A);Read(B);B:=B+10000;Write(B);committransaction;1、定义为了完成某个任务所执行的一个数据库读、写操作序列。2、显式定义方式
BEGINTRANSACTIONSQL语句1SQL语句2。。。。。
COMMIT(或ROLLBACK)3、隐式方式当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务。11/15/202255第十章数据库恢复技术10.1.1什么是事务?典型事务,如银行转帐:Read(10.1.2事务的基本操作与状态1)事务开始(begintransaction):开始执行。2)事务读写(read/write):进行数据库操作。3)事务结束(endtransaction):完成所有操作。4)事务交付(commit):完成所有操作,并保存所有结果。5)事务撤消(rollback):执行途中出现异常,系统或用户撤消事务。活跃部分交付交付撤消终止事务开始事务结束交付撤消读写操作事务的起点事务的终点11/15/202256第十章数据库恢复技术10.1.2事务的基本操作与状态1)事务开始(begin10.1.3系统赋予事务的特性(ACID)为了保证事务并发、有效、正确地执行,保证数据库的正确性,系统必须赋予事务一些特性。1)原子性(Atomicity):最基本特性 事务的所有操作要么全部完成,要么均不执行。原子性在于保证正确性。由DBMS的恢复子系统来保证原子性。2)一致性(Consistency):事务必须将数据库从一种一致状态转换为另一种一致状态。由DBMS和程序开发者共同保证数据库的一致性。3)隔离性(Isolation):任何事务不能访问到其他未交付事务的中间结果。由DBMS的并发控制子系统来保证事务的隔离性。4)持久性(Durability):保证已交付事务的结果不丢失,且与以后的故障无关。由DBMS的恢复子系统负责确保事务的持久性。11/15/202257第十章数据库恢复技术10.1.3系统赋予事务的特性(ACID)为了10.2数据库恢复概述1、引入“恢复”技术的原因事务故障、系统故障、介质故障计算机病毒2、恢复的基本原理冗余3、恢复的含义所谓数据库的恢复就是利用存储在系统其他地方的冗余数据来修复数据库中被破坏的或不正确的数据,使数据库从错误状态恢复到某一已知的正确状态。(1)数据库本身被破坏(2)数据库没有被破坏,但数据可能不正确11/15/202258第十章数据库恢复技术10.2数据库恢复概述1、引入“恢复”技术的原因(1)10.3恢复的实现技术恢复机制涉及的两个关键问题:如何建立冗余数据如何利用冗余数据实施数据库恢复数据转储登记日志文件不同故障的恢复策略有所不同11/15/202259第十章数据库恢复技术10.3恢复的实现技术恢复机制涉及的两个关键问题:数据转10.3.1数据转储1、含义DBA定期地将整个数据库复制到磁带或另一个磁盘上形成后备副本保存起来的过程。2、利用转储方法进行恢复的过程3、转储状态静态转储动态转储4、转储方式海量转储增量转储
TaTbTf正常运行转储运行事务故障发生点重装后备副本重新运行事务恢复11/15/202260第十章数据库恢复技术10.3.1数据转储1、含义TaTbTf正常运行转储运行10.3.2登记日志文件日志文件的格式和内容日志文件的作用登记日志文件11/15/202261第十章数据库恢复技术10.3.2登记日志文件日志文件的格式和内容11/1一、日志文件的格式和内容什么是日志文件日志文件(log)是用来记录事务对数据库的更新操作的文件。日志文件的格式以记录为单位的日志文件以数据块为单位的日志文件11/15/202262第十章数据库恢复技术一、日志文件的格式和内容什么是日志文件11/10/20221日志文件的格式和内容(续)以记录为单位的日志文件内容各个事务的开始标记(BEGINTRANSACTION)各个事务的结束标记(COMMIT或ROLLBACK)各个事务的所有更新操作以上均作为日志文件中的一个日志记录(logrecord)每条日志记录的内容事务标识(标明是哪个事务)操作类型(插入、删除或修改)操作对象(记录内部标识)更新前数据的旧值(对插入操作而言,此项为空值)更新后数据的新值(对删除操作而言,此项为空值)11/15/202263第十章数据库恢复技术日志文件的格式和内容(续)以记录为单位的日志文件内容11/1日志文件的格式和内容(续)以数据块为单位的日志文件,每条日志记录的内容事务标识(标明是那个事务)被更新的数据块11/15/202264第十章数据库恢复技术日志文件的格式和内容(续)以数据块为单位的日志文件,每条日志二、日志文件的作用进行事务故障恢复进行系统故障恢复协助后备副本进行介质故障恢复11/15/202265第十章数据库恢复技术二、日志文件的作用进行事务故障恢复11/10/20221利用静态转储副本和日志文件进行恢复TaTbTf正常运行转储运行事务故障发生点登记日志文件重装后备副本利用日志文件恢复事务恢复登记日志文件继续运行11/15/202266第十章数据库恢复技术利用静态转储副本和日志文件进行恢复TaTbTf正常运行转储运三、登记日志文件基本原则登记的次序严格按并行事务执行的时间次序必须先写日志文件,后写数据库写日志文件操作:把表示这个修改的日志记录写到日志文件写数据库操作:把对数据的修改写到数据库中11/15/202267第十章数据库恢复技术三、登记日志文件基本原则11/10/202215第十章数10.4恢复策略事务分类基本的恢复操作不同故障的恢复策略11/15/202268第十章数据库恢复技术10.4恢复策略事务分类11/10/202216第十章10.4.1事务分类圆满事务指日志文件中记录了事务的commit标识,说明日志中已经完整地记录下事务所有的更新活动。夭折事务指日志文件中只有事务的开始标识,而无commit标识,说明对事务更新活动的记录是不完整的,无法根据日志来重现事务。为保证事务的原子性,应该撤销这样的事务。11/15/202269第十章数据库恢复技术10.4.1事务分类圆满事务11/10/202217第十10.4.2基本的恢复操作:Redo和UndoRedo和Undo是针对事务的某一次更新操作。Redo是重新执行这次操作。其处理的方法是,正向扫描日志文件,将日志记录中“更新后的值”重新写入数据库。Undo是消除这次操作的影响,将事务执行点回退到这次操作之前。其处理的方法是,反向扫描日志文件,将日志记录中“更新前的值”重新写入数据库。在利用日志文件进行恢复的过程中,对已结束的事务中的更新操作进行Redo,对未结束的事务中的更新操作进行Undo。11/15/202270第十章数据库恢复技术10.4.2基本的恢复操作:Redo和UndoRedo和10.4.3不同故障的恢复策略事务故障的恢复系统故障的恢复介质故障的恢复11/15/202271第十章数据库恢复技术10.4.3不同故障的恢复策略事务故障的恢复11/1思考题在SQL语言中,定义事务控制的语句主要有________、________和________。事务具有四个特性:它们是___、____、____和____。这个四个特性也简称为_____特性。_______和_______是数据库恢复的基本技术。如何进行事务故障的恢复?系统故障的恢复?介质故障恢复?11/15/202272第十章数据库恢复技术思考题在SQL语言中,定义事务控制的语句主要有_______10.5具有检查点的恢复技术问题的提出检查点技术利用检查点的恢复策略11/15/202273第十章数据库恢复技术10.5具有检查点的恢复技术问题的提出11/10/210.5.1问题的提出两个问题搜索整个日志将耗费大量的时间REDO处理:重新执行,浪费了大量时间11/15/202274第十章数据库恢复技术10.5.1问题的提出两个问题11/10/202222第解决方案具有检查点(checkpoint)的恢复技术在日志文件中增加检查点记录(checkpoint)增加重新开始文件恢复子系统在登录日志文件期间动态地维护日志11/15/202275第十章数据库恢复技术解决方案具有检查点(checkpoint)的恢复技术11/110.5.2检查点技术检查点记录的内容1.建立检查点时刻所有正在执行的事务清单2.这些事务最近一个日志记录的地址重新开始文件的内容记录各个检查点记录在日志文件中的地址11/15/202276第十章数据库恢复技术10.5.2检查点技术检查点记录的内容11/10/202动态维护日志文件的方法动态维护日志文件的方法周期性地执行如下操作:建立检查点,保存数据库状态。具体步骤是:1.将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上2.在日志文件中写入一个检查点记录3.将当前数据缓冲区的所有数据记录写入磁盘的数据库中4.把检查点记录在日志文件中的地址写入一个重新开始文件11/15/202277第十章数据库恢复技术动态维护日志文件的方法动态维护日志文件的方法11/10/20建立检查点恢复子系统可以定期或不定期地建立检查点,保存数据库状态定期按照预定的一个时间间隔,如每隔一小时建立一个检查点不定期按照某种规则,如日志文件已写满一半建立一个检查点11/15/202278第十章数据库恢复技术建立检查点恢复子系统可以定期或不定期地建立检查点,保存数据库10.5.3利用检查点的恢复策略Tc(检查点)Tf(系统故障)UNDOUNDO
REDO
REDOT2T3T4T5不要REDOT111/15/202279第十章数据库恢复技术10.5.3利用检查点的恢复策略Tc(检查点)Tf利用检查点的恢复步骤1.从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。2.由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST建立两个事务队列UNDO-LISTREDO-LIST把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空。11/15/202280第十章数据库恢复技术利用检查点的恢复步骤1.从重新开始文件中找到最后一个检查利用检查点的恢复策略(续)3.从检查点开始正向扫描日志文件,直到日志文件结束如有新开始的事务Ti,把Ti暂时放入UNDO-LIST队列如有提交的事务Tj,把Tj从UNDO-LIST队列移到REDO-LIST队列4.对UNDO-LIST中的每个事务执行UNDO操作对REDO-LIST中的每个事务执行REDO操作11/15/202281第十章数据库恢复技术利用检查点的恢复策略(续)3.从检查点开始正向扫描日志文件,10.6数据库镜像介质故障是对系统影响最为严重的一种故障,严重影响数据库的可用性介质故障恢复比较费时为预防介质故障,DBA必须周期性地转储数据库提高数据库可用性的解决方案数据库镜像(Mirror)11/15/202282第十章数据库恢复技术10.6数据库镜像介质故障是对系统影响最为严重的一种故障数据库镜像技术什么是数据库镜像数据库镜像即根据DBA的要求,DBMS自动把整个数据库或其中的关键数据复制到另一个磁盘上,每当主数据库更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据库的一致性。11/15/202283第十章数据库恢复技术数据库镜像技术什么是数据库镜像11/10/202231第十章数据库镜像(续)11/15/202284第十章数据库恢复技术数据库镜像(续)11/10/202232第十章数据库恢复数据库镜像的用途出现介质故障时可由镜像磁盘继续提供使用同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本11/15/202285第十章数据库恢复技术数据库镜像的用途出现介质故障时11/10/202233第十章数据库镜像存在的问题及解决办法存在的问题频繁地复制数据自然会降低系统运行效率解决办法只选择对关键数据和日志文件镜像,而不是对整个数据库进行镜像11/15/202286第十章数据库恢复技术数据库镜像存在的问题及解决办法存在的问题11/10/2022设有四个事务T1、T2、T3、T4,它们的操作定义如下:在系统崩溃之前系统在日志中记录了如下内容:T1T2T3T4read_item(A)read_item(D)write_item(D)read_item(B)write_item(B)read_item(D)write_item(D)read_item(A)write_item(A)read_item(C)write_item(C)read_item(B)write_item(B)read_item(A)write_item(A)[begin_transaction,T1][read_item,T1,A][read_item,T1,D][write_item,T1,D,20][commit,T1][checkpoint][begin_transaction,T2][read_item,T2,B][write_item,T2,B,12][begin_transaction,T4][read_item,T4,B][write_item,T4,B,15]
[begin_transaction,T3][read_item,T3,A][write_item,T3,A,30][read_item,T4,A][write_item,T4,A,20][commit,T4][read_item,T2,D][write_item,T2,D,25]如果系统采用立即修改的恢复技术和检查点机制,当系统重启后,哪些事务需要回退?哪些操作需要Redo?哪些操作需要Undo?是否会出现事务嵌套回退的情形?11/15/202287第十章数据库恢复技术设有四个事务T1、T2、T3、T4,它们的操作定义如下:在系10.7SQLServer的恢复技术10.7.1备份数据库10.7.2还原数据库10.7.3备份和还原的策略11/15/202288第十章数据库恢复技术10.7SQLServer的恢复技术10.7.110.7.1备份数据库SQLServer数据备份的特点SQLServer数据库备份的类型创建和管理备份设备备份数据库11/15/202289第十章数据库恢复技术10.7.1备份数据库SQLServer数据备份一、SQLServer数据备份的特点SQLServer支持在线备份备份工作由数据库管理员来完成11/15/202290第十章数据库恢复技术一、SQLServer数据备份的特点SQLServe二、SQLServer数据库备份的类型全数据库备份事务日志备份增量备份(差异备份)文件和文件组备份11/15/202291第十章数据库恢复技术二、SQLServer数据库备份的类型全数据库备份1三、创建和管理备份设备备份设备是SQLServer用来存储数据库、事务日志或文件和文件组备份的存储介质。备份设备可以是本地机器上的磁盘文件、远端服务器上的磁盘文件、磁带以及命名管道。创建一个备份设备时,要给它一个逻辑名称和一个物理名称。例如:设备类型逻辑名称物理名称本地磁盘DB_BACKUP_DISKD:\BACKUPS\DBBACKUP01.BAK网络磁盘TL_BACKUP_SQLBACK\\SQLBACK\BACKUPS\TLBACKUP.BAK磁带TAPE_BACKUP\\.\TAPE0命名管道NP_BACKUP\\SQLBACK\PIPE\SQL\BACKUP11/15/202292第十章数据库恢复技术三、创建和管理备份设备备份设备是SQLServer用来存创建备份设备使用企业管理器使用系统存储过程sp_addumpdevice
sp_addumpdevice[@devtype=]'device_type',[@logicalname=]'logical_name',[@physicalname=]'physical_name'[,{[@cntrltype=]controller_type|[@devstatus=]'device_status'}]创建备份设备时,返回0表示创建成功,返回1表示创建失败。
disk、pipe、tape11/15/202293第十章数据库恢复技术创建备份设备使用企业管理器disk、pipe、tape11示例例1:创建一个磁盘备份设备:EXECsp_addumpdevice 'disk','student_full','d:\xcm\student.bak'例2:创建一个磁带备份设备:EXECsp_addumpdevice'tape','tapedump1','\\.\tape0'11/15/202294第十章数据库恢复技术示例例1:创建一个磁盘备份设备:11/10/202242第十管理备份设备列出备份设备使用企业管理器使用sp_helpdevice系统存储过程删除一个备份设备使用企业管理器使用SP_DROPDEVICE系统存储过程SP_dropdevicelogicalname[,DELFILE]11/15/202295第十章数据库恢复技术管理备份设备列出备份设备11/10/202243第十章数四、备份数据库备份的内容master数据库msdb数据库model数据库distribution数据库所有的用户数据库使用企业管理器来备份数据库数据库所有任务备份数据库使用备份语句BACKUP来备份数据库11/15/202296第十章数据库恢复技术四、备份数据库备份的内容11/10/202244第十章使用BACKUP来备份数据库完全备份BACKUP
DATABASE
studentTO
student_full
WITHINIT
增量备份(差异备份)BACKUP
DATABASE
studentTO
DISK=‘d:\xm\student_diff.bak
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湘教新版必修3历史上册阶段测试试卷含答案
- 二零二五版苗木种植基地土地租赁合同8篇
- 2025年华师大版九年级历史下册月考试卷含答案
- 二零二五版交通事故责任认定与赔偿调解及服务合同3篇
- 2025年度墓地转卖及墓园物业管理合同4篇
- 二零二五年度苗圃场租赁与农业信息化建设合同4篇
- 二零二五年度出租车企业财务审计服务合同3篇
- 二零二五出租车客运服务承包经营合同范本7篇
- 二零二五年度农业合作社农村电商平台运营合同样本4篇
- 二零二五版面粉行业供应链金融服务合同3篇
- 人口老龄化背景下居民养老金融资产配置影响因素研究
- 小学四年级数学竞赛试题(附答案)
- 鲁科版高中化学必修2全册教案
- 人口分布 高一地理下学期人教版 必修第二册
- 子宫内膜异位症诊疗指南
- 教案:第三章 公共管理职能(《公共管理学》课程)
- 诺和关怀俱乐部对外介绍
- 玩转数和形课件
- 保定市县级地图PPT可编辑矢量行政区划(河北省)
- 新苏教版科学六年级下册全册教案(含反思)
- 天然饮用山泉水项目投资规划建设方案
评论
0/150
提交评论