14-RMAN管理的备份和恢复_第1页
14-RMAN管理的备份和恢复_第2页
14-RMAN管理的备份和恢复_第3页
14-RMAN管理的备份和恢复_第4页
14-RMAN管理的备份和恢复_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、手工备份恢复的缺点1、产生大量的重做日志2、需要手工记录大量的信息每个备份文件的位置、备份时间每个数据文件的位置等等Oracle提供了recovery manager工具,简称RMAN使得我们的备份工作极大的简化1、备份数据文件、归档日志、控制文件、spfile2、自动维护备份相关的元数据,例如备份文件的名称、完成备份的SCN号3、以数据块为单位进行备份,只备份使用过的数据块4、对备份出来的文件进行压缩5、自动检测数据块是否损坏6、支持增量备份等等配置RMANRMAN的体系结构RMAN可执行程序Recover.bsp目标数据库控制文件服务器进程Recovery catalog 数据库服务器进程

2、通道通道通道MML磁盘闪回恢复区磁带库1、RMAN要进行备份的数据库叫做目标数据库2、RMAN是一个客户端程序,需要建立到目标数据库的客户端连接,并在目标数据库上创建对应的服务器进程以及session,RMAN输入的各个命令,从客户端传递到服务器,由服务器进程负责执行,RMAN只能使用专用服务器连接,不能使用共享服务器连接3、备份过程中,RMAN读取目标数据库的控制文件,从而获得目标数据库里包含哪些数据文件、归档日志文件、以及各个检查点SCN,指导RMAN完成备份和恢复的具体操作4、RMAN获得了需要备份的文件列表以后,在将数据备份到备份介质上时,需要建立到这些备份介质的通道(channel)

3、。一旦建立通道。数据就会从该通道备份到指定的备份介质上,每次备份恢复,我们都可以创建多个通道以加快速度。5、RMAN将通道作为目标数据库上的服务器进程,会为每个通道都创建一个对应的服务器进程,同时,通道的类型就决定了要将数据库备份到哪种介质上,两种通道类型磁盘通道和磁带通道磁盘和闪回恢复区使用的都是磁盘通道磁带使用的磁带通道,需要借助MML(media management library),RMAN可以把备份的数据通过MML传递到磁带上6、RMAN备份过程中,会产生较多的服务器进程(RMAN客户端以及通道),需要的内存较多,对于初始化参数sessions和processes都要相应的增加7、

4、RMAN信息库(rman repository),RMAN备份过程中产生的元数据,包括备份文件的名称、路径、完成备份的时间、检查点SCN等数据,RMAN信息库可以存放在两个位置目标数据库的控制文件恢复目录(recovery catalog)8、控制文件里面存放的记录分为两类可删除的记录(归档日志文件的历史记录以及RMAN备份的元数据)不可删除记录(数据文件、联机日志文件列表等)如果需要在控制文件中存放新的记录,则可以删除那些可删除部分,从而提供可用空间,注意:如果RMAN备份的元数据被删除,RMAN的备份数据就失去意义,因此RMAN备份的元数据很重要9、可以通过设置初始化参数controlfi

5、le_record_keep_time来决定控制文件中可删除部分,该参数默认是7天,表示控制文件始终保持最近7天的可删除记录,7天前的备份信息、归档日志文件历史记录被删除,如果设置为0,表示不删除历史记录,那么控制文件的增长将会失控。因此RMAN的备份周期不能超过7天10、RMAN提供了恢复目录用来存放RMAN信息库,RMAN恢复目录由几个表和存储过程组成,这些对象存放在一个schema下面,因为表用来存放RMAN备份的元数据,因此可以永久的保留下去,而不需要删除历史记录11、RMAN恢复目录是可选的,不是必须的,元数据通过目标数据库的控制文件传递到恢复目录,RMAN的元数据始终都存放一份在目

6、标数据库的控制文件中,不会因为恢复目录的存在而删除,使用RMAN完成备份以后,会将控制文件的RMAN元数据同步到恢复目录,默认情况下,控制文件中的信息保留7天,恢复目录永久保留。RMAN还可以同时为多个目标数据库服务,在同一个恢复目录里面,可以保留多个目标数据库的RMAN元数据12、如果使用恢复目录,则在使用RMAN时,除了建立到目标数据库的连接以外,还必须建立到恢复目录所在数据库的连接,在恢复目录数据库里面创建对应的服务器进程和session13、RMAN工具本身由两部分组成RMAN可执行程序:这是一个命令接口,提供了交互的界面,能够解释我们的RMAN命令,返回结果。在工作中,完成的实质性工

