资源描述
第十一章第十一章 Oracle8.0 RMAN RMAN11.1 RMAN的基本概念 在Oracle8.0以后的数据库版本中,增加了一个数据库备份工具,叫RMAN。RMAN通过启动操作系统进程将数据备份到磁盘或磁带上.在操作系统符下输入“rman”,则进入了RMAN中。例如:C:rman 与常用的物理数据库备份、逻辑数据库备份不同,RMAN使用数据库对数据库进行备份的原理。在RMAN中,可以使用COPY命令将数据库文件复制到磁盘或磁带上,也可以使用BACKUP命令对于整个数据库、一个指定的表空间、控制文件,或日志文件进行备份。BACKUP命令可以将数据库备份成为多个数据包,每一个包称为一个备份子集(BACKUP SET),一个备份集又可以分成多个数据片(BACKUP PIECE)。备份集是一个逻辑结构,包含一组的物理文件。这些物理文件就是对应的备份片。注意:一个数据文件不能跨越一个备份集,但是能跨越备份片。数据文件,控制文件能保存在同样的备份集上,但是不能与归档日志保存在同样的备份集上。RMAN可以在不同的操作系统上进行备份。例如,运行在Windows NT上的RMAN,可以对远程的UNIX服务器上的数据库进行备份。最简单的RMAN运行环境只包括两个组件:RMAN命令执行器与目标数据库。在RMAN命令执行器中执行用于进行备份或恢复操作的RMAN命令,然后由RMAN命令执行器对目标数据库进行相应的操作。但在比较复杂的RMAN环境中会涉及更多的组件,不仅包括RMAN命令执行器与目标数据库,还会包括RMAN恢复目录、备用数据库等组件。目标数据库:利用RMAN进行备份与恢复操作的数据库。RMAN将使用目标数据库的控制文件来收集关于数据库文件的相关信息,并且使用控制文件来存储相关的RMAN操作信息。此外,实际的备份、修复以及恢复操作也是由目标数据库中的服务进程来执行的。RMAN命令执行器:可以看做是目标数据库的一个客户端应用程序。你在RMAN命令执行器中执行RMAN命令,RMAN命令执行器对命令进行解释,然后利用Oracle网络服务来建立到目标数据库的连接,并且调用服务进程来完成实际的备份与恢复操作。RMAN资料档案库:RMAN在进行备份、恢复以及修复操作时需要使用到的管理信息和数据称为RMAN的资料档案库。RMAN的资料档案库可以完全保存在目标数据库的控制文件中,也可以保存在一个可选的恢复目录数据库中。RMAN恢复目录:如果使用一个独立的数据库来保存RMAN的资料档案库,那么RMAN的功能可以得到很大的扩展,这时称RMAN资料档案库的扩展形式为RMAN恢复目录。不建议恢复目录创建在目标数据库上,利用恢复目录可以同时管理多个目标数据库,存储更多的备份信息,可以存储备份脚本。如果不采用恢复目录,可以采用控制文件来代替恢复目录,oracle 9i因为控制文件自动备份的功能,利用控制文件很大程度上可以取代恢复目录。RMAN恢复目录模式:在RMAN恢复目录数据库中拥有RMAN资料档案库的用户模式。RMAN通过这个用户模式来使用和维护它自己的恢复目录。RMAN恢复目录数据库:用来保存RMAN恢复目录的数据库。它是一个独立于目标数据库的Oracle数据库。需要注意的是,在以上组件中,只有目标数据库和RMAN命令执行器是必需的,其他组件都是可选的。11.2 RMAN工具的使用 11.2.1 创建恢复目录 步骤1:创建恢复目录数据库。在创建恢复目录之前,必须先为RMAN创建一个数据库。为了数据库安全,最好将恢复目录数据库建在与目标数据库独立的两个服务器上。假设数据库创建如下:系统表空间SYSTEM:90MB。回退表空间:5MB。临时表空间TEMP:5MB。日志文件设置:3个日志文件组,每组两个日志成员,大小为1MB。RECOVERY CATALOG表空间:表空间名为CATTBS,大小为15MB。步骤2:创建RMAN用户,并为用户授权。这里假设用户名为RMAN,密码为RMAN。创建完用户还必须把CONNECT、RESOURCE、RECOVERY_CATALOG_OWNER的权限授予该用户,以便该用户有恢复目录管理的权限。SQLcreate user rman identified by rman default tablespace cattbs temporary tablespace temp;SQLgrant connect,resource to rman;SQLgrant recovery_catalog_owner to rman;步骤3:创建恢复目录。创建恢复目录时,需要先进入RMAN。C:rman 进入RMAN后,以RMAN用户登录,创建恢复目录,语法如下:RMANconnect catalog rman/rman RMAN create catalog;上述命令使用RMAN用户的默认表空间创建恢复目录,如果不使用默认表空间创建恢复目录,则可以输入下列命令:RMANcreate catalog tablespace cattbs;另外,如果恢复目录与目标数据库不在同一服务器上,则应通过“网络连接串”来登录,如:RMAN connect catalog rman/rman网络连接串 RMANdrop catalog;/删除恢复目录 11.2.2 连接RMAN 使用RMAN时,首先需要为它建立到目标数据库的连接。RMAN可以在无恢复目录及有恢复目录两种方式下连接到目标数据库。1.无恢复目录 2.C:rman target/3.C:rman target/nocatalog4.C:rman target sys/change_on_install nocatalog5.C:rman nocatalog6.注意:如果目标数据库与RMAN数据库不在同一台服务器上时,必须使用网络连接串的连接方法。2.有恢复目录 步骤1:连接到目标数据库,如:C:rman target sys/change_on_install catalog rman/rman 如果目标数据库与RMAN数据库不在同一台服务器上时,必须使用网络连接串进行连接。如:C:rman target sys/change_on_install catalog rman/rman网络连接串 步骤2:注册数据库 注册数据库是将目标数据库控制文件转到恢复目录中。同一个恢复目录中只能注册一个目标数据库。RMANregister database;步骤3:将目标数据库与恢复目录进行同步化 为了维持恢复目录与目标数据库控制文件的同步化,在RMAN连接到目标数据库之后,必须运行RESYNC CATALOG命令,目标数据库的同步信息输入到恢复目录。RMANresync catalog;如果目标数据库中的表空间、数据文件发生改变,则必须进行一次同步化过程。除手工进行同步外,还可以在参数文件中增加参数CONTROL_FILE_RECORD_KEEP_TIME,设置同步时间,该参数默认值为7,即每7天系统自动同步一次。11.2.3 RMAN命令简介 RMAN命令可分为两种类型:独立命令和作业命令。独立命令是指只能直接在RMAN提示符下输入并执行的命令,独立命令主要包括以下一些命令:CHANGE CONNECT CREATE CATALOG与RESYNC CATALOG CREATE SCRIPT、DELETE SCRIPT与REPLACE SCRIPT 作业命令是指以RUN命令开头并包含在一对大括号中的一系列RMAN命令。这些命令将作为一个完整的命令块一起执行。如果作业命令中的任何一条命令执行失败,则整个作业命令停止执行,即执行失败的命令之后的其他命令都不会再继续执行。下面是一个作业命令的示例。RMANRUN 2 allocate channel d1 device type disk;3 backup 4 format=e:oraclebackup%u 5 database;大部分的RMAN命令都是既可以在RUN命令块中使用,也可以在RMAN提示符下直接使用。下面把RMAN的常用命令进行简单的介绍。1.启动与关闭目标数据库命令:RMANshutdown immediate RMANstartup RMANstartup force RMANstartup mount RMAN alter database open 除了在RMAN中可以执行上述命令来启动或关闭数据库外,还可以在RMAN中执行执行SQL语句或语句或PL/SQL过程过程。在RMAN提示符后输入SQL命令,然后在一对单引号(双引号也可)中输入需要执行的SQL语句,即可在RMAN中执行这条语句。RMANSQL ALTER SYSTEM ARCHIVE LOG ALL;需要在RMAN中执行PL/SQL过程,也可以使用类似的方法来实现。比如:RMANRUN23SQL BEGIN scott.update_log;END;4 注意:如果要在SQL语句或PL/SQL过程中包含单引号,必须在SQL语句或PL/SQL过程中的每个单引号前面再添加一个单引号;另外在RMAN中不能执行SELECT语句。2.数据库备份与恢复命令:COPY命令:COPY命令是数据库文件的复制,可以复制单个的数据文件、归档日志、控制文件等。其语法为:RMANcopy to 其中,是被备份的文件;是使用COPY命令复制文件的目的路径及文件名;是可选项。使用COPY命令可以一次备份多个文件,备份多个文件时,用逗号隔开。COPY命令结束时,自动将所分配的通道释放。BACKUP命令:BACKUP命令语法为:RMANBACKUP ()其中,是备份增量级,可以取的值为Full或Incremental,Full表示全备份,Incremental表示增量备份,共有4级增量(1、2、3、4);是备份对象;为可选项,主要参数如表所示:参数名 含义说明Tag 表示标记Format 表示文件存储格式Include Current Controlfile 表示备份控制文件Filesperset 表示每个备份集所包含的文件Channel 用于指定BACKUP命令所用的通道Delete A11 Input 表示备份结束时是否删除归档日志Maxsetsize 表示备份集的最大尺寸SkipOFFLINE、READONLY、INACCESSIBLE表示在备份集中排除某些数据文件或归档重做日志文件RESTORE命令 RESTORE命令将COPY及BACKUP命令备份的文件复制到目标数据库。其语法为:RMANRESTORE 其中,是备份文件对象,可使用的对象及含义如表所示:备份文件对象 含义说明Datafile 表示恢复数据文件Tablespace 表示恢复一个表空间Database 表示恢复整个数据库Controlfile 表示将控制文件的备份结果恢复到指定目录Archivelog All 表示将全部的归档日志复制到指定的目录,用于后续的RECOVER命令对数据库实施恢复。而是选项,其含义如表所示:参数名 含义说明CHANNEL 表示恢复终止控制条件PARMS 表示设置磁带参数,磁盘通道不使用此参数untilClause 表示恢复终止条件VALIDATE 表示是否对文件进行检查CHECK LOGICAL 表示是否对文件进行检查CHECK READONLY 表示是否对文件进行检查DEVICE TYPE 用于指定通道设备类型FROM TAG 用于在备份时设置有标记的备份文件,可以使用此参数指出要恢复的文件的标记FROM BACKUPSET|DATAFILECOPY表示是从BACKUP的文件还是从COPY的文件中进行恢复RECOVER命令 RECOVER命令将RESTORE命令恢复到目标数据库中的文件实施数据库同步恢复。RECOVER命令的语法如下:RMANRECOVER 其中,是要恢复的对象类型,有数据文件、表空间,以及数据库。其中,表空间只能在数据库正常运行状态下实施恢复,如果数据库因为某些原因导致无法启动,则只能恢复数据文件或数据库。数据文件恢复后,该数据文件所对应的表空间随之恢复正常。而是选项,其含义如表所示:参数名 含义说明NOREDO 用于非归档方式下的数据库恢复FROM TAG 备份文件的标记ARCHIVELOG TAG 日志文件的标记DELETE ARCHIVELOG 表示数据库恢复后是否要删除归档日志CHECK READONLY 表示在数据库恢复时是否对只读表空间进行检查3.恢复目录维护命令:显示完全备份时的数据库结构 RMAN report schema 显示备份列表 RMAN list backup 如果要显示某个表空间的备份情况:RMANlist backup of tablespace users 显示预定义的默认配置参数 RMANshow all 修改默认的配置参数 RMANconfigure;如利用configure channel来指定默认的自动分配通道配置:RMANconfigure channel device type disk format e:oraclebackuprman%u 最后需说明的是,在RMAN中还可以将命令作为脚本存储起来,需要时在直接在RMAN中执行,具体使用如下:RMANcreate script usr_bak 2allocate channel default channel type disk;3 backup tablespace users;4 创建完脚本后,直接在RMAN工具中输入如下命令即可执行该脚本:RMANrun 2execute script usr_bak;3 11.3 RMAN的配置 11.3.1 通道概述 通道是RMAN中最基本的概念,一个RMAN通道表示了一个到存储设备的数据流,它对应于目标数据库中的一个服务进程。凡是在执行需要与目标数据库或操作系统进行交互操作的命令之前,都必须首先为这个命令分配一个通道。在Oracle9i中,通道包括自动通道分配(Automatic Channel Allocation)与RUN命令手动通道分配。11.3.2 自动分配通道 在RMAN中,在RUN外部使用BACKUP、RESTORE、DELETE命令,或在RUN中使用这些命令时,如果没有用手工方式为RMAN命令分配通道,RMAN将利用预定义的设置来为命令自动分配通道。定义自动通道语法如下:CONFIGURE DEVICE TYPE sbt/disk PARALLELISM nCONFIGURE DEFAULT DEVICE TYPE TO DISK(sbt)CONFIGURE CHANNEL DEVICE TYPECONFIGURE CHANNEL n DEVICE TYPE例如,分配两个磁带通道,3个磁盘通道:RMANCONFIGURE DEVICE TYPE sbt PARALLELISM 2;RMANCONFIGURE DEVICE TYPE disk PARALLELISM 3;同时,可以重新设置RMAN配置的通道个数。例如,将磁盘通道数改为两个:RMANCONFIGURE DEVICE TYPE disk PARALLELISM 2;指定自动通道的默认设备 命令CONFIGURE DEFAULT DEVICE TYPE to DISK(sbt)用于指定自动通道的默认设备。如果大部分数据库备份使用磁带备份时,可以设置:RMANCONFIGURE DEFAULT DEVICE TYPE TO sbt;则RMAN仅使用SBT设备进行数据备份。自动通道参数配置 命令CONFIGURE CHANNEL DEVICE TYPE 用于定义无通道号的设备,则所有通道的配置参数相同;命令CONFIGURE CHANNEL n DEVICE TYPE用于定义指定的一个通道参数。例如:CONFIGURE CHANNEL DEVICE TYPE disk MAXPIECESIZE=2MCONFIGURE CHANNEL 5 DEVICE TYPE disk MAXPIECESIZE=1M 清除自动分配的通道的设置 清除自动分配通道设置,可以将通道清除为默认状态。清除命令格式如下:CONFIGURE DEVICE TYPE disk CLEAR;CONFIGURE DEFAULT DEVICE TYPE CLEAR;CONFIGURE CHANNEL DEVICE TYPE sbt CLEAR;CONFIGURE CHANNEL 5 DEVICE TYPE disk CLEAR;清除完成后,可以使用RMANshow all显示系统默认值。11.3.3 手动分配通道 如果不使用自动通道方式时,则可以使用RUN命令定义手动通道(Manually Allocated Channels)。定义手动通道的语法如下:RUNALLOCATE CHANNEL 通道名称 DEVICE TYPE 设备类型;BACKUP ;如:RUNALLOCATE CHANNEL c1 DEVICE TYPE sbt;BACKUP tablespace system;手动分配多个通道 可以定义多个通道,使用多个并行的通道进行备份。在下面的例子中,BACKUP命令使用3个通道同时备份3个数据文件,3个通道同时被激活,一个通道备份一个数据文件。RUNALLOCATE CHANNEL c1 DEVICE TYPE disk;ALLOCATE CHANNEL c2 DEVICE TYPE disk;ALLOCATE CHANNEL c3 DEVICE TYPE disk;BACKUP DATAFILE 1,2,3 在以下的程序中,虽然定义了多个通道,但分别使用了3个BACKUP命令备份3个数据文件,同一时间只有一个文件进行备份,只激活一个通道,所以只使用一个通道。RUNALLOCATE CHANNEL c1 DEVICE TYPE sbt;ALLOCATE CHANNEL c2 DEVICE TYPE sbt;ALLOCATE CHANNEL c3 DEVICE TYPE sbt;BACKUP DATAFILE 1;BACKUP DATAFILE 2;BACKUP DATAFILE 3;11.3.4 设置通道控制参数 无论是自动通道还是手动通道,每一个通道都可以设置一些参数,以控制通道备份数据时备份集大小。通道控制参数如下。设置参数FILESPERSET 参数FILESPERSET用于限制BACKUP时备份集(Backup Set)的文件个数。例如,分配一个自动通道,并限制该通道每两个文件备份成为一个备份集。ALLOCATE CHANNEL ch1 DEVICE TYPE sbt FILESPERSET=2;设置参数MAXPIECESIZE 参数MAXPIECESIZE用于设置备份集中每一个备份片(Backup Pieces)文件的大小。定义该参数时可以指定通道名称,为指定通道设置参数。例如,设置通道2及chl的备份片大小为20MB:CONFIGURE CHANNEL 2 DEVICE TYPE disk MAXPIECESIZE=20M;ALLOCATE CHANNEL ch1 DEVICE TYPE sbt MAXPIECESIZE=20M;设置参数FORMAT 参数FORMAT用于设置备份文件的存储目录及存储格式。设置方法如下:CONFIGURE CHANNEL DEVICE TYPE disk FORMAT=/u01/oracle/backup/%U 设置参数MAXSETSIZE 参数MAXSETSIZE用在BACKUP、CONFIGURE命令中设置备份片的大小。例如,设置使用BACKUP命令备份数据库时,每个备份集大小不超过100MB。CONFIGURE CHANNEL 1 DEVICE TYPE sbt MAXSETSIZE=100M;设置参数RATE参数RATE用于设置通道的I/0限制。自动分配通道时,可以按下述方法设置:CONFIGURE CHANNEL 1 DEVICE TYPE sbt RATE=200K;设置参数CONNECT参数CONNECT是设置数据库实例的参数。RMAN允许同时连接到多个不同的数据库实例上。例如,定义3个磁带通道,分别连接到3个数据库实例prodl、prod2、prod3上。其中,prodl、prod2、prod3是主机字符串。CONFIGURE CHANNEL 1 DEVICE TYPE sbt CONNECT=sys/managerprod1;CONFIGURE CHANNEL 2 DEVICE TYPE sbt CONNECT=sys/managerprod2;CONFIGURE CHANNEL 3 DEVICE TYPE sbt CONNECT=sys/managerprod3;11.4 基于RAMN的数据库备份 11.4.1 数据库完全备份 如果允许暂时关闭目标数据库,那么可以在关闭状态下对整个数据库进行一致备份。但如果不允许关闭目标数据库,那么只能在打开状态下对整个数据库进行不一致备份,此时数据库应该运行在归档模式下。下面是一个数据库完全备份的实例:RMAN run 2 allocate channel dev1 type disk;3 backup 4 full 5 tag full_db_backup 6 format c:oracledb_t%t_s%s_p%p 7 (database);8 release channel dev1;9 通过下面的命令显示恢复目录中记载的备份集信息:RMAN list backupset of database;11.4.2 表空间备份 无论数据库处于打开状态还是不打开状态,你都可以在RMAN中对单独的表空间进行备份。另外联机备份表空间时,不需要在备份前执行ALTER TABLESPACE BEGIN BACKUP命令将表空间设置为备份模式。下面是一个表空间备份的实例:RMAN run 2 allocate channel dev1 type disk;3 backup 4 tag tbs_users 5 format c:oracletbs_users_t%t_s%s 6(tablespace users);7 release channel dev1;使用下列命令来显示恢复目录中该表的备份信息:RMAN list backupset of tablespace users;11.4.3 数据文件备份 在RMAN中利用BACKUP DATAFILE命令可以对单独的数据文件进行备份,你可以利用数据文件的名称或编号来指定要备份的数据文件。下面是一个单独的数据文件备份的实例:RMAN run 2 allocate channel dev1 type disk;3 backup 4 format%d_%u 5 (datafile c:oracledbssysbigdb.dbf);6 release channel dev1;7 使用下面的命令显示恢复目录中备份的数据文件:RMAN list backupset of datafile 1;上面的例子是对数据文件进行备份,还可以使用COPY命令对数据文件进行拷贝,如下列命令:RMAN run 2 allocate channel dev1 type disk;3 copy datafile c:oracledbstemp.dbf to c:oraclebackupstemp.dbf;4 release channel dev1;5 使用下面的命令显示恢复目录中的文件拷贝:RMAN list copy of datafile c:oraclebackupstemp.dbf;拷贝数据文件和备份数据文件是不一样的,数据文件拷贝是一个该文件的镜像。文件的备份产生一个备份集。11.4.4 控制文件备份 无论数据库处于打开状态还是不打开状态,你都可以在RMAN中对当前的控制文件进行备份。在RMAN中对控制文件进行备份的方法很多。最简单的就是利用CONFIGURE 命令将CONTROLFILE AUTOBACKUP设置为ON,启动RMAN的控制文件自动备份功能。下面是一个利用手工方式进行控制文件备份的实例:RMAN run 2 allocate channel dev1 type disk;3 backup 4 format cf_t%t_s%s_p%p 5 tag cf_monday_night 6 (current controlfile);7 release channel dev1;8 11.4.5 归档日志文件备份 归档重做日志文件是成功进行介质恢复的关键,因此你必须经常对归档重做日志文件进行备份。在RMAN中备份归档重做日志文件用BACKUP ARCHIVELOG命令。下面是一个归档日志文件备份的实例:RMANrun 2allocate channel dev1 type disk;3backup 4format d:oraclebackuplog_%t_s%s_ p%p 5(archivelog all);6 release channel dev1;7 如果想备份序列号从6070的归档日志,则可以使用以下脚本:RMANrun 2)allocate channel devl type disk;3 backup 4format d:oraclebackuplog_t%t_s%s_p%p 5(archivelog from logseq=60 until logseq=70 thread l);6 release channel devl;7 下面的脚本备份在24小时内产生的归档日志,在备份完成后会自动删除归档日志。如果备份失败,归档日志不会被删除。RMAN run 2 allocate channel dev1 type disk;3 backup 4 format c:oracle/backups/log_t%t_s%s_p%p 5 (archivelog from time sysdate-1 all delete input);6 release channel dev1;7 使用下面的命令显示恢复目录中的归档日志:RMAN list backupset of archivelog all;11.4.6 备份联机日志文件联机日志不能用RMAN来备份,必须先将其归档。为了实现这点,必须在RMAN中执行如下SQL语句:RMAN run 2 allocate channel dev1 type disk;3 sql alter system archive log current;4 backup 5 format c:oracle/backups/log_t%t_s%s_p%p 6(archivelog from time sysdate-1 all delete input);7 release channel dev1;8 11.4.7 RMAN的增量备份 在RMAN中还可以通过增量备份的方式对整个数据库、单独的表空间或单独的数据文件进行备份。如果数据库运行在不归档模式下,那么只能在数据库干净关闭的状态下进行一致性的增量备份,而如果数据库运行在归档模式下,那么既可以在数据库关闭状态下进行增量备份,也可以在数据库打开状态下进行增量备份。数据库一级增量、不积累备份runa11ocate channel dev1 type disk;backupformat c:oraclebackupb_%u_%S_%p incremental level 1(database include current controlfile);release channel dev1;数据库积累备份 runallocate channel deve1 type diskformat E:ORACLEbackupb_%u_%s_%p;backup incremental level 1 cumulative(database include current contro1file);backup(archivelog all delete input);表空间增量、不积累备份,含所有日志 runallocate channel deve1 type diskformat E:ORACLEbackupb_%u_%s_%p;backup incremental level 2(tablespace CFW_DAT,TEMP include current controlfile);backup(archivelog all delete input);数据文件增量备份,包含日志文件 runallocate channel deve1 type diskformat E:ORACLEbackupb_%u_%s_%p;backup incremental level 2(d a t a f i l e D:D A T A C F W _ I D X 2.O R A ,E:ORAClEDATABASECFW_IDXl.ORAinclude current controlfile);backup(archivelog all delete input);注意:注意:对日志文件不能进行增量备份。11.5 基于RMAN的数据库恢复 使用RMAN备份的数据库只能使用RMAN提供的恢复命令进行恢复。与用户自定义方式类似,RMAN的数据库恢复操作也分为两个步骤:首先修复数据库,然后再进行恢复操作。在RMAN中使用RESTORE命令进行数据库修复,RESTORE命令利用硬盘中的备份集或镜像复制来修复数据文件、控制文件以及归档重做日志文件;使用RECOVER命令进行数据库恢复,RECOVER命令对修复后的数据文件应用联机或归档重做日志,从而将它们更新到当前时刻或指定时刻下的状态。11.5.1 完全数据库恢复 如果数据库所有的数据文件都被损坏,那么必须利用RMAN修复所有的数据文件,然后再对数据库进行一次完全介质恢复。要对数据库进行完全恢复,则目标数据库必须运行在归方式下。进行恢复之前,需要把数据库设置为加载但不打开状态。RMANrun2allocate channel deve13type disk;4restore database;5recover database;6恢复完后用ALTER DATABASE OPEN语句来打开数据库。11.5.2 表空间恢复 在恢复表空间之前,先将要恢复的表空间离线,然后实施表空间恢复,恢复之后再将表空间联机。RMAN run 2 allocate channel dev1 type disk;3 sql“alter tablespace users offline immediate”;4 restore tablespace users;5 recover tablespace users;6 sql“alter tablespace users online”;7 release channel dev1;8 注意:如果还原系统表空间文件,数据库必须关闭,因为系统表空间不可以脱机。11.5.3 数据文件恢复 数据文件的恢复与表空间的恢复比较类似,数据库必须处于归档日志模式,而且数据库必须打开。RMAN run 2 allocate channel dev1 type disk;3 sql alter tablespace users offline immediate;4 restore datafile 4;5 recover datafile 4;6 sql alter tablespace users online;7 release channel dev1;8 11.5.4 控制文件恢复 控制文件破坏时,数据库只能启动到NOMOUNT状态下,即只启动数据库实例。在实例启动后,将控制文件复制回相应目录,实施恢复即可。恢复控制文件的过程如下。RMANrun2 startup nomount;3 allocate channel deve14type disk;5 restore controlfile;6 alter database mount;7restore database;8recover database;9 alter database open resetlogs;10 11.5.5 不完全介质恢复 不完全数据库恢复的结果使数据库恢复到过去的某一个时间点。在实施不完全恢复时,可以使用参数SET UNTIL命令设置恢复终止标记,然后再分别使用RESTORE和RECOVER命令进行数据库修复和恢复。其中,终止标记可以是时间,SCN或者是日志顺序号。下面是使用不完全数据库恢复方法,将数据库恢复到2002年10月15日09:00:00的例子。恢复结束时,使用RESETLOGS打开数据库,则日志全部清零。RMANrun2set until time 2002-10-15 09:00:00;3restore database;4recover database;5 alter database open resetlogs;6若以SCN或日志顺序号为恢复终止标记,则示例如下:RMANrun2 set until scn 1000;3restore database;4recover database;5 alter database open resetlogs;6 或 RMANrun2set until sequence 121;3restore database;4recover database;5 alter database open resetlogs;6演讲完毕,谢谢观看!
展开阅读全文