1.丟失控制文件
啟動數據庫至nomount狀態:restore controlfile from autobackup/restore controlfile from '+data/backup/contrlbak/...'
->alter database mount->open;
2.誤刪數據文件
啟動至mount狀態->alter database datafile 7 offline->alter database open->restore datafile 7->recover datafile 7->alter database datafile online;
3.丟失參數文件
此時參數文件丟失,catalog 中根據DBID識別注冊數據庫,此時無法識別.
export ORACLE_SID=orcl1->rman target/->restore spfile from '+data/autobackup/2015_11_27/s_896863604.1824.896863605'
->shutdown immediate;
然後可以連接catalog再進行其它恢復,最後必須執行restore database和recover database,最後alter database open resetlogs才能open數據庫。
4.recover database定義
recover database,是做的完全恢復,也就是說日志文件歸檔的和在線日志必須完好無損,還有數據文件,控制文件都准備齊全才可!如果有在線日志
損壞,或者歸檔日志缺失的話,就無法執行完全恢復,需要不完全恢復了!recover database using backup controlfile......or until cancel;然後
resetlogs打開,再不行就是使用隱含參數打開!
5.alter database open resetlogs
open resetlogs應該是將日志重新歸位,使數據庫的scn,檢查點等保持一致;相當於把所有的聯機日志重新“格式化”。這是會丟失數據的。
resetlog 選項在不完全恢復時用,歸檔日志序號重新開始排序
noresetlog 在完全恢復的時候用
6.基於時間點的恢復
SQL>set time on;
主要是需要恢復的時間點的選取;
啟動至mount狀態
RMAN->run{
SET UNTIL TIME "to_date('2014-01-17 09:54:33','yyyy-mm-dd hh24:mi:ss')";
RESTORE DATABASE;
RECOVER DATABASE;
}