7、作很少脚本文件recover.bsp:备份恢复的实质性工作是由目标数据库的程序包完成的,对目标数据库的相应程序包的调用则是由文件recover.bsp实现的bsp文件里面全部是各种PL/SQL脚本块,事实上,RMAN界面输入的各种命令,都会被转换成对bsp文件中各个PL/SQL块的调用,并将相关的PL/SQL块传递到目标数据库上去执行,从而完成数据库的备份恢复操作,bsp才是RMAN工具的核心。bsp中包含的PL/SQL块,主要调用了目标数据库中以下两个程序包dbms_rcvman:用来读取目标数据库的控制文件信息,并将这些信息传给rman,从而rman可以获取要备份的文件列表,以及其他一些信

8、息dbms_backup_restore:完成具体的备份恢复工作,并在控制文件中写入备份的元数据两个数据包已经硬编码到数据库软件中,因此数据库在关闭的情况下也可以使用RMAN14、RMAN备份恢复过程中,可能会需要关闭和启动数据库,因此在目标数据库上,必须使用具有sysdba权限的用户身份进行连接,如果没有使用操作系统认证,那么要注意密码文件不要丢失,密码文件应该定期的备份15、RMAN备份的最小单位是数据块,不是数据文件,RMAN备份时,总是一个数据块一个数据块的读取和写入,RMAN可以与DBWr进程协调一致,如果在备份过程中,发现是一个脏的数据块,可以等到DBWr进程将内存的内容刷新到数据

9、文件以后,才备份该脏数据块,因此不会出现分离数据块的情况,同时避免了使用begin backup,也就不会产生过多的重做日志,和手工的备份是两种机制16、RMAN只会对使用过的数据块进行备份,可以在数据库关闭时备份,RMAN备份时,从物理层面来判断数据块是否被使用,也就是说,只要某个数据块的头部被格式化过,RMAN就认为该数据块被使用过,就会备份该数据块,例如我们删除了一个大表,但是RMAN的备份不会减小多少,因为删除表的时候,只是将数据字典中的信息进行了删除,表实际所占用的数据块并没有被删除,数据块物理上还有数据,因此RMAN还会进行备份。快速闪回区(flash recovery area)

10、Oracle 10g数据库中,为RMAN备份文件设置了默认的路径,也就是快速闪回区。该区域是文件系统上的一个目录,也可以是ASM的某个磁盘组RMAN的备份可以不存放在这个目录区中,但是闪回恢复区有很多的好处1、简化对RMAN备份文件的管理,这个区域的文件都是OMF文件,文件的名称和大小都是oracle自动管理2、该区域的空间管理也是自动进行的当RMAN需要在该区域创建新的文件,但是空间不足,oracle会自动根据配置的冗余策略,删除不再需要的备份文件如果该区域出现空间压力,会在告警日志中(alter.ora)记录该信息,我们可以根据告警,适当的增加该区域的大小、修改RMAN备份的冗余策略两个参

11、数,设置目录和大小,必须先设置大小,再设置目录只是改变了目录,已经有的文件并没有移动过来。闪回恢复区可以存放rman备份文件、控制文件、联机重做日志文件、以及闪回数据库日志文件等Oracle设置了闪回恢复区,反映了Orale 的一个趋势,数据库自动化管理所有的工作。设置了闪回恢复区以后,我们只需要设置好冗余策略、控制大小,目录位置。剩余的工作Orale都会自动的搞定。Used表示已占用的空间大小的百分比(相对2G)Reclaimable表示通过删除必须要的备份文件所能回收空间的百分比Number表示文件的总数通过database control图形界面可以更加直观的查看利用情况。使用confi

12、gure命令配置RMAN1、RMAN用户需要sysdba权限,我们最好不要使用sys用户,因此给RMAN建立一个专用账号2、连接目标数据库的几种方式认证部分,本例使用的是操作系统认证,以sys的权限进行了登陆target,表示连接的是目标数据库,而且本例指的是本机的数据库实例,最终连接到了本机数据库实例ORCL中如果是在另外一台机器上使用RMAN客户端,那么可以使用上面的连接方式。RMAN的选项中,两个选项经常使用1、log2、cmdfileRMAN所有的输出都不会显示在屏幕上,而是显示在日志文件中参数append表示在原来的日志基础上追加日志信息,不是覆盖。如果rman是晚上自动运行,那么就

