环境说明:本实验在开启 控制文件自动备份的前提下,利用 autobackup 模拟恢复参数文件全部丢失与控制文件全部丢失。
1.开启 AUTOBACKUP 功能--查看 CONTROLFILE AUTOBACKUP 参数RMAN> show all;CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default--开启 CONTROLFILE AUTOBACKUP 参数 RMAN> CONFIGURE CONTROLFILE AUTOBACKUP on;new RMAN configuration parameters are successfully stored--查看 CONTROLFILE AUTOBACKUP 参数RMAN> show all;CONFIGURE CONTROLFILE AUTOBACKUP ON;--做个全库+归档备份[oracle@11g ~]$ mkdir rmanback[oracle@11g ~]$ cd rmanba[oracle@11g rmanbak]$ pwd/home/oracle/rmanbakRMAN>run{ sql 'alter system archive log current';allocate channel ch1 type disk;allocate channel ch2 type disk;backup incremental level 0 database plus archivelog delete inputformat '/home/oracle/rmanbak/db_%d_%U'tag=db_inc_0;release channel ch1;release channel ch2;}说明: autobackup 开启的时候, spfile 与 controlfile 的默认备份位置在 FRA ,而不是 format 指定的备份路径。2.模拟 SPFILE 丢失 ,恢复 。
--模拟 SPFILE 丢失,且 shutdown[oracle@11g rmanbak]$ cd $ORACLE_HOME/dbs[oracle@11g dbs]$ lltotal 9852-rw-rw----. 1 oracle oinstall 1544 Mar 18 05:05 hc_orcl.dat-rw-r--r--. 1 oracle oinstall 5955 Mar 11 18:10 init.ora-rw-r--r--. 1 oracle oinstall 5949 Mar 15 11:05 initorcl.ora-rw-r-----. 1 oracle oinstall 24 Mar 11 16:54 lkORCL-rw-r-----. 1 oracle oinstall 1536 Mar 11 16:35 orapworcl-rw-r-----. 1 oracle oinstall 10043392 Mar 18 14:51 snapcf_orcl.f-rw-r-----. 1 oracle oinstall 13824 Mar 18 14:48 spfileorcl.ora[oracle@11g dbs]$ rm -rf spfileorcl.ora[oracle@11g dbs]$ rm -rf initorcl.ora[oracle@11g dbs]$ rm -rf init.oraSQL> shutdown immediate;SQL> startup;ORA-01078: failure in processing system parametersLRM-00109: could not open parameter file '/home/oracle/app/oracle/product/11.2.0.4/dbhome_1/dbs/initorcl.ora'RMAN> set dbid= 1388303183executing command: SET DBID
RMAN> startup nomount;startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/home/oracle/app/oracle/product/11.2.0.4/dbhome_1/dbs/initorcl.ora'starting Oracle instance without parameter file for retrieval of spfile
Oracle instance startedTotal System Global Area 1068937216 bytesFixed Size 2260088 bytesVariable Size 281019272 bytesDatabase Buffers 780140544 bytesRedo Buffers 5517312 bytesRMAN> list backup of spfile;
--通过自动备份恢复RMAN> restore spfile to '/home/oracle/spfileorcl.ora' from autobackup;--通过某个备份文件恢复RMAN> restore spfile to '/home/oracle/spfileorcl.ora' from '/home/oracle/app/flash_recovery_area/ORCL/autobackup/2015_03_18/o1_mf_s_874680707_bjmlb45y_.bkp'; Finished restore at 18-MAR-15[oracle@11g ~]$ pwd/home/oracle[oracle@11g dbs]$ ll-rw-r-----. 1 oracle oinstall 13824 Mar 18 15:38 spfileorcl.ora[oracle@11g ~]$ cp spfileorcl.ora $ORACLE_HOME/dbsRMAN> shutdown immediate;RMAN> startup;database opened3. 模拟Controlfile全部丢失,恢复 。
SQL> show parameter control_fileNAME TYPE VALUE------------------------------------ ----------- ------------------------------control_file_record_keep_time integer 7control_files string /home/oracle/app/oradata/orcl/ control01.ctl, /home/oracle/ap p/flash_recovery_area/orcl/con trol02.ctl[oracle@11g dbs]$ cd /home/oracle/app/oradata/orcl
[oracle@11g orcl]$ mv control01.ctl control01.ctl.bak[oracle@11g orcl]$ cd /home/oracle/app/flash_recovery_area/orcl/[oracle@11g orcl]$ mv control02.ctl control02.ctl.bakSQL> startup;ORACLE instance started.Total System Global Area 835104768 bytesFixed Size 2257840 bytesVariable Size 536874064 bytesDatabase Buffers 289406976 bytesRedo Buffers 6565888 bytesORA-00205: error in identifying control file, check alert log for more info-- 有 ORACLE 进程,说明已经启动到 nomount [oracle@11g ~]$ ps -ef|grep ora_oracle 25331 1 0 11:23 ? 00:00:00 ora_pmon_orcloracle 25333 1 0 11:23 ? 00:00:00 ora_psp0_orcl[oracle@11g ~]$ rman target /说明:控制文件恢复 如果有控制文件自动备份 直接通过 autobackup 恢复,没有的话就通过指定控制文件备份集恢复。--通过自动备份恢复 RMAN>restore controlfile from autobackup;Finished restore at 18-MAR-15--通过某个备份文件恢复RMAN> list backup of controlfile;RMAN> restore controlfile from '/u01/backup/ctl_file_1lo65676_1_1_20130403';RMAN>alter database mount;RMAN>recover database;archived log for thread 1 with sequence 1 is already on disk as file /home/oracle/app/oradata/orcl/redo01.logarchived log file name=/home/oracle/app/oradata/orcl/redo01.log thread=1 sequence=1media recovery complete, elapsed time: 00:00:01Finished recover at 19-MAR-15RMAN>alter database open resetlogs;Database altered.