使用DBMS_FILE_TRANSFER.COPY_FILE访问ASM file

使用DBMS_FILE_TRANSFER.COPY_FILE访问ASM file.

需要特别说明的是:

[@more@]

ASM磁盘组与文件系统之间的拷贝只能是数据库数据文件之间的拷贝,其他类型的文件不支持.Oracle11g文档: You can copy any type of file to and from a local file system. However, you can copy only database files (such as datafiles, tempfiles, controlfiles, and so on) to and from an ASM disk group.

1. 1. ASM磁盘组之间的拷贝数据库文件.

SQL> create directory data as '+DATA/DBKING/DATAFILE';

Directory created.

SQL> create directory test as '+TEST/TESTDB/DATAFILE';

Directory created.

拷贝磁盘组’+DATA’的数据文件到磁盘组’+TEST’

SQL> BEGIN

DBMS_FILE_TRANSFER.COPY_FILE('data','USERS.261.798456431','test','user01.dbf');

END;

/

PL/SQL procedure successfully completed.

2.ASM磁盘组拷贝数据库文件到文件系统.

SQL> create directory loc as '/tmp';

Directory created.

SQL> create directory data as '+TEST/DBKING/DATAFILE';

Directory created.

拷贝磁盘组’+TEST’的数据文件到文件系统/TMP目录下

SQL> BEGIN

dbms_file_transfer.copy_file('test','USERS.261.798456431','loc','users01.dbf');

END;

/

PL/SQL procedure successfully completed.

3.拷贝文件系统的数据库文件到ASM磁盘组.

SQL> create directory loc as '/tmp';

Directory created.

SQL> create directory data as '+DATA/DBKING/DATAFILE';

Directory created.

拷贝文件系统/TMP目录下的数据文件到磁盘组’+TEST’

SQL> BEGIN

dbms_file_transfer.copy_file('loc','users01.dbf','test','users02.dbf');

END;

/

PL/SQL procedure successfully completed.

4. DBMS_FILE_TRANSFER.COPY_FILE结构:

SOURCE_DIRECTORY_OBJECT VARCHAR2 -源目录(需要手工创建)

SOURCE_FILE_NAME VARCHAR2 -源文件名

DESTINATION_DIRECTORY_OBJECT VARCHAR2 –目标目录(需要手工创建)

DESTINATION_FILE_NAME VARCHAR2 目标文件名

请使用浏览器的分享功能分享到微信等