• 1.04 MB
  • 2022-04-22 13:37:49 发布

容灾数据库备份与恢复功能系统设计与实现毕业了论文.doc

  • 43页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'容灾数据库备份与恢复功能系统设计与实现毕业了论文目录摘要iiiAbstractiv第一章绪论11.1国内外研究动态11.2容灾备份系统的现状分析1第二章数据库备份方案32.1备份文件32.1.1定义32.1.2主要的内容42.1.3优先级别42.1.4文件之间的转化42.2备份恢复方案42.2.1备份恢复的分类52.2.2备份方案的介绍52.3数据库的备份策略52.3.1概述5第三章备份与恢复功能设计与实现63.1冷备份(脱机备份)63.1.1定义63.1.2优点与缺点63.1.3步骤63.1.4备份恢复功能设计与实现83.2热备份恢复(联机备份恢复)103.2.1定义103.2.2优点与缺点103.2.3备份设计与实现10第四章总结38 参考文献39谢辞40 第一章绪论1.1国内外研究动态当今的信息时代,数据在现代企业中占有重要的地位,数据安全性就显得尤为重要。随着企业规模的扩展,用户早已认识到保证信息系统的安全不间断工作成为各个行业信息化建设的重要关注点。而且近年来频繁出现的自然灾害或者突发事件也让人们越来越多的注意到,原有意识中的数据备份已经无法满足关键业务对系统的可用性、实时性、安全性的需要。这时,异地容灾解决方案的出现则可通过在不同地点建立备份系统,从而进一步提数据抵抗各种可能安全因素的容灾能力。美国是一个信息技术非常发达的国家,因此很早就有了很高的灾备意识,像美国政府就发布规定:要求所有政府、金融和医疗等机构都必须建立备份数据中心,以确保在遭受恐怖主义攻击、军事打击或自然灾害之后,能够实现快速重建。我国是一个信息产业发展比较晚的国家,但也一直在学习国外的先进经验,颁布了一系列法律法规来规范灾备市场的发展,例如像信息系统灾难恢复规范中就将灾备划分为6个等级。1.2容灾备份系统的现状分析伴随着IT信息化的推进,组织运营对IT系统的依赖度越来越高,IT系统的可持续化运行,以及IT系统中数据的安全性,已经是对组织运营风险控制产生重大影响。而容灾正是这样一门技术和方案,它可提供一个防止IT系统遭受各种灾难影响破坏的保护系统,为IT系统的可持续化运行和数据安全提供一道保护屏障。而且近年来频繁出现的自然灾害或者突发事件也让人们越来越多的注意到,原有意识中的数据备份已经无法满足关键业务对系统的可用性、实时性、安全性的需要。这时,异地容灾解决方案的出现则可通过在不同地点建立备份系统,从而进一步提数据抵抗各种可能安全因素的容灾能力。 针对这一应用需求,市场上纷纷推出基于SAN的异地容灾软、硬件产品,希望能够为用户提供整套以SAN网络环境和异地实时备份为基础的,高效、可靠的异地容灾解决方案,并且能够为用户提供支持各种操作系统平台、数据库应用和网络应用的系统容灾服务。而本文主要介绍的是Oracle公司的容灾技术。随着Oracle数据库的逐步发展,Oracle数据库被使用于各行各业,使用Oracle数据库的大型公司也随之不断的增加,因而对于Oracle数据库的安全性,人们也有了新的担忧和考虑,因此Oracle数据库备份和恢复技术的研究在国内外如雨后春笋,迅速的不断发展。但是,如果这时发生不可预测的自然灾害以及突发事件,导致整个数据保护体系崩溃时,将给企业带来毁灭性打击。如果企业对数据安全要求很高,就应该搭建容灾系统。 第二章数据库备份方案2.1备份文件2.1.1定义参数文件:记录数据库的系统配置文件,每当数据库启动,Oracle自动地从参数文件中读取系统参数设置来配置启动数据库。如内存池的分配,允许打开的进程数和会话数等。控制文件:控制文件是二进制文件,数据库的结构、数据文件和日志文件的一些信息都包含在其中。控制文件并不大,但是它在数据空中最重要的文件,只有数据库进程才可以对控制文件的内容进行更新,控制文件内容主要包括数据库的名称(sid),位置,联机、脱机的状态,RedoLogFile的名称和位置,每个表空间名称,归档日志文件的信息,检查点(CheckPoint)信息,重做信息,rman备份信息等等。数据文件:用来存放数据的文件,每个数据库一定是至少含有一个数据文件(system01.dbf),若存在多个数据文件,应该分别存放于不同的磁盘上,这样做不仅能提高数据的存取速度,有利于提高数据库的性能,而且还能高度容灾。重做日志文件:数据库日志文件包括归档的日志和在线的日志,当数据库被修改是,就会记录在这些文件当中。Oracle数据库必须至少包含两组在线日志,在线日志可以循环使用,当正在写的在线日志被写满后,就会切换到另一组在线日志,后者的内容会被覆盖,这个过程叫作日志切换(LogSwitch),在日志切换时会自动触发检查点(CheckPoint),使内存中的数据写到数据文件当中。如果数据库执行了DML语句,就会被记录到日志文件中,并且记录动作是在改变数据前进行的,正是因为日志文件记录了数据库所有的修改操作,因此假如有过去某时间点的备份文件,并且有从备份时间点到现在时间点的所有日志文件,就可以通过在备份文件上“重做”这些日志的方式,把数据文件恢复到当前状态或者当中的任何时点的状态。 为了达到防止日志组文件失效的目的,应该对每一个日志组中的每一个日志文件做一份或多份镜像,每个日志组文件和它的备份镜像文件称为其日志组的成员。两个相同的成员应该分别存在不相同的磁盘上,这样做的目的是,可以避免磁盘因外部原因失效时,相同日志组的镜像日志一起失效。2.1.2主要的内容Pfile:系统的参数文件,可用vim,vi等编辑器进行修改,其文件名一般是init.oraSpfile:二进制参数文件,不能使用编辑器直接进行修改,只可以存放在Oracle的服务器上,可以使用EM网页或指令(altersystem|sessionsetparameter_name=values<>)来修改,文件名通常为Spfile.ora,支持RMAN备份。System01.dbf:记录系统运行的信息,包含所有的数据字典,PL/SQL程序代码及其他系统信息。Sysaux01.dbf:system01.dbf文件的辅助文件,存放数据库系统活动的工具,例如LogMiner。Undotbs01.dbf:存放系统运行时的回退信息,即DML操作后的旧数据信息。Users01.dbf:新建用户未指定存储空间时,默认数据存放的文件。Example01.dbf:存放事例数据信息。2.1.3优先级别Oracle启动读取参数文件的顺序,如果个文件都不存在,则Oracle会报错:spfile.ora-->spfile.ora-->init.ora2.1.4文件之间的转化从spfile来生成pfilecreatepfilefromspfile,执行完毕后,pfile将$ORACLE_HOME/dbs/init$ORACLE_SID.ora也可以指定pfile的路径:createpfile=‘’fromspfile由pfile生成spfilecreatespfilefrompfilecreatespfilefrompfile=‘’createspfile=‘’frompfile2.2备份恢复方案 2.2.1备份恢复的分类按照备份恢复的方式,可以分为逻辑备份、冷备份(脱机备份)、热备份,其中,热备份和冷备份合称为物理备份。按照备份的工具,可以分为EXP/IMP备份、操作系统备份RMAN、第三方工具备份,如VERITAS等。2.2.2备份方案的介绍逻辑备份是指只备份数据库中的数据但不记录数据物理位置的一种备份。导出为数据库作一个二进制的备份,并且这个备份只能由其姐妹程序imp来读取操作系统备份包括冷备份和热备份。操作系统备份和上面的逻辑备份有本质的区别,它将拷贝整个的数据文件。冷备份在文件级备份开始前数据库必须彻底关闭。热备份是当数据库打开时的操作系统备份。RecoveryManager(RMAN)是一个使DBA能很方便地对数据库执行备份和恢复任务的oracle应用工具,能够提供DBA对企业数据库备份与恢复操作的集中控制。2.3数据库的备份策略2.3.1概述争取的备份策略不仅能保证数据库服务器的7*24小时的高性能的运行,还能保证备份与恢复的快速性与可靠性。采用多级备份就是为了减少每天备份所需要的时间,而保证系统有良好的恢复性。恢复时间与备份时间要有一个权衡。比如只要进行一个数据库的全备份,然后就只备份归档也可以保证能把数据库恢复到最新的状态,但是这样的恢复时间将是不可容忍的。 第三章备份与恢复功能设计与实现3.1冷备份(脱机备份)3.1.1定义冷备份(脱机备份)是当数据库的一切可以被读取和写入的数据库物理文件(参数文件、控制文件,数据文件等)具有一样的系统改变号(SCN)时才能进行的数据库的一致性备份,数据库保持在同一状态的唯一方法是将数据库正常关闭,因此只在数据库正常关闭情况下的备份才算是一致性备份。冷备份既适用于archivelog模式,也适用于noarchivelog模式。3.1.2优点与缺点优点:快速并且相对简单的备份方法(因为仅仅需要拷贝文件)。容易恢复至某个时间点上(仅需将文件拷贝回去)。低度维护,高度安全。缺点:单独使用时,只能提供到“某一时间点上”的恢复。在冷备份过程中,数据库必须是关闭状态。3.1.3步骤(1)、查看数据库文件物理位置。 图2.1数据文件图2.2控制文件 图2.3日志文件图2.4参数文件(1)关闭运行的数据库。(2)备份参数文件,控制文件,数据文件,日志文件到指定目录下。3.1.4备份恢复功能设计与实现(1)建立测试表test,并且插入数据‘1’,恢复后,数据应该还是存在的图2.5创建测试表图2.6(2)关闭数据库,执行备份图2.7执行冷备份(3)插入另外一条数据‘2’,恢复时应该丢失的数据 图2.8插入验证信息(4)关闭数据库,删除所有的文件:数据文件,控制文件,参数文件,日志文件图2.9删除文件(5)启动数据库图2.10启动数据库(6)恢复冷备份的文件到各自的文件夹图2.11冷备份的恢复(7)验证冷备份的恢复,数据‘2’丢失,只有数据‘1’ ,备份后插入的数据不存在。图2.12验证恢复3.2热备份恢复(联机备份恢复)3.2.1定义数据库热备份是指数据库在启动运行的状态下,对数据库的控制文件、参数文件、数据文件等进行备份操作。热备份是用户管理备份恢复的一种方式,也是除了RMAN备份之外比较经常使用的一种备份方式。热备份仅仅适用于archivelog状态。3.2.2优点与缺点优点:可以在表空间或数据文件级备份,备份的时间短。备份时数据库仍可以使用。可达到秒级恢复(恢复到某一时间点上)缺点:不能出错,否则备份数据不可用。备份方法相对复杂,难于维护。3.2.3备份设计与实现冻结块头-->控制SCN在备份时不发生变化进行物理拷贝 解冻块头-->让SCN可以变化(当对SCN解冻后,系统会自动更新SCN至最新的状态)查看是否在自动归档模式:图2.13非归档模式如果不是则启动自动归档模式:图2.14启动归档模式 图2.15在线备份数据文件图2.16在线备份控制文件图2.17备份参数文件和重做日志归档文件完全恢复:(1)用户表空间数据文件受损A、查看数据库是否运行在归档模式,确保能把数据完全恢复,如果不是,则设置为自动归档模式图2.18归档模式 B、在用户表空间创建测试表,并且插入测试数据图2.19插入验证数据C、对users表空间数据文件进行热备份图2.20备份用户空间D、插入热备份后的另外一条数据,验证热备份完全恢复图2.21插入测试数据 E、关闭数据库,删除用户表空间文件,模拟出错图2.22模拟故障查表v$recover_file,用户数据文件需要恢复图2.23查看需要回复的数据文件如果实际中,数据库需要对外服务,但是用户数据文件尚未修复,可以选择先把数据文件离线再进行修复。图2.24离线数据文件 图2.25恢复离线的数据文件F、查看验证热备份的数据,确认是否完全恢复,重做数据文件到当前的时间点,确保备份后的数据还在,前提是要处于归档模式,切归档重做文件都没被删除图2.26查看热备份的效果(2)用户表空间数据文件受损且无备份的恢复第一种情况,先删除数据文件,在触发检查点 A、创建用户表空间做测试图2.27创建测试数据B、删除用户表空间,模拟故障,表格还在的原因是因为数据已经缓存到内存了,查找内容实际是在内存找图2.28模拟故障C、当触发检查点,内存数据会写盘,然而查找数据的话,没改变数据内容,写盘的时候不需要修改内容,故数据文件test.dbf不存在也不会报错,但是再查找表的内容的时候,要从磁盘读,因此发现了数据文件不存在图2.29数据文件故障 D、关闭系统,然后启动后发现,数据文件处于recover状态图2.30recover状态的数据文件E、创建丢失的数据文件,恢复文件的内容图2.31创建需要的文件图2.32查看数据文件状态 F、验证数据是否还是存在,数据还在的条件是,归档日志文件存在的时间要比表空间创建的时间要久远,才有重做日志文件支持完全恢复。图2.33验证恢复第二种情况:先触发检查点,在删除数据文件图2.34情况二 图2.34数据文件需要恢复图2.35恢复后的数据(3)System表空间数据文件或者大量数据文件受损A、对system表空间进行热备份图2.35热备份 B、删除system数据文件,模拟数据文件损坏图2.36删除数据文件C、把热备份的数据文件重新拷回去,恢复系统数据文件图2.37恢复数据文件(4)回滚文件损坏的恢复A、查看回滚表空间的相关信息(回滚文件可以在线删除)图2.38回滚表空间信息B、删除undo数据文件,启动数据库图2.39模拟故障 图2.40故障C、把回滚数据文件离线,启动数据库图2.41离线数据文件D、创建一个新的回滚表空间,并修改参数undo_tablespace,使undotbs1能成功删除图2.42创建回滚表空间图2.43创建修改回滚表空间 E、创建测试表test图2.44创建测试数据F、关闭数据库,发现数据库一直关闭不了,挂起了,查看警告文件图2.45关机挂起图2.46查看跟踪文件 G、启动数据库图2.47故障H、修改参数文件pfile,增加一行图2.48修改SPFILE图2.48启动数据库(5)临时文件损坏的修复A、当控制文件不需要重建的时候图2.49模拟故障 B、控制文件重建的时候,因为控制文件的创建不包含temp的路径,若创建时指定会报错,故在启动数据库后要手工绑定。图2.50模拟故障2图2.51查看临时表空间图2.52大查询图2.53手工创建临时表空间不完全恢复(1)基于time时间的恢复基于时间的恢复能将数据库通过不完全恢复,到过去的某一时间点,经常被用在误操作导致的删除数据,在备机上将数据库恢复至被删除时间点之前的状态,然后把该表导出到正式环境,以挽回丢失数据。A、建立测试表test,插入测试数据 图2.54创建测试数据表B、热备份除temp表空间以外所有的数据文件,虽然恢复的数据在users表空间,但是不完全恢复基于时间的恢复,所有的表空间数据文件都应该恢复到同一个时间点上,因此,需要备份所有数据文件。图2.55热备份所有文件 C、继续插入测试数据,热备份后的数据,如果仅仅恢复备份,数据应该不存在,查看数据丢失之前的时间点,用于不完全恢复的时间参考。图2.54继续创建测试数据D、删除测试数据表,关闭数据库,拷回热备份,启动到mount状态,根据时间点恢复。图2.55E、重新以resetlogs方式打开数据库,查看丢失数据是否存在。图2.56验证(2)基于改变scn的恢复基于改变scn号(systemchange number)的恢复可以将数据库不完全恢复到过去的某一个scm改变点,也常用于在误操作删除数据后,在备用机上将数据库恢复到删除scn之前,然后把表导出到正式的环境,挽回丢失的数据。图2.57图2.58 图2.59(3)控制文件损坏的恢复*单个控制文件被破坏由于数据库的三个控制文件都是相互备份的,因此,当损坏一个数据文件的时候,可以从另外的两个数据文件拷贝创建新的数据文件,名字相同即可。或者把pfile中控制文件的数量改变为两个,重新以pfile启动数据库图2.60 图2.61*多个控制文件被破坏在很多个控制文件都被破坏的情况下,如果没有对控制文件做备份,那么只能通过重建控制文件生成。在创建控制文件的时候,应该很清楚的了解到每一个数据文件,日志文件的具体位置,确保在重建数据文件之后,数据库的正确性,并且,在重建控制文件的时,是不包含temp01.dbf数据文件的,只能在打开数据库后,进行temp表空间的重新建立,以达到temp表空间的使用。图2.62 图2.63(4)日志文件损坏的恢复*正常关机情况下非当前联机日志文件被破坏 正常关闭DB时缓存均已写盘,且logfile已归档,故仅需clearlogfile重新生成丢失的非当前日志文件即可,无数据丢失;若日志未归档,必须加unarchived参数,才会允许重新生成日志文件,并标志所有备份失效,应该重做全备份。图2.64图2.65*正常关机情况下当前联机(或所有)日志文件被破坏 正常关闭DB时缓存均已写盘,且logfile已归档,因此仅需untilcancel取消系统查找当前联机日志,并且resetlogs重新生成对视的当前联机日志文件即可,无数据丢失。图2.66图2.67 *DB运行时或非正常关机的情况下已归档active日志文件被破坏图2.68系统suggestion提示文件正确即可回车确认使用该文件进行重做,提示错误则可手工输入filename使用指定文件进行重做,这两种重做都是单步进行的,重做完本归档或者日志文件后,又会继续提示指定用来重做的下一个归档或日志文件,而auto则自动寻找所有归档或日志文件进行重做,非单步进行,后续归档或日志文件的重做无提示等待确认图2.69 前一个归档或日志文件已经完成恢复重做,不再需要,且再次提示的用于后续恢复的归档文件是错误的而应该使用当前日志文件进行恢复,因此手工输入当前日志文件名进行恢复。因active日志已经被归档,因此oracle数据库可以到归档文件或者current日志文件中找到需要的数据,以进行实例恢复,次过程没有数据丢失,最后resetlogs用来重新生成已经丢失的归档active的日志文件。*DB运行时或非正常关机情况下未归档active或current日志文件被破坏图2.70图2.71 图2.72因active/current日志并没有被归档,所以数据库没办法到归档日志中找到需要数据进行数据库的实例恢复,数据文件在没有归档active或current日志文件上不一致,并且没办法使用已经丢失的没有归档文档active或当前日志文件把数据文件重做到一致的时间点上,只可以通过全备份进行不完全恢复,将所有数据文件时间点重做到最后一个可用日志文件中的最后一条重做记录处,其后丢失的未归档active或当前日志文件通过resetlogs重新生成而未进行重做,故有数据丢失,但数据仍一致的,所有数据文件均处于最后一个日志文件中最后一条重做记录所对应的时间点处。 *DB运行时或非正常关机情况下未归档active或current日志文件被破坏(无备份)图2.73图2.74 图2.75图2.76因current/active日志并没有归档,因此数据库没办法到归档日子文件中找到需要的数据进行实例恢复,数据文件在没有归档active或current当前日志文件上是不一致的,并且没有全备份重做恢复到相同的时间点上面,只能通过设置_allow_resetlogs_corruption=true隐含参数,并resetlogs重新生成丢失的未归档active或current日志文件,使数据库在不一致情况下启动以便备出数据,这种操作会有数据丢失。 第四章总结保证oracle数据库的安全是系统安全的重要组成部分,必须要设计完善的数据库备份和恢复方案。Oracle提供的各种工具结合起来使用能够使数据库的备份和恢复变得简单。在实际的oracle数据库的备份和恢复中,会有许多不同的和复杂的情况出现,针对不同的情况,要本着使数据具有最大的可恢复性和恢复时间最短的原则去进行数据库的恢复,这需要大量的实验和经验积累。 参考文献[1]ThomasKyte.ExpertOne-on-One[M].Apress,2003.8[2]BenjaminRosenzweig,ElenaSilvestrovaRakhimov.OraclePLSQL实例精解第4版[M].PrenticeHallPTR,2009.6[3]ThomasKyte.ExpertOracleDatabaseArchitecture2ndEdition[M].Apress,2010.7[4]Administrator"sGuide.oracle公司[5]BackupandRecoveryAdvancedUser"sGuide.oracle公司[6]BackupandRecoveryBasics.oracle公司[7]李丙洋.涂抹oracle--三思笔记之一步一步学oracle[M]中国水利水电出版社,2010.1[8]KarenMorton.OracleSQL高级编程[M].人民邮电出版社,2011.11[9]梁敬彬,梁敬弘.收获不止oracle[M].电子工业出版社,2013.5[10]盖国强.循序渐进oracle数据库管理、优化与备份恢复[M].人民邮电出版社,2011.8[11]LanAbramson,MicheaelAbbey,MichaelJ.Corey,窦朝辉.oracledatabase11g:初学者指南[M].清华大学出版社,2010-01[12]盖国强.oracledba手记3:数据库性能优化与内部原理解析[M].电子工业出版社,2011.9[13]KGopalakrishnan,贾洪峰,梁涛,郭绍明.oracledatabase11gRac手册[M].清华大学出版社,2012.6[14]JohnBeresniewicz,AdrianBillington,MartinBuchi.oraclePL/SQL实战[M].人民邮电出版社,2012.11[15]蒙邵良,oracledba高效入职指南[M].清华大学出版社,2012.1[16]郭郑州,陈军红.oracle完全学习手册[M].清华大学出版社,2011.1[17]包光磊.临危不惧:oracle11g数据库恢复技术[M].电子工业出版社,2012.7[18]RobertG.Freeman,MatthewHart,王念滨,陈子阳.oracledatabase11gRman备份与恢复[M].清华大学出版社,2011.4 [1]EdwardWhalen,陈曙晖.基于Linux平台的oracledatabase10g管理[M].清华大学出版社,2007.1[2]林树泽,历铁帅,何会军.oracle数据库管理之道[M].清华大学出版社,2012.7 谢辞论文工作接近尾声,本科学习生涯即将结束。我要感谢大学期间老师、同学们对我的帮助和指导,特别是在论文写作期间,谭敏生院长对我的论文指导跟审查,使我的论文得以顺利完成。最后我想谈谈这篇论文和系统存在的不足。这篇论文的写作以及修改过程,也是我认识到自己知识与经验缺乏的过程。虽然我尽可能地收集资料,竭尽所能运用自己所学的知识进行论文写作,但是我的论文还存在许多不足之处,有待改进。由于本人水平有限,对某些概念和方法的理解还不是很深刻,以致文章的阐述缺乏足够的说服力,请各位评委老师批评指正。通过这次论文的写作,我个人在信息检索、阅读写作、基础知识、沟通能力等方面都得到了一定程度的提高。这是我很欣慰的地方。但是,这篇论文的写作以及分析的过程,也是我越来越认识到自己知识与分析能力薄弱的过程。虽然,我尽可能地收集材料,竭尽所能运用自己所学的知识进行的论文写作和分析,但论文还是存在许多不足之处分析不透彻或者建议不具体,在以后的研究中还需要努力。所以请各位老师多批评指正,让我在今后的学习与工作中做到更好。'