Oracle rman恢复到异地、异机(一)

2014-11-24 17:14:09 · 作者: · 浏览: 2

1.1 原服务器备份数据库


第一步,查看数据库的实例名和DBID


connected to target database: DB3 (DBID=2060124769, not open)


第二步,进行全备份


backup AS COMPRESSED BACKUPSET database


include current controlfile format '/orabak/db_%d_%T_%s'


plus archivelog format '/orabak/arch_%d_%T_%s' ;


第三步,查看数据库文件的位置: /home/oracle/oradata/db3/


第四步,将备份文件arch_DB3_20140910_8和 db_ DB3_20140910_7复制异机上/home/oracle/orabak


1.2 目标服务器上创建数据库


第一步,创建实例名相同(db3),数据库文件的位置相同(/home/oracle/oradata/db3/)的数据库。


第二步,关闭实例,启动到nomount状态。Sql>startup nomount;


第三步,设置dbid和原数据库dbid相同


rman target/


Recovery Manager: Release 10.2.0.5.0 - Production on Thu Sep 11 19:53:50 2014


Copyright (c) 1982, 2007, Oracle. All rights reserved.


connected to target database: db3 (not mounted)


RMAN> set dbid 2060124769


executing command: SET DBID


第四步,恢复控制文件


RMAN> restore controlfile from '/home/oracle/db_DB3_20140910_7';


Starting restore at 11-SEP-14


using target database control file instead of recovery catalog


allocated channel: ORA_DISK_1


channel ORA_DISK_1: sid=153 devtype=DISK


channel ORA_DISK_1: restoring control file


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


output filename=/home/oracle/oradata/db3/db3/control01.ctl


output filename=/home/oracle/oradata/db3/db3/control02.ctl


output filename=/home/oracle/oradata/db3/db3/control03.ctl


Finished restore at 11-SEP-14



第五步,mount数据库


RMAN> alter database mount;


database mounted


released channel: ORA_DISK_1



第六步,注册从源数据库拷贝过来的备份集到rman中


RMAN> catalog start with '/home/oracle/orabak';


searching for all files that match the pattern /home/oracle/orabak


List of Files Unknown to the Database


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


File Name: /home/oracle/orabak/arch_DB3_20140910_8


File Name: /home/oracle/orabak/db_DB3_20140910_7


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


cataloging files...


cataloging done



第七步,恢复归档日志


RMAN> restore archivelog all;


Starting restore at 11-SEP-14


using channel ORA_DISK_1


archive log thread 1 sequence 6 is already on disk as file /oracle/product/10.2.0.5/dbs/arch1_6_857918757.dbf


channel ORA_DISK_1: starting archive log restore to default destination


channel ORA_DISK_1: restoring archive log


archive log thread=1 sequence=3


channel ORA_DISK_1: reading from backup piece /home/oracle/orabak/arch_DB3_20140910_1


channel ORA_DISK_1: restored backup piece 1


piece handle=/home/oracle/orabak/arch_DB3_20140910_1 tag=TAG20140910T172944


(注:如果不恢复归档日志,


RMAN> recover database;


Starting recover at 11-SEP-14


using channel ORA_DISK_1


starting media recovery


unable to find archive log


archive log thread=1 sequence=7)



第八步,恢复数据库文件(因为目标数据库和原数据库的数据文件位置相同,所以简单些)


RMAN> restore database;


Starting restore at 11-SEP-14


using channel ORA_DISK_1


channel ORA_DISK_1: starting datafile backupset restore


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


restoring datafile 00001 to /home/oracle/oradata/db3/system01.dbf


restoring datafile 00002 to /home/oracle/oradata/db3/undotbs01.dbf


restoring datafile 00003 to /home/oracle/oradata/db3/sysaux01.dbf


restoring datafile 00004 to /home/oracle/oradata/db3/users01.dbf


channel ORA_DISK_1: reading from backup piece /home/oracle/orabak/db_DB3_20140910_6


channel ORA_DISK_1: restored backup piece 1


piece handle=/home/oracle/orabak/db_DB3_20140910_6 tag=TAG20140910T173540



第九步,恢复数据库


RMAN> recover database;


Starting recover at