RMAN recover中遇到 RMAN-20505,ORA-0119,ORA-27400

2014-11-24 17:11:28 · 作者: · 浏览: 0

执行脚本如下:


run{
set newname for datafile 1 to '+DATA';
set newname for datafile 2 to '+DATA';
set newname for datafile 3 to '+DATA’;


… 500多个数据文件


restore database;
switch datafile all;
recover database;
}


在执行到recover database 过程中出现错误,提示第545号数据文件IDX_S007.dbf创建失败。


RMAN-20505: create datafile during recovery
ORA-0119: error in creating database file '/sgpmdb/oradata/u07/cmsdb/IDX_S007.dbf'
ORA-27400: file create error, unable to create file
HPUX-ia Error: 2: No such file or directory
Additional information: 1
RMAN-11003: failure during parse/execution of SQL statement: alter database recover log file '/orabak/arch/2_147320_666569930.arc'
ORA-00283: recovery session canceled due to errors
ORA-01244: unnamed datafile(s) added to control file by media recovery
ORA-01110: data file 545: '/spgmdb/oradata/u07/cmsdb/IDX_S007.dbf'


分析原因如下:
生产库做完全备后又做了一些DDL操作,如添加数据文件等。 这些新的操作记录在全备之后的归档日志中(/orabak/arch/2_147320_666569930.arc
)。在重演归档日志中创建数据文件的部分时找不到生产环境的目录,所以报错(HPUX-ia Error: 2: No such file or directory)
该文件被临时记录在了/app/oracle/product/11.2.0/db_1/dbs,但也只是控制文件中的记录,磁盘上时没有该文件。


第545号数据文件在控制文件中的记录如下,不是我们预期的+DATA
SQL> select name from v$datafile where name like '%545%;


NAME
——————————————————
/app/oracle/product/11.2.0/db_1/dbs/UNAMED00545


解决方案


在RMAN下使用set newname命令先数据文件的目录地址改为+DATA/cmsdb/datafile。然后重新restore一次该数据文件,最后switch数据文件。


run{
set newname for datafile '/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00545' to '+DATA/cmsdb/datafile/IDX_S007.dbf';
restore datafile '/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00545';
switch datafile '/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00545';
}


也可以写成
run{
set newname for datafile 545 to '+DATA';
restore datafile 545;
switch datafile 545;
}


输出如下:
executing command: SET NEWNAME


Staring restore at 27-OCT-14
using channel ORA_DISK1


creating datafile file number=545 name=+DATA/cmsdb/datafile/IDX_S007.dbf
restore not done: all files read only, offline, or already restored
Finished restore at 27-OCT-14


datafile 545 switched to datafile copy
input datafile copy RECID=3615 STAMP=862057086 file name=+DATA/cmsdb/datafile/IDX_S007.dbf


本次操作使用的客户端主机安全级别很高,不允许用U盘复制任何文件,包括secureCRT的日志等。所有错误信息和屏幕输出都是我手敲的,如果有错误敬请谅解。


--------------------------------------推荐阅读 --------------------------------------


--------------------------------------分割线 --------------------------------------