使用RMAN恢复数据库到不同主机

当未使用catalog方式进行rman备份时,将备份集转移到其他主机时,除非目录结构相同,否则控制文件将无法识别路径不同的备份集,针对这类问题,可以使用dbms_backup_restore包进行文件回复;但是从Oracle 10g开始,Oracle终于简化了这类问题的处理,现在通过rman可以很容易地处理不同主机的rman备份集恢复。

 

一、获得源数据库的参数文件,修改后传送至目标数据库,修改后的参数文件可以用于数据库启动,主要修改的参数应该包括:*_dmpb_destcontrol_filesdb_recovery_file_destdb_create_file_dest等。

 

二、建立相应的文件夹

如:admin下建立acf及里面对应的文件夹(adump,bdump,cdump,dpdump,pfile,udump),oradata下建立acf,flash_recovery_area下建立acf

 

三、在window平台下,可以通过oradim创建一个服务启动oracle环境

C:\>oradim -new -sid acf

实例已创建。

注意:记得启动服务。

 

四、通过rman来启动数据库到nomount状态

C:\>set oracle_sid=acf

C:\>rman target / 

RMAN> startup nomount pfile ='E:\oracle\product\10.2.0\admin\acf\pfile\init.ora'

 

五、通过备份的控制文件恢复出控制文件

RMAN> restore controlfile to 'E:\oracle\product\10.2.0\oradata\acf\control01.ctl' from 'E:

\OracleBacup\ACFCTL_ACF_20080904_222.CTL'

然后根据参数文件的control_files设置,复制相应的副本。

注意:前面恢复出来的控制文件位置及名称取决于你在参数文件中的设置

 

六、装载数据库

RMAN> alter database mount;

 

七、将备份集拷贝到相应目录,向控制文件中加载备份集

RMAN> catalog start with 'E:\OracleBacup';

 

八、作交叉检查,然后删除无效backup

RMAN> crosscheck backup;

RMAN> delete expired backup;

 

九、通过控制文件获得表空间及数据文件列表

RMAN> report schema;

 

十、通过编写恢复脚本,然后执行恢复

run

{

set newname for datafile 1 to 'E:\oracle\product\10.2.0\oradata\acf\SYSTEM01.DBF';

set newname for datafile 2 to 'E:\oracle\product\10.2.0\oradata\acf\UNDOTBS01.DBF';

set newname for datafile 3 to 'E:\oracle\product\10.2.0\oradata\acf\SYSAUX01.DBF';

set newname for datafile 4 to 'E:\oracle\product\10.2.0\oradata\acf\USERS01.DBF';

set newname for datafile 5 to 'E:\oracle\product\10.2.0\oradata\acf\ORACLETEST01.DBF';

set newname for datafile 6 to 'E:\oracle\product\10.2.0\oradata\acf\SQLTEST01.DBF';

set newname for datafile 7 to 'E:\oracle\product\10.2.0\oradata\acf\SDE.DBF';

set newname for datafile 8 to 'E:\oracle\product\10.2.0\oradata\acf\RASTER_DATA_01.DBF';

set newname for datafile 9 to 'E:\oracle\product\10.2.0\oradata\acf\TEST01.DBF';

set newname for datafile 10 to 'E:\oracle\product\10.2.0\oradata\acf\GIS_DATA_01.DBF';

set newname for datafile 11 to 'E:\oracle\product\10.2.0\oradata\acf\VERSIONED_DATA_01.DBF';

restore database;

switch datafile all;

}

注意:如果数据文件路径和原来的相同则直接

run

{

restore database;

}

 

十一、数据文件恢复出来以后,可以对数据库应用归档日志进行恢复

RMAN> recover database;

也可以在sqlplus中手动恢复

SQL>recover database using backup controlfile until cancel;

 

十二、最后以resetlogs方式打开数据库

RMAN> alter database open resetlogs;

注意:如果需要的话可能会修改控制文件中redo文件的位置(原来的路径与现在路径不相同的时候),然后重建。

你可能感兴趣的:(数据结构,oracle,C++,c,Flash)