開啟 控制檔案自動備份下,引數檔案、控制檔案全部丟失恢復

張衝andy發表於2017-04-24

環境說明:本實驗在開啟 控制檔案自動備份的前提下,利用 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/rmanbak
RMAN>
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 input
format '/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]$ ll
total 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.ora
SQL> shutdown immediate;
SQL> startup;
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'
RMAN> set dbid= 1388303183

executing 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 started
Total System Global Area 1068937216 bytes
Fixed Size 2260088 bytes
Variable Size 281019272 bytes
Database Buffers 780140544 bytes
Redo Buffers 5517312 bytes

RMAN> 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/dbs
RMAN> shutdown immediate;
RMAN> startup;
database opened

3. 模擬Controlfile全部丟失,恢復 。
SQL> show parameter control_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_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.bak
SQL> startup;
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2257840 bytes
Variable Size 536874064 bytes
Database Buffers 289406976 bytes
Redo Buffers 6565888 bytes
ORA-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_orcl
oracle 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.log
archived log file name=/home/oracle/app/oradata/orcl/redo01.log thread=1 sequence=1
media recovery complete, elapsed time: 00:00:01
Finished recover at 19-MAR-15
RMAN>alter database open resetlogs;
Database altered.

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2137859/,如需轉載,請註明出處,否則將追究法律責任。

相關文章