How To Restore Rman Backups On A Different Node When The Directory Structures Are Different (Doc ID 419137.1)

How To Restore Rman Backups On A Different Node When The Directory Structures Are Different (Doc ID 419137.1)

APPLIES TO:

Oracle Database - Enterprise Edition - Version 10.1.0.2 and later
Information in this document applies to any platform.
***Checked for relevance on 20-July-2015***

GOAL

Restoring Rman backup on a different node with different backup directory structures and different database directory structures .
在具有不同备份目录结构和不同数据库目录结构的不同节点上还原Rman备份

++ Rman backup of database is done on NODE 1.   数据库的RMAN备份是节点1进行
++ The database has to be has to be restored from the Rman backup on NODE 2.   该数据库必须是已经被从RMAN备份中恢复节点2
++ The directory structures for the backups and the database files are different on NODE 2.   用于备份的目录结构和数据库文件在节点2不同
++ The Rman backups have to put in new directory structure on NODE 2 unlike as they were on NODE 1.   Rman备份必须在NODE 2上放入新的目录结构,这与在NODE 1上不同。
++ Also the database has to be restored to a different directory structure on NODE  2.   同样,数据库也必须还原到NODE 2上的其他目录结构

SOLUTION

ASSUMPTIONS  假设
-----------------------

++ The backups on NODE 1 are done to '//backup'   NODE 1上的备份完成到 '//backup' 
++ The database files on NODE 1 are in '//data'   NODE 1上的数据库文件位于'//data'
++ The backups on NODE 2 will be in location '//backup'   NODE 2上的备份将位于'//backup'
++ The database files on NODE 2 will be restored to '//data'  NODE 2上的数据库文件将还原到'//data'

Steps to acheive the goal:  实现目标的步骤

1) Connect to the target database using rman and backup the database ---> ON NODE 1

$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Tue Feb 13 00:29:33 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database:  (DBID=3932056136)

RMAN> backup database plus archivelog;

Starting backup at 13-FEB-07
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=143 recid=109 stamp=614392105
channel ORA_DISK_1: starting piece 1 at 13-FEB-07
channel ORA_DISK_1: finished piece 1 at 13-FEB-07
piece handle=//backup/o1_mf_annnn_TAG20070213T002825_2x21kbds
_.bkp tag=TAG20070213T002825 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 13-FEB-07

Starting backup at 13-FEB-07
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00003 name=//data/sysaux01.dbf
input datafile fno=00001 name=//data/system01.dbf
input datafile fno=00002 name=//data/undotbs01.dbf
input datafile fno=00004 name=//data/users01.dbf
input datafile fno=00005 name=//data/1.dbf
input datafile fno=00006 name=//data/sysaux02.dbf
input datafile fno=00007 name=//data/undotbs02.dbf
channel ORA_DISK_1: starting piece 1 at 13-FEB-07
channel ORA_DISK_1: finished piece 1 at 13-FEB-07
piece handle=//backup/o1_mf_nnndf_TAG20070213T002827_2x21kd12
_.bkp tag=TAG20070213T002827 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55
Finished backup at 13-FEB-07

Starting backup at 13-FEB-07
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=144 recid=110 stamp=614392165
channel ORA_DISK_1: starting piece 1 at 13-FEB-07
channel ORA_DISK_1: finished piece 1 at 13-FEB-07
piece handle=//backup/o1_mf_annnn_TAG20070213T002925_2x21m6ty
_.bkp tag=TAG20070213T002925 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 13-FEB-07

Starting Control File and SPFILE Autobackup at 13-FEB-07
piece handle=//dbs/c-3932056136-20070213-02 comment=NONE
Finished Control File and SPFILE Autobackup at 13-FEB-07

RMAN> exit

2) Move the following files to the NODE 2:  将以下文件移至NODE 2

+ The database backup pieces to location '//backup'
+ Controlfile backup piece to the location '/ 
  

3) Edit the PFILE on NODE 2 to change the environment specific parameters like .

