概述
最近有朋友问怎么将ASM里面的文件copy到文件系统,因为数据文件存放在ASM里面查看不是很直观,所以有时候需要把文件从ASM里面copy到文件系统。下面介绍两种比较常用的方法。
1、asmcmd执行cp命令
注意这个命令在oracle10g的rac是不能用的,11g是没有问题的,还有一个就是存放目录的位置需grid用户有创建文件权限。
ASMCMD> cp USERS.267.931911969 /backup/test/users.dbf
验证是否成功:
这里users.dbf就是copy出来的文件
2、用rman copy命令
注意这个命令也有局限性。只能copy以下内容:
archivelog, backup, check, controlfilecopy, current, datafile, datafilecopy
存放目录的权限需Oracle用户有创建文件权限。
2.1 rman copy 归档
RMAN> copy archivelog '+RFDATA/rfdb/archivelog/2019_07_18/thread_2_seq_66058.707.1013942963' to '/backup/test/archivelog.dbf';
2.2 rman copy 数据文件
RMAN> copy datafile '+rfdata/rfdb/datafile/USERS.267.931911969' to '/backup/test/users.dbf';
2.3、验证
可以看到前面复制的文件都在本地产生了。
注意Oracle的参数文件和控制文件就不用这么麻烦了,直接create pfile='XXX' from spfile之类就可以产生了。
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~