数据库版本:oracle9.2
操作系统:Windows Svr 2003
    我想把生产环境中的数据库备份到测试服务器上(操作系统相同)。
    于是在生产环境rman中使用backup database备份整个数据库,并把生成的备份文件和控制文件的自动备份都考到测试服务器的D:\backup目录中。当spfile和controlfile都成功恢复后,恢复表空间文件时遇到ORA-19505错误,详细如下:RMAN> run{
2>  set newname for datafile 1 to 'D:\oracle\oradata\FMIS\system01.dbf'
3>  set newname for datafile 2 to 'D:\oracle\oradata\FMIS\undotbs01.dbf
4>  set newname for datafile 3 to 'D:\oracle\oradata\FMIS\indx01.dbf';
5>  set newname for datafile 4 to 'D:\oracle\oradata\FMIS\tools01.dbf';
6>  set newname for datafile 5 to 'D:\oracle\oradata\FMIS\undotbs02.dbf
7>  set newname for datafile 6 to 'D:\oracle\oradata\FMIS\users01.dbf';
8>  set until scn 120796161;
9>  restore database;
10> switch datafile all;
11> recover database;
12> }正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET until clause启动 restore 于 07-6月 -10分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=12 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00003恢复到D:\ORACLE\ORADATA\FMIS\INDX01.DBF
正将数据文件00004恢复到D:\ORACLE\ORADATA\FMIS\TOOLS01.DBF
正将数据文件00006恢复到D:\ORACLE\ORADATA\FMIS\USERS01.DBF
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 06/07/2010 18:28:39
ORA-19505: 无法识别文件"X:\BACKUP\RMAN\PZHFMIS_PVLFEGTS_7999_1.CPY"
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 3) 系统找不到指定的路径。    原因很明显,是因为在生产环境中,备份文件的路径是X:\backup\rman,但测试环境中备份文件放在d:\backup\下,因此找不到备份文件。
    在oracle10G中,可以用catalog start with命令来搜索指定目录中的备份集,但是9i中似乎没有此命令,因此无法将D:\backup下的文件编目到控制文件中,并且测试服务器也没有X盘,不能把文件放到原来的路径下!这该怎么办呢?大家帮帮忙啊

解决方案 »

  1.   

    RMAN> duplicate target database for standby nofilenamecheck; 
      

  2.   

    我又分了个区划成X盘,把备份文件都放到原来的路径中,现在找得到备份文件了,但是却又报ORA-19504、ora-27044:启动 restore 于 08-6月 -10数据文件4已经恢复到文件D:\ORACLE\ORADATA\FMIS\TOOLS01.DBF中
    通道 d1: 正在开始恢复数据文件备份集
    通道 d1: 正在指定从备份集恢复的数据文件
    正将数据文件00003恢复到D:\ORACLE\ORADATA\FMIS\INDX01.DBF
    正将数据文件00006恢复到D:\ORACLE\ORADATA\FMIS\USERS01.DBF
    通道 d2: 正在开始恢复数据文件备份集
    通道 d2: 正在指定从备份集恢复的数据文件
    正将数据文件00001恢复到D:\ORACLE\ORADATA\FMIS\SYSTEM01.DBF
    正将数据文件00002恢复到D:\ORACLE\ORADATA\FMIS\UNDOTBS01.DBF
    正将数据文件00005恢复到D:\ORACLE\ORADATA\FMIS\UNDOTBS02.DBF
    释放的通道: d2
    释放的通道: d1
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of restore command at 06/08/2010 12:02:04
    ORA-19504: 无法创建文件"D:\ORACLE\ORADATA\FMIS\SYSTEM01.DBF"
    ORA-27044: 无法写入文件的标题块
    OSD-04008: WriteFile() 失败, 无法写入文件
    O/S-Error: (OS 112) 磁盘空间不足。但磁盘空间绝对充足,读写权限进行了修改,肯定没有问题,磁盘也没有进行配额,这又是怎么回事啊。
      

  3.   

    你的windows上的盘不会是fat32吧。
      

  4.   

    搞定了,确实是磁盘空间不足,是原数据库的users表空间很大,有20G,加上其它的表空间总共有33G。但system表空间只有2G,整个库不压缩完全备份也只有不到4G,所以我看到“无法创建文件"D:\ORACLE\ORADATA\FMIS\SYSTEM01.DBF"”,就以为磁盘空间充足。
    谢谢大家了