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

Posted zylong-sys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了How To Restore Rman Backups On A Different Node When The Directory Structures Are Different (Doc ID 相关的知识,希望对你有一定的参考价值。

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 ‘/<node1 path>/backup‘  NODE 1上的备份完成到 ‘/<node1 path>/backup‘ 
++ The database files on NODE 1 are in ‘/<node1 path>/data‘  NODE 1上的数据库文件位于‘/<node1 path>/data‘
++ The backups on NODE 2 will be in location ‘/<node2 path>/backup‘  NODE 2上的备份将位于‘/<node2 path>/backup‘
++ The database files on NODE 2 will be restored to ‘/<node2 path>/data‘  NODE 2上的数据库文件将还原到‘/<node2 path>/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: <DB_NAME> (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=/<node1 path>/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=/<node1 path>/data/sysaux01.dbf
input datafile fno=00001 name=/<node1 path>/data/system01.dbf
input datafile fno=00002 name=/<node1 path>/data/undotbs01.dbf
input datafile fno=00004 name=/<node1 path>/data/users01.dbf
input datafile fno=00005 name=/<node1 path>/data/1.dbf
input datafile fno=00006 name=/<node1 path>/data/sysaux02.dbf
input datafile fno=00007 name=/<node1 path>/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=/<node1 path>/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=/<node1 path>/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=/<oracle_home>/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 ‘/<node2 path>/backup‘
+ Controlfile backup piece to the location ‘/<node2 path/backup‘
+ The parameter file i.e init.ora file to the default location i.e $ORACLE_HOME/dbs

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=/<oracle_home>
$ export ORACLE_SID=<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  ‘/<node2 path/backup/c-3932056136-20070213-02‘; 
Starting restore at 13-FEB-07 
using target database control file instead of recovery catalog 
allocated channel: ORA_DISK_1 
channel ORA_DISK_1: sid=155 devtype=DISK 
channel ORA_DISK_1: restoring control file 
channel ORA_DISK_1: restore complete, 
elapsed time: 00:00:02 
output filename=/<node2 path/data/control01.ctl 
Finished restore at 13-FEB-07 

6) Mount the database

RMAN > alter database mount

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

RMAN> catalog backuppiece ‘/<node2 path/backup/o1_mf_annnn_TAG20070213T002925_2x21m6ty_.bkp‘;
RMAN> catalog backuppiece ‘/<node2 path/backup/o1_mf_annnn_TAG20070213T002825_2x21kbds_.bkp‘;
RMAN> catalog backuppiece ‘/<node2 path/backup/o1_mf_nnndf_TAG20070213T002827_2x21kd12_.bkp‘; 
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 ‘/<node1 path>/data/redo01.log‘ to ‘/<node2 path>/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 ‘/<node2 path>/data/sys01.dbf‘; 
 set newname for datafile 2 to ‘/<node2 path>/data/undotbs01.dbf‘; 
 set newname for datafile 3 to ‘/<node2 path>/data/sysaux01.dbf‘; 
 set newname for datafile 4 to ‘/<node2 path>/data/users01.dbf‘; 
 set newname for datafile 5 to ‘/<node2 path>/data/1.dbf‘; 
 set newname for datafile 6 to ‘/<node2 path>/data/sysaux02.dbf‘; 
 set newname for datafile 7 to ‘/<node2 path>/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 的主要内容,如果未能解决你的问题,请参考以下文章

RMAN-06023: no backup or copy of datafile 16 found to restore

异机恢复 RMAN-06023: no backup or copy of datafile 17 found to restore

How to Delete Archivelog Using RMAN in Oracle

How to backup a remote PostgreSQL db and restore it locally?

How to Baskup and Restore a MySQL database

RMAN-06025 no backup of archive log …… found to restore,发现去找以前的归档日志去了