首页 > 代码库 > 【翻译自mos文章】虽然指定了目的地,asmcmd cp命令还是在 +DATA/ASM 下创建文件

【翻译自mos文章】虽然指定了目的地,asmcmd cp命令还是在 +DATA/ASM 下创建文件

虽然指定了目的地。asmcmd cp命令还是在  +DATA/ASM 下创建文件

參考原文:
ASMCMD Cp Creates Files In +DATA/ASM Instead Of Destination Specified (Doc ID 1488934.1)


适用于:
Oracle Database - Enterprise Edition - Version 11.2.0.3 and later
Information in this document applies to any platform.


症状:
在11.2.0.3版本号上,使用asmcmd的cp命令 从文件系统复制文件到asm里边,
在asm里边创建的文件 却创建在了 +DATA/ASM/DATAFILE 下边,而且在+DATA/DB/DATAFILE下边创建了一个该文件的别名。



原因:
这个行为归因于别名(alias).虽然oracle db 开发部门正在 对bug 12640351做一个改进,
该bug是 12640351 : ASMCMD NEEDS PARAMETER TO COPY FILES INTO A GIVEN SYSTEM ALIAS

解决方法:

使用DBMS_FILE_TRANSFER or RMAN 来拷贝文件,直到 以下所说的在将来的release中被实现。

一个需求是拷贝数据库文件(数据文件,控制文件等等)到asm中的指定文件夹下。
因此,须要为cp命令加入一个额外的參数来指定system alias.
你拷贝一个文件到asm中,asm会在 +DISKGROUP/your_specific_path/ 下创建一个别名,该别名指向的文件是被复制到+DISKGROUP/ASM/..下的。


尽管该文件应该在 +DISKGROUP/your_specific_path/ 下。

例如以下是一个样例:

ASMCMD> cp /oracle/C15/sapbackup/cntrlC15.dbf +DATA/C15/CONTROLFILE/cntrlC15.dbf
copying /oracle/C15/sapbackup/cntrlC15.dbf ->
+DATA/C15/CONTROLFILE/cntrlC15.dbf
ASMCMD> ls -l
Type Redund Striped Time Sys Name
CONTROLFILE UNPROT FINE FEB 03 08:00:00 Y Current.295.737125033
N cntrlC15.dbf => +DATA/ASM/CONTROLFILE/cntrlC15.dbf.332.742121853

oracle db 开发部门正在找一个方法:要么复制文件到正确的文件夹 或者系统别名(不是  ‘+/ASM/...‘)。要么 加入cp时 一个參数。



同一时候。变通的方法是使用DBMS_FILE_TRANSFER or RMAN。这两个工具会复制文件到正确的目的地。

【翻译自mos文章】虽然指定了目的地,asmcmd cp命令还是在 +DATA/ASM 下创建文件