oracle備份恢復之rman恢復到異機

原文出處:http://jiujian.blog.51cto.com/444665/1085478 

******

在原主的基礎上補充一點:

保證目標端的實例名和dbid要一致,密碼文件放置到新庫環境中

創建和源庫相同的控制文件,歸檔文件目錄,還有audit文件的存在路徑,並更改權限

******

注意事項:

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 2012

Copyright (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 parameters

LRM-00109: could not open parameter file '/oracle/app/db1/dbs/initCRM.ora'

 

starting Oracle instance without parameter file for retrival of spfile

Oracle instance started

 

Total System Global Area     159383552 bytes

 

Fixed Size                     2019224 bytes

Variable Size                 67108968 bytes

Database Buffers              83886080 bytes

Redo 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-12

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=34 devtype=DISK

 

channel ORA_DISK_1: autobackup found: /oracle/app/db1/dbs/0dnsd96i_1_1

channel ORA_DISK_1: SPFILE restore from autobackup complete

Finished 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 bytes

Variable Size                 96471936 bytes

Database Buffers             218103808 bytes

Redo 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-12

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=210 devtype=DISK

 

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:04

Finished restore at 10-DEC-12

 

 

cp /oracle/CRM2/CRM/control01.ctl /oracle/CRM2/CRM/control02.ctl

 

7 啓動數據庫到加載狀態

RMAN> alter database mount;

 

database mounted

released 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_1

File Name: /backup/0bnsd8vn_1_1

File Name: /backup/0cnsd8vq_1_1

 

Do you really want to catalog the above files (enter YES or NO)? yes

cataloging files...

cataloging done

 

List of Cataloged Files

=======================

File Name: /backup/0ensd96n_1_1

File Name: /backup/0bnsd8vn_1_1

File Name: /backup/0cnsd8vq_1_1

 

四  恢復整個庫

 

1 RMAN> restore database;

 

Starting restore at 10-DEC-12

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=209 devtype=DISK

 

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /oracle/test/system1.dbf

restoring datafile 00002 to /oracle/test/zxb.dbf

restoring datafile 00003 to /oracle/test/sysaux01.dbf

restoring datafile 00004 to /oracle/test/users01.dbf

restoring datafile 00005 to /oracle/test/zxa.dbf

restoring datafile 00006 to /oracle/test/test1.dbf

restoring datafile 00007 to /oracle/test/zxc.dbf

restoring datafile 00008 to /oracle/test/undotbs1.dbf

restoring datafile 00009 to /oracle/test/zxbig.dbf

channel ORA_DISK_1: reading from backup piece /oracle/app/db1/dbs/0cnsd8vq_1_1

channel ORA_DISK_1: restored backup piece 1

piece handle=/oracle/app/db1/dbs/0cnsd8vq_1_1 tag=TAG20121209T040058

channel ORA_DISK_1: restore complete, elapsed time: 00:02:56

Finished restore at 10-DEC-12

 

2 RMAN> recover database;

 

Starting recover at 10-DEC-12

using channel ORA_DISK_1

 

starting media recovery

 

archive log thread 1 sequence 16 is already on disk as file /oracle/CRM2/CRM/redo04b.log

archive log thread 1 sequence 17 is already on disk as file /oracle/CRM2/CRM/redo05.log

archive log filename=/oracle/CRM2/CRM/redo04b.log thread=1 sequence=16

archive log filename=/oracle/CRM2/CRM/redo05.log thread=1 sequence=17

media recovery complete, elapsed time: 00:00:05

Finished recover at 10-DEC-12

 

3 alter database open resetlogs 打開數據庫

SQL> alter database open resetlogs;

 

Database altered.

總結:到此,庫已經恢復完成,以後只需要把源機器數據備份、歸檔備份,或者歸檔文件,拷貝到目標機器上,並在控制文件中註冊該備份(catalog start with ‘/backup/’)然後執行恢復即可。


原文出處:http://jiujian.blog.51cto.com/444665/1085478 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章