10数据库的备份与恢复

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第10讲数据库的备份与恢复数据库技术进行数据的备份是数据库的日常维护工作之一。问题的提出:数据库系统出现故障后,如何把数据库从错误状态恢复到正确状态?恢复技术:数据库备份+日志文件1、事务的概念(Transaction)所谓事务是用户定义的一个数据库操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。在关系数据库中,事务可以是一条SQL语句、一组SQL语句。在SQL语言中,定义事务的语句有三条:BeginTransaction开始Commit结束Rollbackbegintransactionselect*fromteacher;updateteachersettitle=nullwheretno=101;select*fromteacher;rollback;select*fromteacher;事务特性(ACID)–原子性(Atomicity)事务中包含的所有操作要么全做,要么全不做。–一致性(Consistency)事务的隔离执行必须保证数据库的一致性。事务开始前,数据库处于一致性的状态;事务结束后,数据库必须仍处于一致性状态。–隔离性(Isolation)系统必须保证事务不受其它并发执行事务的影响。对任何一对事务T1,T2,在T1看来,T2要么在T1开始之前已经结束,要么在T1完成之后再开始执行。隔离性通过并发控制机制实现。–持久性(Durability)一个事务一旦提交之后,它对数据库的影响必须是永久的。事务状态活动状态失败状态部分提交状态提交状态中止状态初始状态事务无法继续正常执行事务回滚,数据库恢复到事务开始前状态最后一条语句被执行后成功完成,永久写入数据库2、日志文件日志文件的格式和内容日志文件是用来记录事务对数据库的更新操作的文件。不同数据库系统采用的日志文件格式并不完全一样。每个日志记录的内容主要包括:事务标识(标明是哪个事务)操作的类型(插入、删除或修改)操作对象(记录内部标识)更新前数据的旧值(对插入操作而言,此项为空值)更新后数据的新值(对删除操作而,此项为空值)日志文件的作用:正常运行登记日志文件故障点数据库恢复利用日志文件恢复事务继续运行登记日志文件登记日志文件(Logging)原则:登记的次序严格按事务执行的时间次序。必须先写日志,后写数据库。3、恢复策略事务故障的恢复指事务在运行至正常终点前被终止。a.反向扫描日志文件,查找该事务的更新操作。b.对该事务的更新操作执行逆操作。说明:事务故障的恢复由系统自动完成。系统故障的恢复a.正向扫描日志文件,找出故障发生前已提交的事务,将其放入重做(REDO)队列;找出故障发生前未提交的事务,将其放入撤消(UNDO)队列。b.对撤消(UNDO)队列中的事务进行撤消处理。c.对重做(REDO)队列中的事务进行重做处理。介质故障的恢复a.装入数据库备份和日志文件备份。b.重做已完成的事务。具有检查点(checkpoint)的恢复技术问题的提出:在执行恢复操作时,需要扫描整个日志文件,有可能重复执行某些操作。检查点的用途是在磁盘上建立事务处理一致性的标志。技术原理:在日志文件中增加一类新记录,检查点;增加一个重新开始文件;恢复子系统动态维护日志。恢复子系统可以定期或不定期地建立检查点保存数据库状态。检查点可以按照预定的一个时间间隔建立。如,每隔一小时建立一个检查点;也可以按照某种规则建立检查点,如日志文件已写满一半建立一个检查点。使用检查点方法可以改善恢复效率。当事务T在一个检查点之前提交,T对数据库所做的修改一定都已写入数据库,写入时间是在这个检查点建立之前或在这个检查点建立之时。这样,在进行恢复处理时,没有必要对事务T执行Redo操作。检查点故障点REDO撤消-定义●恢复是把数据库从错误状态恢复到某一正确状态的功能,从而确保数据库的一致性。●恢复的基本原理是冗余,即数据库中任一部分的数据可以根据存储在系统别处的冗余数据来重建。-日志●日志文件是用来记录数据库的每一次更新活动的文件,由系统自动记录。●日志内容包括:记录名、旧记录值、新记录值、事务标识符、操作标识符等。数据库恢复(小结)–基本的恢复操作:对圆满事务所做过的修改操作应执行redo操作,即重新执行该操作,修改对象被赋予新记录值。对夭折事务所做过的修改操作应执行undo操作,即撤消该操作,修改对象被赋予旧记录值。–先写日志的原则(WAL)对于尚未提交的事务,在将DB缓冲区写到外存之前,必须先将日志缓冲区内容写到外存去。如果先写DB,则可能在写的中途发生系统崩溃,导致内存缓冲区内容丢失,而外存DB处于不一致状态,由于日志缓冲区内容已破坏,导致无法对DB恢复。日志记录将要发生何种修改。写入DB表示实际发生何种修改。服务器容错技术:磁盘镜像,双机备份,双机磁盘阵列服务器服务器服务器服务器服务器RAIDRAID(磁盘阵列:RedundantArrayofInexpensiveDisk,简称RAID技术)。它是1988年由美国加州大学Berkeley分校的DavidPatterson教授等人提出来的磁盘冗余技术。从那时起,磁盘阵列技术发展得很快,并逐步走向成熟。RAID0(0级磁盘阵列)RAID0又称数据分块,即把数据分布在多个盘上,没有容错措施。其容量和数据传输率是单机容量的N倍,N为构成磁盘阵列的磁盘机的总数,I/O传输速率高,但平均无故障时间MTTF(MeanTimeToFailure)只有单台磁盘机的N分之一,因此零级磁盘阵列的可靠性最差。RAIDl(1级磁盘阵列)RAIDl又称镜像(Mirror)盘,采用镜像容错来提高可靠性。即每一个工作盘都有一个镜像盘,每次写数据时必须同时写入镜像盘,读数据时只从工作盘读出。一旦工作盘发生故障立即转入镜像盘,从镜像盘中读出数据,然后由系统再恢复工作盘正确数据。因此这种方式的数据可以重构,但工作盘和镜像盘必须保持一一对应关系。这种磁盘阵列可靠性很高,但其有效容量减小到总容量一半以下。因此RAIDl常用于对出错率要求极严的应用场合,如财政、金融等领域。RAID2(2级磁盘阵列)RAID2又称位交叉,采用汉明码作盘错检验,无需在每个扇区之后进行CRC(CyclicRedundancyCheck)检验。汉明码是一种(n,k)线性分组码,n为码字的长度,k为数据的位数,r为用于检验的位数。因此按位交叉存取最有利于作汉明码检验。这种盘适于大数据的读写。但冗余信息开销还是太大,阻止了这类盘的广泛应用。RAID3(3级磁盘阵列)RAID3为单盘容错并行传输阵列盘。它的特点是将检验盘减小为一个(RAID2校验盘为多个,RAIDl检验盘为1比1),数据以位或字节的方式存于各盘。它的优点是整个阵列的带宽可以充分利用,传输时间减小;其缺点是每次读写要牵动整个组,每次只能完成一次I/O。RAID4(4级磁盘阵列)RAID4是一种可独立地对组内各盘进行读写的阵列。其校验盘也只有一个。RAID4和RAID3的区别是:RAID3是按位或按字节交叉存取,而RAID4是按块(扇区)存取,可以单独地对某个盘进行操作。不像RAID3那样,每一次小I/O操作也要涉及全组,RAID4只需涉及组中两台磁盘机(一台数据盘,一台检验盘)即可,从而提高了小量数据的I/O速率。RAID5(5级磁盘阵列)RAID5是一种旋转奇偶校验独立存取的阵列。它和RAID1、2、3、4各磁盘阵列的不同点是它没有固定的校验盘,而是按某种规则把其冗余的奇偶校验信息均匀地分布在阵列所属的所有磁盘上,于是在同一台磁盘机上既有数据信息也有校验信息。这一改变解决了争用校验盘的问题,因此DAID5内允许在同一组内并发进行多个写操作。所以RAID5既适于大数据量的操作,也适于各种事务处理。它是一种快速、大容量和容错分布合理的磁盘阵列。注意:工业上很少销售RAID2,4。这些级别的校验信息的数学计算量太大而不实用。对于RAID3,校验盘是一个单一故障点,如果它丢失,将是致命的。RAID5能够在丢失单个盘时恢复数据,但它和RAID3一样,都不能恢复2个磁盘的丢失。RAID6和RAID5非常相似,但是存储了额外的冗余信息,以防止多个磁盘发生故障,可以容忍2个磁盘同时发生故障。SQLServer2000的备份与恢复利用EnterpriseManager备份策略包括:备份的内容,备份的频率,备份的存储介质。完整备份增量备份日志备份磁盘磁带

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功