尝试使用DBMS_FILE_TRANSFER复制ASM文件时报错ORA-15173

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638    QQ号:47079569    邮箱:service@parnassusdata.com

 

症状

–问题陈述:

无法使用DBMS_FILE_TRANSFER复制ASM文件。

— 重现步骤:

SQL> create directory backupto as ‘C:\Experteam\Backup\RMAN\Supp’;

新建的目录.

SQL> create directory backupfrom as ‘+RECDISK/TOTALDB/BACKUPSET/2007_07_02’;

新建的目录.

SQL> BEGIN
2 dbms_file_transfer.copy_file
3 (
4 source_directory_object => ‘backupfrom’,
5 source_file_name => ‘nnndf0_BACKUP_TOTALDB_000_0702070200_0.548.62683’,
6 destination_directory_object => ‘backupto’,
7 destination_file_name => ‘nnndf0_BACKUP_TOTALDB_000_0702070200_0.548.62683’
8 );
9 END;
10 /
BEGIN
*
第1行的错误:
ORA-19505: 不能识别文件
“+RECDISK/TOTALDB/BACKUPSET/2007_07_02/nnndf0_BACKUP_TOTALDB_000_0702070200_0.548.62683”
ORA-15173: entry ‘nnndf0_BACKUP_TOTALDB_000_0702070200_0.548.62683’ does not
exist in directory ‘2007_07_02’
ORA-06512: at “SYS.DBMS_FILE_TRANSFER”, line 84
ORA-06512: at “SYS.DBMS_FILE_TRANSFER”, line 193
ORA-06512: at line 2

ASMCMD

ASMCMD> pwd
+RECDISK/TOTALDB/BACKUPSET/2007_07_02
ASMCMD>
ASMCMD>
ASMCMD> ls
nnndf0_BACKUP_TOTALDB_000_0702070200_0.548.62683
ASMCMD>
ASMCMD>
原因

Bug 6316402 DBMS_FILE_TRANSFER.COPY_FILE CAN NOT IDENTIFY ASM FILE ALTHOUGH IT EXISTS

Bug 6009056 ASMCMD SHOULD BE AWARE OF FULL NAME OF ASM ALIAS NAME

解决方案

对于完整的文件名,我们需要追加file_number||’.’||file_incarnation到file_name。

ASMCMD以及V $ ASM_ALIAS.NAME仅显示文件名称的前48个字符。

例:

 SQL> select NAME||’.’||file_number||’.’||file_incarnation
   2  from v$asm_alias
   3  where name=’annnf0_BACKUP_TOTALDB_000_0808070230_0.620.63003′;

NAME||’.’||FILE_NUMBER||’.’||FILE_INCARNATION
—————————————————————-

annnf0_BACKUP_TOTALDB_000_0808070230_0.620.63003.620.630038277

然后使用包参数中的文件名,如下所示:

annnf0_BACKUP_TOTALDB_000_0808070230_0.620.630038277

参考

BUG:6316402 – DBMS_FILE_TRANSFER.COPY_FILE CAN NOT IDENTIFY ASM FILE ALTHOUGH IT EXISTS

Comment

*

沪ICP备14014813号-2

沪公网安备 31010802001379号