user_dump_dest = 
background_dump_dest =
control_files =

4) Once the PFILE is suitably modified invoke Rman on the NODE 2 after setting the Oracle environment variables and start the database in nomount mode:  

$ export ORACLE_HOME=/
$ export ORACLE_SID=
$ export PATH=$ORACLE_HOME/bin:$PATH
$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Tue Feb 13 00:36:55 2007
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database (not started)
RMAN> startup nomount
Oracle instance started
Total System Global Area     205520896 bytes
Fixed Size                     1218508 bytes
Variable Size                 75499572 bytes
Database Buffers             121634816 bytes
Redo Buffers                   7168000 bytes

5) Restore the controlfile from the backup piece.

RMAN> restore controlfile from  '/ 
  

6) Mount the database

RMAN > alter database mount

7) Now catalog the backup pieces that were shipped from NODE 1 

RMAN> catalog backuppiece '/ catalog backuppiece '/ catalog backuppiece '/ 
  
This feature of cataloging backup pieces is available from ORACLE 10g versions. Prior to Oracle 10g we were not able to catalog the backup pieces. For more information on cataloging options refer the metalink note 470463.1   
从ORACLE 10g版本可以使用对备份件进行catalog。在Oracle 10g之前,我们无法对备份文件进行catalog。 有关catalog选项的更多信息,请参阅 metalink note 470463.1 

8) Get to know the last sequence available in the archivelog backup using the following command.This will help us in recovering the database till that archivelog.

使用以下命令了解archivelog备份中的最后一个可用sequence,这将有助于我们恢复数据库直到该archivelog

RMAN > list backup of archivelog all;
Let us assume the last sequence of last archivelog in the backup is 50.

9) Rename the Redolog files,so that they can be created in new locations when opened the database is opened in resetlogs 

重命名Redolog,以便在resetlogs打开数据库时可以在新位置创建它们

SQL> alter database rename file '//data/redo01.log' to '//data/redo01.log'; 
...... 
...... 
...... 

10) Now restore the datafiles to new locations and recover. Since we are recovering the database here till the archivelog sequence 50 the sequence number in the SET UNTIL SEQUENCE clause

现在将数据文件restore到新位置并recover。由于我们在此处recover数据库,直到存档日志序列50为止,SET UNTIL SEQUENCE 子句中的序列号

RMAN> run 
 { 
 set until sequence 51; 
 set newname for datafile 1 to '//data/sys01.dbf'; 
 set newname for datafile 2 to '//data/undotbs01.dbf'; 
 set newname for datafile 3 to '//data/sysaux01.dbf'; 
 set newname for datafile 4 to '//data/users01.dbf'; 
 set newname for datafile 5 to '//data/1.dbf'; 
 set newname for datafile 6 to '//data/sysaux02.dbf'; 
 set newname for datafile 7 to '//data/undotbs02.dbf'; 
 restore database; 
 switch datafile all; 
 recover database; 
 alter database open resetlogs; 
 } 
If we are restoring the Rman backups  from tapes,then we should ensure the same media manager variables that were used during backups are maintained during restore too. 
如果我们要从磁带还原Rman备份,那么我们应该确保在还原过程中也保持与备份期间使用的介质管理器变量相同的方式。
The below article gives the information of various media manager Environment Variables. 
下面的文章提供了各种媒体管理器环境变量的信息
NOTE.312737.1 RMAN and Specific Media Managers Environment Variables.

11) Confirm your tempfiles 

Confirm the location of your tempfiles, recreate them at the new location if required:

确认tempfiles的位置,如果需要,请在新位置重新创建它们

SQL> select * from v$tempfile;
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'new tempfile path filename' REUSE;

REFERENCES

NOTE:228257.1 - RMAN 'Duplicate Database' Feature in Oracle9i / 10G and 11G
NOTE:73974.1 - RMAN: Restoring an RMAN Backup to Another Node

你可能感兴趣的:(How To Restore Rman Backups On A Different Node When The Directory Structures Are Different (Doc ID 419137.1))