ORACLE中采用rman備份異機恢復數據庫詳細過程
場景:
1,從生產庫上copy好全備份文件
恢復數據庫需要准備的文件:rman完整備份(包括數據文件、日志文件、控制文件、參數文件),記錄源數據庫的DBID
1.1,查看參數文件信息
RMAN> list backup of spfile;
1.2查看控制文件信息:
RMAN> list backup of controlfile;
1.3 查看數據庫信息:
RMAN> list backup of database;
1.4 查看歸檔日志信息:
RMAN> list backup of archivelog all;
2、開始恢復參數文件控制文件:
SQL> select dbid from v$database;
2.1 設置DBID:
注意:在rman下即使沒有參數文件,默認也會啟動一個DUMMY實例,以便能夠恢復參數文件。
2.2 恢復spfile文件
startup到open狀態,先查看spfile文件位置:
有CONFIGURE CONTROLFILE AUTOBACKUP ON; 表示參數文件和控制文件有備份
2.3,恢復控制文件位置
查看控制文件位置
2.4, 在新控制文件中注冊數據文件備份和歸檔備份
catalog start with '/oracle/app/oracle/flash_recovery_area/stuorcl/backupset/2015-01-27/';
2.5,恢復整個庫
因為前面恢復了整個spfile已經controlfile,所以接下來恢復所有庫的話,就不用帶參數,直接恢復restore database就可以 ;
3.1,查看原來備份庫上的歸檔信息
[oracle@xuexi4 ~]$ sqlplus / as sysdba
3.2,copy備份庫上面的 29167到29186的dbf歸檔日志文件到測試庫的歸檔日志目錄下面
cp *29186* /tmp/rmanbak
3.3,查看到原來的歸檔目錄和測試庫一樣,所以嘗試下繼續執行recover命令,然後繼續在測試庫的rman界面,進行recover操作:
RMAN> recover database;
3.3,看到有報錯,還是缺失歸檔日志包,去現在測試庫/oracle/app/oracle/flash_recovery_area/archivelog/下面看了沒有新的29187歸檔日志,所以從原來備份庫上copy過來的歸檔日志都應該執行完了,直接試試打開open。
RMAN> alter database open resetlogs;
4,登錄連接驗證,驗證連接報錯:
[oracle@xuexi4 admin]$ sqlplus "sys/sys@SC_PD";
5,找到原來的用戶下的表,導出來恢復到線上。
總結步驟:
1,scp全備文件到測試庫,在備份庫上查詢好參數文件控制文件歸檔路徑等信息