1、使用RMAN(不使用FRA)從自動備份中恢複控制檔案
ORACLE 會預設地在$ORACLE_HOME/dbs 或者 $ORACLE_HOME/DATABASE 目錄中建立伺服器參數檔案與控制檔案。
假設已經還原了執行個體參數檔案和啟動了執行個體,還原控制檔案時,一般過程是先設定ORACLE_SID 和 登陸 RMAN, 然後設定DBID, 使RMAN知道需要尋找哪一個資料庫的控制檔案。
如果使用預設的位置來儲存控制檔案的自動備份,就可以簡單的執行:Restore controlfile from autobackup, 這樣RMAN 就可以尋找包含最新控制檔案的控制檔案備份集。 一旦恢複了控制檔案,就必須關閉重啟資料庫執行個體。如果使用的是非預設位置,就需要分配一個指向該位置的通道,然後在使用相同的方法來還原控制檔案。
執行 restore controlfile from autobackup 命令時,Oracle 會在預設位置中(或者在使用allocate channel 命令定義的為位置中)尋找自動的控制檔案備份集。 通過DBID, RMAN 使用這個DBID在包含控制檔案備份的目錄中尋找資料庫的最新控制檔案備份集。 通過應用restore 命令的maxseq 和 maxdays 參數,可以修改RMAN尋找控制檔案自動備份的時間周期。
使用預設設定的樣本:
set oracle_sid=orcl
rman target sys/pwd
set dbid=1247395743
startup nomount;
restore controlfile from autobackup;
shutdown immediate;
不使用預設設定的樣本:
set oracle_sid=orcl
rman target sys/pwd
set dbid=1247395743
startup nomount;
run
{
set controlfile autobackup format for device type disk to 'f:/backup/%f';
allocate channel c1 device type disk;
restore spfile from autobackup;
}
shutdown immediate;
使用maxseq 和 maxdays 參數在超過預設天數(10天)的時間周期內向後尋找控制檔案備份集:
set oracle_sid=orcl
rman target sys/pwd
set dbid=1247395743
startup nomount;
run
{
set controlfile autobackup format for device type disk to 'f:/backup/%f';
allocate channel c1 device type disk;
restore controlfile from autobackup maxseq 200 maxdays 1000;
}
shutdown immediate;
將參數檔案還原到不同的位置和檔案中的樣本(假定資料庫正在啟動和運行):
set oracle_sid=orcl
rman target sys/pwd
set dbid=1247395743
startup nomount;
restore controlfile to 'f:/backup/ctl.restore' from autobackup;
shutdown immediate;
2、使用RMAN 和 FRA 從自動備份中恢複控制檔案
使用FRA恢複控制檔案過程非常簡單,首先確保FRA位置參數被正確設定。 然後啟動執行個體,執行: restore controlfile from autobackup;
set oracle_sid=orcl
rman target sys/pwd
startup nomount;
restore controlfile from autobackup;
shutdown immediate;
也可以使用maxseq 和 maxdays 參數進行設定:
Restore controlfile from autobackup maxseq 200 maxdays 100;
3、恢複較早的控制檔案備份
有時候,可能需要恢複一段時間以前建立的控制檔案備份,因而控制檔案不是來自於最新的備份(執行resetlogs 通常是這樣)。 結合until time 參數,restore controlfile from autobackup 命令可以實現這一操作。 如:
Restore controlfile from autobackup until time "to_date('2010-6-27 13:25:00','yyyy-mm-dd hh24:mi:ss')";
如果要使用這個命令,就需要知道哪些控制檔案備份可以用於操作。 可以使用list backup of controlfile 命令確定哪些備份控制檔案可以用於還原作業。
RMAN> list backup of controlfile;
備份組列表
===================
BS 關鍵字 類型 LV 大小 裝置類型 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
113 Full 16.00M SBT_TAPE 00:00:05 18-6月 -10
BP 關鍵字: 116 狀態: AVAILABLE 已壓縮: NO 標記: TAG20100618T085926
控制代碼: 07lghd6e_1_1 介質: /,07lghd6e_1_1
包括的控制檔案: Ckp SCN: 1403939 Ckp 時間: 18-6月 -10