1.執行rman備份
rman備份包括全備,增量備份(可選),歸檔或歸檔備份,控制文件備份(可以用全備之後的控制文件自動備份)
2.在異機安裝同版本軟件(不需要建庫)
3.拷貝恢復需要的文件
包括所有rman備份,參數文件,密碼文件
備份文件位置儘量和原機器位置保持一致,可減少一些額外操作
參數文件和密碼文件放在$ORACLE_HOME/dbs下
4.調整參數文件並將數據庫啓動到nomount
根據參數文件中記錄的文件位置信息創建對應的文件目錄,否則無法啓動到nomount狀態
5.還原控制文件並將數據庫啓動到mount
6.若備份文件位置和原機器有差異,需用catalog start with ‘<backup_file_path>’;
將備份位置信息同步到控制文件
catalog start with命令不能重複使用,否則會讓數據庫認爲備份文件存在多個副本,在還原或恢復的時候會出問題。若需要重複執行或新添了備份文件需要刷新,可按照以下步驟操作:
修改備份文件的路徑並執行crosscheck backup;
,這會讓控制文件中的備份位置信息失效
執行delete expired backup;
,這會刪除失效的備份位置信息
重新執行catalog start with '<backup_file_path>';
,將最新的備份位置信息寫入控制文件
7.還原數據文件
若數據文件位置和原機器有差異,需使用set newname for datafile '<old_filename>' to '<new_filename>';
命令來指定舊文件與新文件之間的映射關係。
還原之後,需要使用switch datafile all;
命令讓文件位置信息寫入控制文件。自此數據文件還原完成。
8.恢復數據文件
恢復前,先使用list backup of archivelog all
或者list archivelog all
查看歸檔或歸檔備份中最新的sequence或scn或time(我一般喜歡使用sequence,比較方便)
然後執行recover database unitl sequence <seq_no>;
9.若日誌文件位置和原機器位置有差異,使用如下命令修改日誌文件位置:
alter database rename file '<old_logfile_name>' to '<new_logfile_name>';
10.resetlogs方式啓動數據庫
alter database open resetlogs;
11.調整臨時表空間
若臨時表空間位置與原機器有差異,需要新建臨時表空間並設置爲默認臨時表空間,最好清理原來的臨時表空間信息