13、需要添加log选项,作为一个日志记录,很重要的参数。另外一个参数是cmdfile表示使用rman连接到数据库,然后立即执行cmdfile文件里的命令,该命令可以是任何合法的RMAN命令。上面的两个参数是经常使用的参数。RMAN命令的分类1、独立的命令在rman提示符下面,输入一条命令,立即执行2、任务形式的命令以rman 形式执行,所有要执行的命令都放在两个之间,执行时,RUN模块里面的所有命令必须都成功,整个任务才算成功,其中任何一条命令失败,则整个任务失败并回滚,不会执行其中的任何一条命令。从9i开始,可以将一些常用的配置选项设置为默认值,每次备份时,就不需要再进行这些配置,直接进行备份

14、configure命令进行默认配置,配置的选项包括1、自动备份控制文件2、自动启动某个类型的通道(磁盘或者磁带)3、备份的冗余策略4、默认的备份类型:备份集(backup set)or镜像副本(image copy)5、备份片的大小Configure的配置保存在控制文件中,原有的默认配置硬编码到了RMAN只可执行命令中,因此数据库在没有mount的时候,show命令都可以查看这些默认值,但是对我们设置的值,在这里看不见。我们要配置某个选项的时候,不需要记住具体的命令,因为使用show all以后,命令都出来了。通过dbconsole也可以查看具体的选项。1、自动备份控制文件1、每次使用RMAN

15、进行备份,都会自动备份控制文件和spfile2、修改了数据库结构,立刻自动备份控制文件可以配置控制文件备份所在的目录和文件名字默认使用的是闪回区,使用闪回区的时候,文件名字使用的OMF,即使设置了文件名字,也不起作用,因此需要改变目录。c-IIIIIIIIII-YYYYMMDD-QQ c-DBID-控制文件备份日期-序列号,16禁止00-ff,因此每天的备份数量不能超过256个数据库结构发生变化。控制文件没有自动的生成备份。将数据库改为归档模式。再次修改表空间的结构。控制文件自动生成,因此这个功能还是很有意义的。自动启动某个类型的通道这是RMAN配置中最重要的地方,也是必须配置的地方通道表示将

16、数据复制到备份介质的物理通道,通道类型则说明将数据复制到磁带还是磁盘,可以定义默认的通道类型默认我们将数据备份到磁盘上。我们也可以备份到磁带上,就爱那个disk替换为sbt,就表示备份到磁带上。指定同时自动创建多少个通道,上面指定了三个通道,加快了备份速度。上面的配置中说明,默认使用磁盘作为备份介质,同时启用三个磁盘通道进行备份。这次备份作业,手工的创建了一个通道,覆盖了前面指定的默认设置:磁盘+3个通道。如果是RAC,那么可以指定在哪个实例上启动通道。单实例不需要指定。参数format,说明该通道生成的备份文件的名称格式通道生成的备份文件的名称和格式。%c:备份片的副本数%d:数据库名称%D

17、:位于该月的第几天%M:位于该年的第几个月%n:数据库名称,向右填补到最大8个字符%u:一个8个字符的名称,代表备份集和创建时间%p:该备份集的备份片号,从1开始到创建的文件数%U:一个唯一的名字%u_%p_%c%s:备份集的编号%t:备份集的时间戳%T:年月日格式(YYYY-MM-DD)参数maxopenfiles:表示当发出backup命令的时候,一个通道能够处理的文件的最大个数,默认为8参数maxpiecesize:创建的备份片(备份出来的物理文件)的大小Parms ENV=:表示将数据备份到磁带上时,到磁带的通道的一些参数配置,对于不同的厂商,其Parms的值也是不同的上面都是一些和通

18、道有关的参数1、默认的设备类型2、默认启动的通道数量3、备份时手工分配通道4、RAC环境中指定在那个实例上启动通道(connect)5、format指定了生成的文件名和备份路径6、一个通道最大能够处理的文件个数7、备份片的大小8、如果通道是磁带,那么需要配置一些和厂商有关的参数分配了三个通道,因为只有一个数据文件,只在通道2上创建了一个备份集,这个备份集包括一个备份片。控制文件和spfile单独备份到了一个位置,生成了文件删除了一些我们不需要的配置。每个备份片的大小是20M。备份集(backup set)默认的备份类型是备份集,生成备份集的时候,RMAN会将不同的数据文件里使用过的数据取出后,

