如果你的Oracle数据库系统使用正使用ASM自动存储管理,你可曾想过要窥视一下ASM中的数据文件,ASM是个黑匣子,通过操作系统无法看
环境:Red Hat 5.7 + Oracle 10.2.0.5.0 Rac+ASM
如果你的Oracle数据库系统使用正使用ASM自动存储管理,你可曾想过要窥视一下ASM中的数据文件,ASM是个黑匣子,通过操作系统无法看到里面的数据文件,也不能通过操作系统命令对它们进行复制、删除等操作。下面给大家介绍一个可以复制出ASM中数据文件的小方法,简单适用。工具大家都很熟悉,那就是:Rman !
大家都知道在进行跨平台移植数据的时候会碰到操作系统字节存储次序的问题,通常都会利用Rman的convert的命令来转换表空间或者数据文件的字节序。同样,,下面也通过Rman的convert来给大家介绍一下如何从ASM中复制出数据文件;
如下:在asmcmd中查看数据文件,我要复制出名为SEVEN.320.822828439的数据文件(注意路径):
ASMCMD> pwd
+seven/prod/datafile
ASMCMD> ls
EXAMPLE.267.819799305
SEVEN.320.822828439
SYSAUX.257.819799141
SYSTEM.256.819799141
UNDOTBS1.258.819799143
UNDOTBS2.268.819799499
USERS.259.819799143
ASMCMD>
通过一下命令在Rman下进行转换:
convert datafile
'+seven/prod/datafile/SEVEN.320.822828439'
db_file_name_convert
'+seven/prod/datafile','/home/oracle';
命令很简单,单数据的转换,需要db_file_name_convert关键字来指定转换之前和转换之后数据文件所在的路径,此实验中是将名为SEVEN.320.822828439的数据文件,从原始路径+seven/prod/datafile 中,转换到之后的/home/oracle目录中,同时文件名不变;
输出内容如下,显示完成转换:
Starting backup at 07-AUG-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile conversion
input filename=+SEVEN/prod/datafile/seven.320.822828439
converted datafile=/home/oracle/seven.320.822828439
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:05
Finished backup at 07-AUG-13
OK!转换结束,可以去/home/oracle 目录下查看是否有此数据文件了;
[oracle@ora1 ~]$ ls -al seven.320.822828439
-rw-r----- 1 oracle oinstall 52436992 Aug 7 16:41 seven.320.822828439
[oracle@ora1 ~]$
如上:数据文件SEVEN.320.822828439已经在/home/oracle目录中,现在可以对数据文件做些你想做的事了。
推荐阅读:
Oracle 11g从入门到精通 PDF+光盘源代码
Ubuntu 12.04(amd64)安装完Oracle 11gR2后各种问题解决方法