rman对于新手来说是一个难题,然而对我来说同样如此。因此在这里我把我使用rman过程中遇到的问题进行总结以及给出解决的方法。希望给那些同样和我一样的菜了一些宝贵的经验。
1、首先就是关于备份后的备份集存放位置的问题
错误背景:对于全备份来说当在机器A上面进行备份后如果在机器B上进行恢复的时候。备份集存放在B机器什么目录下这个问题困扰了我这个菜了。现在我在这里肯定的告诉大家,放在哪个目录都行,只要恢复的时候oracle用户能读取的权限就可以。当然如果不是和原备份机器相同的目录而在恢复的时候又没有注册备份集的位置那么久会犯和我一样的错误。
解决方法:注册备份集(可以在恢复的时候让rman知道备份集在什么位置),具体做法为(其中/dsms2012为我上传到需要恢复的数据库机器存放备份集的位置):
RMAN> catalog start with '/dsms2012/';
released channel: ORA_DISK_1
searching for all files that match the pattern /dsms2012/
List of Files Unknown to the Database
=====================================
File Name: /dsms2012/arch_ECDSDB_30530_1.bk
File Name: /dsms2012/arch_ECDSDB_30531_1.bk
File Name: /dsms2012/ctl.bk
File Name: /dsms2012/pri_ECDSDB_30526_1.bk
File Name: /dsms2012/pri_ECDSDB_30527_1.bk
File Name: /dsms2012/pri_ECDSDB_30528_1.bk
File Name: /dsms2012/pri_ECDSDB_30529_1.bk
File Name: /dsms2012/spfile.bk
Do you really want to catalog the above files (enter YES or NO)? YES
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /dsms2012/arch_ECDSDB_30530_1.bk
File Name: /dsms2012/arch_ECDSDB_30531_1.bk
File Name: /dsms2012/ctl.bk
File Name: /dsms2012/pri_ECDSDB_30526_1.bk
File Name: /dsms2012/pri_ECDSDB_30527_1.bk
File Name: /dsms2012/pri_ECDSDB_30528_1.bk
File Name: /dsms2012/pri_ECDSDB_30529_1.bk
File Name: /dsms2012/spfile.bk
2、关于原数据库和目标数据库的目录结构的问题
错误背景:作为菜了开始进行恢复的时候我不知道如果没有指定恢复路径,恢复会按备份的控制文件中记录的原数据库的存放路径进行恢复。所以当原数据库结构和目标数据库结构不一样的时候就会犯和我一样的错误。错误信息如下:MAN> RESTORE DATABASE;
Starting restore at 07-JAN-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=2190 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 /home/db/oracle/oradata/ecdsdb/rsystem_01_4g
restoring datafile 00002 to /home/db/oracle/oradata/ecdsdb/rundotbs1_01_10g
restoring datafile 00004 to /home/db/oracle/oradata/ecdsdb/ruser_01_512m
restoring datafile 00006 to /home/db/oracle/oradata/ecdsdb/rtbs_data1_01_16g
restoring datafile 00008 to /home/db/oracle/oradata/ecdsdb/rtbs_part_01_16g
channel ORA_DISK_1: reading from bac