19、放在同一个物理文件里,也可以放在不同的物理文件里。产生的物理文件叫做备份片(backup piece),备份片的逻辑组合叫做备份集,备份集只是一个名字而已,将物理文件逻辑的组合在一起一般来说,一个通道生成一个备份集,启动了三个通道,那么就生成三个备份集。如果启动了备份文件的自动备份,那么控制文件所在的备份文件会单独的生成一个备份集,不会与数据文件所在的备份集合并在一起,另外,如果指定了每个备份集包含的数据文件的个数(filesperset),那么即便只有一个通道,也有可能生成多个备份集。控制文件所在的备份集以操作系统操作系统块作为最小单位数据文件所在的备份集以数据库作为最小单位,因此不能放在一

20、个备份集中如果指定了备份片的大小,比如2G,要备份的数据文件占5G,那么在备份集中会生成3个物理文件(3个备份片),其中两个为2G,一个为1G备份集的数量通常取决于下面的几个参数是否启用了控制文件的自动备份,启用则备份集多1个启用了几个通道,一个通道一个备份集每个备份集包含的数据文件的个数,可能出现一个通道多个备份集的情况备份片的数量则取决于备份集的数量和最大备份片的数量镜像副本这与手工通过操作系统的复制命令备份数据文件类似。一个数据文件生成一个镜像副本文件,整个复制过程是rman进行的,rman一个数据块一个数据块的复制,rman会检测每一个数据块是否出现损坏,不需要将表空间设置成为begi

21、n backup,镜像副本中包含使用过的数据块,也包含从未使用过的数据块。生成镜像副本的好处在于恢复速度相对备份集来说,更快一些。备份的冗余策略 recovery window哪些文件必须备份?默认值是7.保留下来的备份,必须能够将数据库恢复到指定时间之内的任意一个时刻,指定这个参数为7,则表示保留的备份文件能够将数据库恢复到最近7天中的任何一个时刻。为了能够将数据库恢复到7天之内的任何一个时刻,那么备份文件必须满足保留7天。这样当我们需要恢复到7天之内的任何一个时刻的时候,找到满足条件的数据文件,配合日志进行恢复。如果我们只保留了最近4天的备份,那么如果我要恢复到6天前的一个时刻,那么就不能

22、够实现。 redundancy表示要保留的,能够将数据库恢复到最新状态的完整的备份文件的个数。根据策略,不再需要的备份文件则被认为是obsolete。数据库会保存两套完整的备份。两个冗余策略配置只能一个生效。使用RMAN完成备份1、使用RMAN进行备份以前,首先要做的就是看一下配置,这一步很重要我们希望使用的是备份集。默认使用diskdisk的并行度是3(3个通道),而且是备份集的形式通道的format定义,备份片的大小使用RMAN进行备份时,我们使用backup命令,该命令可以独立的放在RMAN提示符里面,也可以放在RUN里面,最简单的命令如下RMANbackup database;1、分配

23、通道,输入数据文件到指定的通道2、在通道上创建备份集和段(备份片)一个备份集上可能有多个段(备份片),这取决于备份片的大小一个通道上也可能有多个备份集,取决于备份片的大小。因为我们启动了控制文件的自动备份,因此在备份的最后,单独的生成一个备份集。通过上面的操作提示,我们的到下面的结果。操作日志具体见backup.log1、分配通道、数据文件输入通道,创建备份集、备份片2、控制文件创建备份集、备份片如果数据库是非归档模式,我们需要启动数据库到mount状态,然后执行backup 命令,因为rman需要读取目标数据库的控制文件。如果数据库是归档模式,数据库在打开时可以备份。依然是分配了三个通道。文

24、件的名字和存放位置发生了改变。备份片的名字和位置取决于format。等等上面只是备份了一个表空间,而不是整个数据库。只是备份了一个数据文件。手工指定多个通道分配了两个通道,按照指定将1、3、5分配给了c1,将2、4分配给了c2然后备份了控制文件和spfile最后执行了一条SQL语句将所有的备份片放在同一个目录下面。Format参数可以在指定通道的时候指定,也可以在backup命令中指定。如果不指定datafile的分配,那么rman会根据数据文件的大小,大致进行分配,尽量保持两个通道分配的平均。手工分配通道以后,会将默认的通道覆盖掉,默认通道的分配取决于参数parallelism备份集支持压缩

