RMAN异机恢复步骤及故障处理(五)

2014-11-24 14:36:06 · 作者: · 浏览: 4
11_860666488_312.db" ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory Additional information: 3 failover to previous backup
channel ORA_DISK_1: starting datafile backupset restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set restoring datafile 00001 to /u01/app/oracle/oradata/ora10g/system01.dbf restoring datafile 00002 to /u01/app/oracle/oradata/ora10g/undotbs01.dbf restoring datafile 00003 to /u01/app/oracle/oradata/ora10g/sysaux01.dbf restoring datafile 00004 to /u01/app/oracle/oradata/ora10g/users01.dbf restoring datafile 00005 to /u01/app/oracle/oradata/ora10g/example01.dbf restoring datafile 00006 to /u01/app/oracle/oradata/ora10g/zlm01.dbf channel ORA_DISK_1: reading from backup piece /u01/orabackup/backupsets/ora10g-4175411955_20140928_859456907_308.db ORA-19870: error reading backup piece /u01/orabackup/backupsets/ora10g-4175411955_20140928_859456907_308.db ORA-19505: failed to identify file "/u01/orabackup/backupsets/ora10g-4175411955_20140928_859456907_308.db" ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory Additional information: 3 failover to previous backup
creating datafile fno=6 name=/u01/app/oracle/oradata/ora10g/zlm01.dbf RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of restore command at 10/12/2014 17:59:33 ORA-01119: error in creating database file '/u01/app/oracle/oradata/ora10g/zlm01.dbf' ORA-27040: file create error, unable to create file Linux Error: 2: No such file or directory
RMAN>
注意,这里有2个问题: 1.找备份集的路径为/u01/orabackup/backupsets/,而在测试机上并没有此路径,之前只是把备份集复制到了/tmp目录下面而已,而且可以发现一个很有趣的现象,除了找最新的备份集xxx_316.db之外,还会往前去找之前的xxx_312.db,xxx_308这2个备份集,当然,这也是找不到的 2.刚才在初始化参数中还修改过了数据文件路径,对于这些信息的改变,刚恢复出来的控制文件自然是不知道的对于第1个问题,需要把备份集的新位置告知RMAN,可以用catalog start with 'xxx' 对于第2个问题,需要用set newname for datafile xxx 来调整,并用run脚本运行
RMAN> catalog start with '/tmp';
searching for all files that match the pattern /tmp no files found to be unknown to the database
RMAN> exit

Recovery Manager complete.
[root@bak ~]# ll / |grep tmp drwxrwxrwx 4 root root 4096 Oct 12 18:28 tmp

[oracle@bak ~]$ ll /tmp total 181172 srwxr-xr-x 1 root root 0 Aug 22 13:28 mapping-root -rw-r----- 1 oracle oinstall 4440064 Oct 12 16:46 ora10g-4175411955_20141012_860776699_315.arc -rw-r----- 1 oracle oinstall 172843008 Oct 12 16:47 ora10g-4175411955_20141012_860776704_316.db -rw-r----- 1 oracle oinstall 427520 Oct 12 16:47 ora10g-4175411955_20141012_860776830_317.arc -rw-r----- 1 oracle oinstall 7602176 Oct 12 16:47 ora10g-c-4175411955-20141012-00.ctl srw------- 1 root root 0 Aug 22 13:28 scim-panel-socket:0-root
尽管备份集在tmp目录下,但是属主为root,RMAN自然无法对其进行操作。而对于tmp目录,也不方便把它作为oracle自己的目录,因为 系统本身也会对该目录进行操作。由于那么我们为oracle用户单独创建个目录存放这些归档日志,并赋予权限
[root@bak ~]# mkdir /oracle/backupsets -p
[root@bak ~]# chmod 755 /oracle/backupsets -R [root@bak ~]# mv /tmp/*20141012* /oracle/backupsets

[oracle@bak ~]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Sun Oct 12 18:31:16 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORA10G (DBID=4175411955, not open)
RMAN> c