注意事項:1 此處實驗環境為同平台,同位元組序,同版本,源機器和目標機器相同的目錄結構。2 目標機器只需要安裝oracle資料庫軟體即可。3 第一次利用備份恢複測試環境,之後從源機器拷貝備份到目標機器並在控制檔案中註冊,再見行恢複測試。
一 拷貝參數檔案備份、控制檔案備份、資料檔案備份、以及歸檔備份到新主機上
1 rman 串連到來源資料庫 [oracle@oracle dbs]$ rman target /Recovery Manager: Release 10.2.0.1.0 - Production on Tue Dec 11 19:02:05 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.connected to target database: CRM (DBID=3601019238)RMAN>
2 分別列出參數檔案備份,控制檔案備份,資料檔案備份,以及歸檔備份的名字
參數檔案備份如下:
RMAN> list backup of spfile;BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
13 Full 7.11M DISK 00:00:04 09-DEC-12
BP Key: 13 Status: AVAILABLE Compressed: NO Tag: TAG20121209T040058
Piece Name: /oracle/app/db1/dbs/0dnsd96i_1_1
SPFILE Included: Modification time: 09-DEC-12
控制檔案備份如下:RMAN> list backup of controlfile;BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
13 Full 7.11M DISK 00:00:04 09-DEC-12
BP Key: 13 Status: AVAILABLE Compressed: NO Tag: TAG20121209T040058
Piece Name: /oracle/app/db1/dbs/0dnsd96i_1_1
Control File Included: Ckp SCN: 2779528241 Ckp time: 09-DEC-12
資料檔案備份如下:RMAN> list backup of database;BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
12 Full 599.38M DISK 00:03:33 09-DEC-12
BP Key: 12 Status: AVAILABLE Compressed: NO Tag: TAG20121209T040058
Piece Name: /oracle/app/db1/dbs/0cnsd8vq_1_1
List of Datafiles in backup set 12
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 2779528081 09-DEC-12 /oracle/test/system1.dbf
2 Full 2779528081 09-DEC-12 /oracle/test/zxb.dbf
3 Full 2779528081 09-DEC-12 /oracle/test/sysaux01.dbf
4 Full 2779528081 09-DEC-12 /oracle/test/users01.dbf
5 Full 2779528081 09-DEC-12 /oracle/test/zxa.dbf
6 Full 2779528081 09-DEC-12 /oracle/test/test1.dbf
7 Full 2779528081 09-DEC-12 /oracle/test/zxc.dbf
8 Full 2779528081 09-DEC-12 /oracle/test/undotbs1.dbf
9 Full 2779528081 09-DEC-12 /oracle/test/zxbig.dbf
列出歸檔備份如下:RMAN> list backup of archivelog all;注意:歸檔的備份應該包括當前聯機記錄檔。
3 copy 這些備份到新的主機
二 恢複參數檔案及控制檔案
1 配置新主機上的ORACLE_SID export ORACLE_SID=CRM
2 在新主機上發起rman串連 [oracle@oracle dbs]$ rman target / Recovery Manager: Release 10.2.0.1.0 - Production on Mon Dec 10 05:49:11 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. connected to target database (not started)
3 設定dbid 並啟動執行個體到nomount狀態 RMAN> set dbid 3601019238 executing command: SET DBID RMAN> startup nomount startup failed: ORA-01078: failure in processing system parametersLRM-00109: could not open parameter file '/oracle/app/db1/dbs/initCRM.ora' starting Oracle instance without parameter file for retrival of spfileOracle instance started Total System Global Area 159383552 bytes Fixed Size 2019224 bytesVariable Size 67108968 bytesDatabase Buffers 83886080 bytesRedo Buffers 6369280 bytes
注意:在rman下即使沒有參數檔案,預設也會啟動一個DUMMY執行個體,以便能夠恢複參數檔案。
4 恢複spfile檔案 RMAN> restore spfile to '/oracle/app/db1/dbs/spfileCRM.ora' from '/oracle/app/db1/dbs/0dnsd96i_1_1'; Starting restore at 10-DEC-12using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: sid=34 devtype=DISK channel ORA_DISK_1: autobackup found: /oracle/app/db1/dbs/0dnsd96i_1_1channel ORA_DISK_1: SPFILE restore from autobackup completeFinished restore at 10-DEC-12
5 startup force nomount RMAN> startup force nomount; Oracle instance started Total System Global Area 322961408 bytes Fixed Size 2020480 bytesVariable Size 96471936 bytesDatabase Buffers 218103808 bytesRedo Buffers 6365184 bytes
6 恢複控制檔案 RMAN> restore controlfile to '/oracle/CRM2/CRM/control01.ctl' from '/oracle/app/db1/dbs/0dnsd96i_1_1'; Starting restore at 10-DEC-12allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=210 devtype=DISK channel ORA_DISK_1: restoring control filechannel ORA_DISK_1: restore complete, elapsed time: 00:00:04Finished restore at 10-DEC-12
cp /oracle/CRM2/CRM/control01.ctl /oracle/CRM2/CRM/control02.ctl
7 啟動資料庫到載入狀態RMAN> alter database mount; database mountedreleased channel: ORA_DISK_1
三 在新控制檔案中註冊資料檔案備份和歸檔備份 RMAN> catalog start with '/backup/'; searching for all files that match the pattern /backup/ List of Files Unknown to the Database=====================================File Name: /backup/0ensd96n_1_1File Name: /backup/0bnsd8vn_1_1File Name: /backup/0cnsd8vq_1_1 Do you really want to catalog the above files (enter YES or NO)? yescataloging files...cataloging done List of Cataloged Files=======================File Name: /backup/0ensd96n_1_1File Name: /backup/0bnsd8vn_1_1File Name: /backup/0cnsd8vq_1_1
四 恢複整個庫
1 RMAN> restore database; Starting restore at 10-DEC-12allocated channel: ORA_DISK_1channel ORA_DISK_1: sid=209 devtype=DISK channel ORA_DISK_1: starting datafile backupset restorechannel ORA_DISK_1: specifying datafile(s) to restore from backup setrestoring datafile 00001 to /oracle/test/system1.dbfrestoring datafile 00002 to /oracle/test/zxb.dbfrestoring datafile 00003 to /oracle/test/sysaux01.dbfrestoring datafile 00004 to /oracle/test/users01.dbfrestoring datafile 00005 to /oracle/test/zxa.dbfrestoring datafile 00006 to /oracle/test/test1.dbfrestoring datafile 00007 to /oracle/test/zxc.dbfrestoring datafile 00008 to /oracle/test/undotbs1.dbfrestoring datafile 00009 to /oracle/test/zxbig.dbfchannel ORA_DISK_1: reading from backup piece /oracle/app/db1/dbs/0cnsd8vq_1_1channel ORA_DISK_1: restored backup piece 1piece handle=/oracle/app/db1/dbs/0cnsd8vq_1_1 tag=TAG20121209T040058channel ORA_DISK_1: restore complete, elapsed time: 00:02:56Finished restore at 10-DEC-12
2 RMAN> recover database; Starting recover at 10-DEC-12using channel ORA_DISK_1 starting media recovery archive log thread 1 sequence 16 is already on disk as file /oracle/CRM2/CRM/redo04b.logarchive log thread 1 sequence 17 is already on disk as file /oracle/CRM2/CRM/redo05.logarchive log filename=/oracle/CRM2/CRM/redo04b.log thread=1 sequence=16archive log filename=/oracle/CRM2/CRM/redo05.log thread=1 sequence=17media recovery complete, elapsed time: 00:00:05Finished recover at 10-DEC-12
3 alter database open resetlogs 開啟資料庫SQL> alter database open resetlogs; Database altered.
總結:到此,庫已經恢複完成,以後只需要把源機器資料備份、歸檔備份,或者歸檔檔案,拷貝到目標機器上,並在控制檔案中註冊該備份(catalog start with ‘/backup/’)然後執行恢複即可。
本文出自 “myblog” 部落格,請務必保留此出處http://jiujian.blog.51cto.com/444665/1085478