25、,压缩比例大约是5:1.设置标记tag为每一个备份集或者镜像副本文件所取的名称。在恢复和list的时候,我们可以非常清楚的知道某个备份的意义。Tag标记具体的加在了段上。这一次备份所有的备份片(可能是多个通道生成的多个备份集),都使用同一个tag。默认情况下,RMAN在备份时总是会检查数据块是否发生物理损坏,如果是为了加快备份速度而不希望RMAN进行数据块的物理检查时,可以关闭这个选项。默认情况下,RMAN不会检查数据块是否发生逻辑损坏,backup时可以启用逻辑损坏检查。RMAN进行备份时,只要发现新的坏块,就立即停止备份。如果发现的坏块是上次已经发现的,则继续备份。我们可以设置maxcor

26、rupt参数来通知RMAN,只有当发现的坏块个数超过指定的数量时,才停止备份。这是一个迫不得已的参数。尽量不要使用。数据文件3、5出现的新的坏块超过10的时候,停止备份。设置备份集的大小(前面已经讲过设置备份片的大小)如果输入的文件的总量超过备份集的大小,那么在这个通道上创建第二个备份集。如果配置的备份集连一个数据文件都容纳不了,则会报错。我们可以不进行实际的数据库备份,只是检查数据文件是否损坏。离线、丢失的数据文件备份时,会报错,我们需要跳过这些数据文件,否则备份失败。离线不能访问我们可以跳过只读的表空间。三种类型的都跳过。在备份时,只对那些自上次备份以来新添加的数据文件进行备份。在备份时,

27、只对那些在指定的时间内没有备份过的数据文件。备份归档日志和控制文件1、RMAN备份归档日志时,首先进行一次日志切换,然后对归档进行备份2、RMAN备份过程中如果发现当前归档日志损坏,会自动的切换到另外一个归档路径下面(前提是存在多个归档路径)查找该文件的副本3、备份时需要指定要备份哪些归档日志备份一天以来所有的归档日志。分配的通道和文件名字都遵守配置文件中指定的参数。这个和数据文件备份的区别就是输入的文件是日志。从日志序列1开始备份。每一个日志文件都有一个日志序列号。备份所有的归档日志。备份归档日志的方式有上面的三种1、根据时间2、根据日志序列号3、备份所有的备份数据库时,同时备份归档日志文件

28、备份数据文件时,同时备份归档日志文件。备份归档日志后,将成功备份的归档日志进行删除。在进行备份之前,如果手工删除了某些归档日志文件,则备份时,由于RMAN会根据目标数据库的控制文件里所记录的归档日志文件列表,去找所有的归档日志文件,因此会发生找不到需要备份的归档日志文件的现象,RMAN因此会报错,备份失败。只备份那些能够访问的归档日志文件,跳过那些不能访问的归档日志文件。这是一个很不好的现象,如果发现归档日志丢失,马上进行数据库的全备份。数据文件和归档日志可以同时备份,但是不会放在一个备份集里面,至少创建两个备份集。这点和控制文件的备份很类似。备份当前的控制文件。如果控制文件的自动备份设置为o

29、n,那么任何rman备份都会引发控制文件和spfile的自动备份,这是一个不错的参数。增量备份所谓增量备份,就是只对那些自从上一次备份以来,发生变化的数据块进行备份。既可以在归档模式下面进行增量备份,也可以在非归档模式下面进行增量备份。对于非归档模式的增量备份,每次备份时,都必须正常关闭数据库,然后启动到mount状态。1、首先必须要有一个基本备份,包含所有使用过的数据块的备份2、基本备份就是级别0(level=0)的备份,以后所有的增量备份都是基于这个基本备份完成的3、如果RMAN进行增量备份时,发现没有可以参照的基本备份,RMAN会自动的进行0级备份,忽略我们指定的增量级别备份4、增量备份

