[Oracle][rman]利用Rman備份檔實現異機還原
今年一月底左右被公司派去大陸進行Oracle相關教育訓練,
當時大陸分公司有個需求希望能利用資料庫備份檔案還原到其他Server上,
這裡順便記錄一下。
這次我使用比較直覺的方式來處理這Case(我太懶了XD)。
前置工作
記錄來源資料庫的DBID
拷貝來源資料庫參數檔案和redo log
create pfile='/home/oracle/backup/initlnxdemo.ora' from spfile;
確認備份(含控制檔,資料檔案,歸檔)有效,並已拷貝至目標伺服器
(沒歸檔應該也可以,只要能確認資料檔案和控制檔是一致的備份)
開始異機還原
注意事項
1.因為我用偷懶的方法,所以在異機建立新資料庫(SID和相關路徑都要相同)。
由於我都在同一台Server上模擬,所以我會先drop原本DataBase,Drop之前請先確認備份是否完整可用。
修改dbid
restore parfile from backup
restore spfile to pfile '/u01/app/oracle/admin/lnxdemo/pfile/init.ora.013201010437' from '/home/oracle/backup/c-3445351136-20100113-00.clt';
startup nomount using new pfile
startup force nomount pfile='/u01/app/oracle/admin/lnxdemo/pfile/init.ora.013201010437';
copy redo to target and restore control file from backup
Copy redo file
cp redo01.log /home/oracle/oradata/lnxdemo
cp redo02.log /home/oracle/oradata/lnxdemo
cp redo03.log /home/oracle/oradata/lnxdemo
restore controlfile from '/home/oracle/backup/c-3445351136-20100112-01.clt';
mount database
restore database(修復資料庫)
recover database;還原資料庫
開啟資料庫
alter database open resetlogs
remount temp tablespace
我用取代的方式來remount temp tablespace
--先建立temp2
create temporary tablespace temp2 tempfile '/home/oracle/oradata/lnxdemo/temp2.dbf' size 10M autoextend off;
--修改資料庫預設temporary tablespace
alter database default temporary tablespace temp2;
--刪除資料庫原有temporary tablespace
drop tablespace temp;
--新建立temp
create temporary tablespace temp tempfile '/home/oracle/oradata/lnxdemo/temp01.dbf' size 100M autoextend on;
--再次修改資料庫預設temporary tablespace
alter database default temporary tablespace temp;
--刪除temp2
drop tablespace temp2;
確認相關Schema是否存在
最後重新建立EM即大功告成。