ASMCMD中的CP命令

在做表空间传输实验时,想把ASM中的数据文件拷贝到操作系统上,于是想到用CP,help cp后,本以为很简单,敲了两次命令都报错了(其实那帮助写得不咋地)

--这是报错的场景
ASMCMD [+fra/ORCL/DATAFILE] > cp TEST.261.848058223 /home/oracle/test.dbf   
copying +fra/ORCL/DATAFILE/TEST.261.848058223 -> /home/oracle/test.dbf
ASMCMD-08016: copy source->'+fra/ORCL/DATAFILE/TEST.261.848058223' and target->'/home/oracle/test.dbf' failed
ORA-19505: failed to identify file "/home/oracle/test.dbf"
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 13: Permission denied
Additional information: 1
ORA-06512: at "SYS.X$DBMS_DISKGROUP", line 397
ORA-06512: at line 3 (DBD ERROR: OCIStmtExecute)

--这是成功的场景,没有别的,就是目录太深了,经过我的试验,发现CP中的目的地最多只允许一层目录结构(气得我想骂人),不信可以自己试试
ASMCMD [+fra/ORCL/DATAFILE] > cp TEST.261.848058223 /tmp/test.dbf           
copying +fra/ORCL/DATAFILE/TEST.261.848058223 -> /tmp/test.dbf

2.ASMCMD支持3种文件传输方式
分别是:ASM——>OS
            OS——>ASM
            ASM——>ASM

第一种前边说过了
第三种不讲了

现在看第二种

ASMCMD [+fra/ORCL/DATAFILE] > ls
SYSAUX.257.847546983
SYSTEM.256.847546913
TEST.261.848067939
UNDOTBS1.258.847547051
USERS.260.847547075

--把文件从ASM磁盘组拷贝到操作系统上没问题
ASMCMD [+fra/ORCL/DATAFILE] > cp TEST.261.848067939 /tmp/test.dbf
copying +fra/ORCL/DATAFILE/TEST.261.848067939 -> /tmp/test.dbf

--再原样拷回去,问题来了
ASMCMD [+fra/ORCL/DATAFILE] > cp /tmp/test.dbf TEST.261.848067939
ASMCMD-08014: can not open file->''
Use of uninitialized value in concatenation (.) or string at /u01/app/oracle/product/11.2.0/grid/lib/asmcmdbase.pm line 3288, line 71.
copying /tmp/test.dbf ->
ASMCMD-08016: copy source->'/tmp/test.dbf' and target->'' failed
ORA-15056: additional error message
ORA-06512: at "SYS.X$DBMS_DISKGROUP", line 397
ORA-06512: at line 3 (DBD ERROR: OCIStmtExecute)

--这事要放在文件系统上,应该提示你"文件名已存在"之类的错误
--随便改下incarnation,又换了个错误

ASMCMD [+fra/ORCL/DATAFILE] > cp /tmp/test.dbf TEST.261.848067940
copying /tmp/test.dbf -> +fra/ORCL/DATAFILE/TEST.261.848067940
ASMCMD-08016: copy source->'/tmp/test.dbf' and target->'+fra/ORCL/DATAFILE/TEST.261.848067940' failed
ORA-19505: failed to identify file "+fra/ORCL/DATAFILE/TEST.261.848067940"
ORA-17502: ksfdcre:4 Failed to create file +fra/ORCL/DATAFILE/TEST.261.848067940
ORA-15046: ASM file name '+fra/ORCL/DATAFILE/TEST.261.848067940' is not in single-file creation form
ORA-06512: at "SYS.X$DBMS_DISKGROUP", line 397
ORA-06512: at line 3 (DBD ERROR: OCIStmtExecute)
ASMCMD [+fra/ORCL/DATAFILE] >

根据别人查到的metalink上的说法(详见:https://community.oracle.com/message/4218692
ASMCMD cp command fails with ORA-15046: ASM file name is not in single-file creation form
you can't create file with name like OMF style! File name should not contain the file number/incarnation

一般来说,ASM磁盘组上都使用OMF,让oracle起名字,而在上边实验上,像cp /tmp/test.dbf TEST.261.848067940这种命令就相当于你起名字
oracle不高兴了,你既然设置OMF,就表示oracle说了算,现在你又插一杠子,后果很严重

Filename Type    Format   
Fully Qualified ASM Filename +dgroup/dbname/file_type/file_type_tag.file.incarnation
Numeric ASM Filename +dgroup.file.incarnation
Alias ASM Filenames +dgroup/directory/filename
Alias ASM Filename with Template +dgroup(template)/alias
Incomplete ASM Filename +dgroup
Incomplete ASM Filename with Template +dgroup(template)
最终附上ASM的文件名格式

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29646619/viewspace-1165158/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29646619/viewspace-1165158/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值