30、级别包括1、2、3、4、5一共五个级别,0作为基本级别增量备份分为差异增量备份、累计增量备份差异增量备份:表示每次备份时,只对那些小于等于当前级别的备份以来变化过的数据块进行备份。周日零点0级备份周一零点2级备份周二零点2级备份周三零点1级备份周四零点 2级备份周五零点 2级备份周六零点 2级备份1、周日备份所有的数据块2、周一备份=2级别,最近的就是周日,那就是备份周日以来发生变化的数据块3、周二备份=2,最近的就是周一,那就是备份周一以来发生变化的数据块4、周三备份=1,最近就是周日,那就是备份周日以来发生变化的数据块5、周四备份=2,最近的就是周三,那就备份周三以来发生变化的数据块6、周

31、五只是备份当天发生变化的数据7、周六只是备份当天发生变化的数据日一二三四五六0221222日0差异备份日一二三四五六0221222日0累计备份,只对小于当前级别最近一次备份以来,发生变化的数据块进行备份。无论是累计还是差异,都进行如下两步1、向前寻找一个增量备份基点2、备份这个基点以来发生变化的数据块差异增量:向前寻找基点的方法是=本备份级别累计增量:先前寻找基点的方法是backup database;备份时出错。删除备份。配置了通道数和备份片的大小。ALTER SYSTEM SET db_recovery_file_dest_size=4g scope=both; 也可以设置闪回恢复区的大小

32、。这个backup database才是一个正确的备份(没有任何错误)没有找到归档日志文件,因为手工删除了一些归档日志文件。控制文件里面记录的所有的归档日志都会进行备份。使用RMAN进行恢复1、使用restore命令读取备份文件里的数据块,根据数据块所属的数据文件,将这些数据块放回到相应的数据文件里面去,从而完成还原工作2、使用recover命令把那些从备份以来生成的归档日志文件以及联机重做日志文件应用到还原出来的数据文件上,从而把数据库从备份的时间点恢复到最新的或者指定的时间点。完全恢复1、分为归档和非归档模式,如果目标数据库是非归档模式,那么数据库需要在mount状态进行恢复2、如果是归档

33、模式,只要不是恢复系统表空间或undo表空间以及控制文件,而是恢复其他数据文件,数据库在打开的状态下就可以进行如果控制文件和spfile都丢失,那么必须先还原spfile,再还原控制文件一、启用了自动备份控制文件,且备份集位于闪回恢复区域1、每次备份时,都会自动备份控制文件和spfile,并将这两种文件放在同一个备份集中。如果我们失去了spfile,则需要还原该文件,那么实例需要启动到nomount状态,控制文件可以不打开。2、启动实例时,我们需要借助一个参数文件,该参数文件的内容不要求很完整,只要能够将数据库启动到nomount状态即可。控制文件和spfile所在的备份集位于闪回恢复区,该区

34、域的文件名是随机生成的,因此,要从其中恢复spfile,必须仔细找到spfile所在的最新备份集。因为没有从控制文件中得到备份信息,因此需要手工的寻找spfile所在备份集的名字。一般控制文件和spfile都在一个备份集中,而且文件比较小,大都比较小,一般在10M以下。找到备份集以后,执行命令进行恢复。在linux下面,出现了一个问题。具体流程就是1、寻找spfile和控制文件所在的备份集,然后恢复出来。spfile恢复成功。如果没有指定spfile的恢复路径,默认恢复到$ORACLE_HOME/dbs目录中去.将两个控制文件删除。这个备份集中没有找到控制文件。反复的尝试,终于找到了控制文件所

35、在的备份集。还原控制文件和spfile的步骤都是一样的1、找到spfile所在的路径2、找到文件所在的备份集3、使用命令restore spfile from 备份集的路径名称4、使用命令restore controlfile from 备份集的路径名称分为几种情况1、启用了自动备份控制文件,而且备份集位于闪回恢复区随便找一个ora文件将数据库启动到nomount状态,因为闪回恢复区的文件名字是数据库自己管理的,因此我们只能尝试着使用每一个备份片,使用restore进行恢复尝试。2、启用了自动备份控制文件,且备份集位于不同的指定路径中,那么备份集的名字和路径一定是按照我们指定的format参数

36、来命名的。我们直接可以使用下面的命令进行恢复获得dbid的方式有两种1、通过自动备份控制文件的名字获得2、通过mount数据库以后的select dbid from v$database set dbid=1209353873run set controlfile autobackup format for device type disk to c:backup%F; restore spfile from autobackup;run set controlfile autobackup format for device type disk to c:backup%F; restore

