ASM磁盘组中的文件,提取出来

该文是网上看见转载的,具体出自哪我还真记不着了,写的不错

create directory data as '+oradg/ora10g/arch';
create directory test as  '/rac_bkup';
exec DBMS_FILE_TRANSFER.COPY_FILE('DATA','2_67619_639233120.arc', 'TEST','thread_2_seq_67619.7465.717289421')


利用DBMS_FILE_TRANSFER传输数据库文件
从Oracle 10g开始,Oracle提供了DBMS_FILE_TRANSFER这么一个程序包,可以方便地在本地数据库和远程数据库,ASM和文件系统间传输数据库文件。这样数据库文件的传输就方便了许多,尤其是在传输基于ASM存储的数据文件时,不再局限于利用RMAN来进行传输。下面介绍一下这个包的用法。

DBMS_FILE_TRANSFER包一共包含了3个存储过程,分别提供本机之间、本机从远程主机抓取以及本机上传至远程主机三种传输数据库文件的功能。要求传输用户有对源目录读和对目标目录写的权限,单个数据库文件必须是512字节的整数倍并且文件大小必须小于或者等于2TB。

1、COPY_FILE。可以在数据库本机的文件系统之间,ASM磁盘组之间或者文件系统和ASM磁盘组之间方便地传输数据库文件。

DBMS_FILE_TRANSFER.COPY_FILE(
source_directory_object IN VARCHAR2,–源目录
source_file_name IN VARCHAR2,–源文件名
destination_directory_object IN VARCHAR2,–目标目录
destination_file_name IN VARCHAR2);–目标文件名

SQL> create directory data as ‘+DATA/HELLODB/DATAFILE’;
SQL> create directory test as ‘+TEST/HELLODB/DATAFILE’;
SQL> exec DBMS_FILE_TRANSFER.COPY_FILE(’DATA’,’system.286.650339101′, ‘TEST’,’system.dbf’)
ASMCMD> ls -a
+TEST/HELLODB/DATAFILE/system.dbf => COPY_FILE.256.654701983

2、GET_FILE。从远程数据库读取数据库文件并在本机的文件系统或者ASM磁盘组上创建一份复制文件。

DBMS_FILE_TRANSFER.GET_FILE(
source_directory_object IN VARCHAR2,
source_file_name IN VARCHAR2,
source_database IN VARCHAR2, –到远程数据库的db link名
destination_directory_object IN VARCHAR2,
destination_file_name IN VARCHAR2);

begin
DBMS_FILE_TRANSFER.COPY_FILE(’DATA’,’system.286.650339101′, ‘lnk_test’,’TEST1′,’system.dbf’);
end;
/

3、PUT_FILE。在本地数据库将数据库文件传输至远程数据库的文件系统或者ASM磁盘组。

DBMS_FILE_TRANSFER.PUT_FILE(
source_directory_object IN VARCHAR2,
source_file_name IN VARCHAR2,
destination_directory_object IN VARCHAR2,
destination_file_name IN VARCHAR2,
destination_database IN VARCHAR2); –到目标数据库的db link名

begin
DBMS_FILE_TRANSFER.COPY_FILE(’DATA’,’system.286.650339101′, ‘TEST2′,’system.dbf’, ‘lnk_test’);
end;
/

 

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

转载于:http://blog.itpub.net/16719800/viewspace-662297/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值