Oracle10g新增DBMS_FILE_TRANSFER包(一)

yangtingkun發表於2009-05-06

Oracle10g新增了DBMS_FILE_TRANSFER包,透過資料庫的功能實現了檔案的傳輸。

這篇介紹COPY_FILE過程。

 

 

不要小看這個包,這個包的存在使得使用者可以在不離開SQLPLUS就可以執行作業系統中才能執行的copy命令,而且可以透過包的呼叫實現在ASM和作業系統之間複製檔案。有了這個包,可以在兩個Oracle伺服器直接透過資料庫鏈的方式複製2進位制檔案,雖然對檔案的大小有一定的要求,必須是512位元組的整數倍,必須小於2T位元組。但是對於絕大部分Oracle處理的檔案都滿足這個要求。使用這個包,可以實現資料庫在遠端伺服器上備份,也可以實現將包含BFILE型別的表,連同作業系統上對應的二進位制檔案一同複製到遠端資料庫中。

這裡先簡單介紹一下COPY_FILE過程。COPY_FILE過程用於在本地伺服器上複製檔案,這個過程的最大用處在於可以在ASM和作業系統之間複製檔案。

bash-2.03$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期六 3 7 01:41:17 2009

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.


連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> col directory_path format a50         
SQL> select directory_name, directory_path from dba_directories;

DIRECTORY_NAME                 DIRECTORY_PATH
------------------------------ --------------------------------------------------
D_OUTPUT                       /export/home/oracle
D_TEST                         /data1
D_DIR_FOR_GETDBID              +DISK/testrac/datafile
WORK_DIR                       /data/oracle/product/10.2/database/work
D_DMPDP                        /data
ADMIN_DIR                      /data/oracle/product/10.2/database/md/admin
DATA_PUMP_DIR                  /data/oracle/product/10.2/database/rdbms/log/

已選擇7行。

SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +DISK/testrac/spfiletestrac.ora
SQL> create directory d_asm_spfile as '+DISK/testrac';

目錄已建立。

SQL> exec dbms_file_transfer.copy_file('D_ASM_SPFILE', 'spfiletestrac.ora', 'D_OUTPUT', 'spfiletestrac.ora')

PL/SQL 過程已成功完成。

SQL> host
$ ls -l /export/home/oracle/spfile*.ora
-rw-r-----   1 oracle   oinstall    8704 Mar  7 01:44 /export/home/oracle/spfiletestrac.ora

當然這個過程也可以用於作業系統上複製檔案,或在ASM中複製檔案。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-594367/,如需轉載,請註明出處,否則將追究法律責任。

相關文章