37、controlfile from autobackup; restore spfile to pfile c:initoraclr10g.ora from autobackup;/将spfile还原出来,然后转换成为pfile3、没有启用自动备份控制文件如果没有启用自动备份控制文件,那么每次备份1号数据文件的时候,都会强制备份控制文件和spfile,因此还是需要找到备份片,然后使用restore进行还原。restore spfile from c:backup07qwjljsadrestore controlfile from c:backup07qwjljsad前面讲了还原数据库的spfil

38、e和控制文件的方式方法非归档模式下面的完全恢复。备份数据库。1、控制文件、联机重做日志文件、数据文件全都损坏1、数据库启动到nomount状态,还原控制文件,因为自动备份启动,而且备份未放在闪回恢复区控制文件里面有这些信息,根据这些信息,我们能够找到数据文件,归档日志文件等备份信息。因此我们需要控制文件备份,即使这些文件备份不是最新的。2、数据库关闭的情况下删除控制文件、联机重做日志文件、数据文件将数据库启动到nomount状态找到BDID控制文件还原到位。将数据库进行mount。还原所有的数据文件。恢复数据库,因为联机重做日志文件丢失。所以使用noredo。自上次备份以来的所有数据丢失。二、

39、控制文件和联机重做日志文件没有丢失,只有数据文件丢失。省略了spfile和控制文件的寻找恢复。将数据库启动到mount状态,使用restore database和recover database进行恢复即可。如果自上次备份以来,日志文件进行了切换,但是备份时的current日志文件组始终没有被覆盖。(间隔时间短、联机日志文件大、业务量小等原因)。那么在进行恢复的时候,可以实现无数据丢失。当前日志组是2.备份表空间users数据库对外提供服务。在上次备份以来,备份时的current日志文件组还没有被覆盖。我们不知道是否被覆盖。假设没有被覆盖。删除了users的数据文件。启动数据库到mount状态

40、。还原数据库,假设联机日志文件没有被覆盖,还能够配合备份进行数据恢复。恢复成功。可以直接打开数据库。如果日志文件被覆盖,那么recover命令会失败。我们只能进入SQLPLUS中,发出如下的命令。SQLRECOVER DATABASE UNTIL CALCEL然后直接输入cancel,媒体恢复结束。数据库可以以resetlogs启动。三、控制文件没有损坏、联机重做日志文件和数据文件损坏将数据库启动到mount状态还原数据库。联机日志文件没有回来。我们在backup database以后,又重新备份了users表空间。使用backup database时的备份集进行users数据文件的还原。上面

41、的错误在于1、backup database2、backup tablespace users恢复的时候,users表空间使用的是第二个备份集显然有问题,我们使用指定的备份集进行还原可以避免这种情况。对于非归档模式,这种问题还是比较常见。再次执行恢复。将数据库恢复到其他目录下面数据文件损坏以后,原来的目录不能使用了,我们可以使用别的目录。表空间system和users出现损坏。其余文件都没有问题。但是非归档只能进行全部还原。找到最近一次的全备份的tagTAG20090317T082842归档模式下面的完全恢复前提必须具有自备份以来以来所有的归档日志,如果缺少归档日志文件或者丢失联机重做日志文件

42、,则只能进行不完全恢复,如果丢失控制文件,则需要创建控制文件或者按照前面讲到的从以前的备份中还原控制文件,显然后者更好一些。一、非系统表空间损坏,而控制文件和联机日志文件没有损坏数据库中在正常的使用。Users表空间损坏。说明一个问题,run内所有的操作并没有作为一个事务出现。数据恢复回来。如果数据库在关闭的状态下失去数据文件。那么将数据库启动到mount状态。然后执行上面的操作。如果是数据文件损坏,使用下面的操作。系统表空间损坏,控制文件和联机重做日志文件没有损坏。只能将数据库启动到mount状态,然后进行恢复。恢复成功。所有的数据文件丢失,控制文件和联机日志文件没有丢失。不完全恢复1、不完全恢复只能在mount下执行2、必须使用基于数据库的还原,必须还原所有的数据文件有三种方式1、基于时间点的恢复首先来看日期格式的问题模拟误删除了表。需要通过不完全恢复来找回数据。基于日志序列号的不完全恢复如果一个日志文件损坏,那么经常使用这种恢复方式,恢复一直进行到损坏的日志文件为止。恢复进程应用完56号归档日志文件以后就停止。基于SCN号,类似于基于时间点的不完全恢复Oracle提供了一个restore point的概念,可以将restore point理解为某个时间点或者

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论