expdp使用
使用EXPDP工具時,其轉儲檔案只能被存放在DIRECTORY對象對應的OS目錄中,而不能直接指定轉儲檔案所在的OS目錄。因此使用EXPDP工具時,,必須首先建立DIRECTORY對象,並且需要為資料庫使用者授予使用DIRECTORY對象許可權。
首先得建DIRECTORY:
SQL> conn /as sysdba
SQL> CREATE OR REPLACE DIRECTORY directory_name AS 'directory_path';
同樣可以更改directory的os路徑
SQL> GRANT read,write ON DIRECTORY directory_name TOusername;
查詢directory目錄
SQL> select * from dba_directories;
SQL> select * from all_directories;
刪除directory目錄
SQL> drop directory directory_name;
expdp選項
1. ATTACH
該選項用於在客戶會話與已存在匯出作用之間建立關聯.文法如下:
ATTACH=[schema_name.]job_name
schema_name用於指定方案名,job_name用於指定匯出作業名.注意,如果使用ATTACH選項,在命令列除了連接字串和ATTACH選項外,不能指定任何其他選項,樣本如下:
expdp username/password ATTACH=username.job_name
2. CONTENT
該選項用於指定要匯出的內容.預設值為ALL.文法如下:
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
當設定CONTENT為ALL 時,將匯出對象定義及其所有資料; 為DATA_ONLY時,只匯出對象資料; 為METADATA_ONLY時,只匯出對象定義,樣本如下:
expdp username/password DIRECTORY=directory_name DUMPFILE=dumpfile_name CONTENT=METADATA_ONLY
3. DIRECTORY
指定轉儲檔案和記錄檔所在的目錄.文法如下:
DIRECTORY=directory_object
directory_object用於指定目錄對象名稱.需要注意,目錄對象是使用CREATE DIRECTORY語句建立的對象,而不是OS 目錄,樣本如下:
expdp username/password DIRECTORY=directory_name DUMPFILE=dumpfile_name
建立目錄:
CREATE DIRECTORY directory_name as '/Oracle/dump';
查詢建立了那些子目錄:
SELECT * FROM dba_directories;
4. DUMPFILE
用於指定轉儲檔案的名稱,預設名稱為expdat.dmp.文法如下:
DUMPFILE=[directory_object:]file_name[,….]
directory_object用於指定目錄對象名,file_name用於指定轉儲檔案名稱.需要注意,如果不指定directory_object,匯出工具會自動使用DIRECTORY選項指定的目錄對象,樣本如下:
expdp username/password DIRECTORY=directory_name DUMPFILE=directory_name:dumpfile_name
5. ESTIMATE
指定估算被匯出表所佔用磁碟空間的方法.預設值是BLOCKS.文法如下:
EXTIMATE={BLOCKS | STATISTICS}
設定為BLOCKS時,oracle會按照目標對象所佔用的資料區塊個數乘以資料區塊尺寸估算對象佔用的空間,設定為STATISTICS時,根據最近統計值估算對象佔用空間,樣本如下:
expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS DIRECTORY=dumpDUMPFILE=a.dump
一般情況下, 當用預設值(blocks)時, 日誌中估計的檔案大小會比實際expdp出來的檔案大, 用statistics時會跟實際大小差不多.
6. EXTIMATE_ONLY
指定是否只估算匯出作業所佔用的磁碟空間,預設值為N.文法如下:
EXTIMATE_ONLY={Y | N}
設定為Y時,匯出作用只估算對象所佔用的磁碟空間,而不會執行匯出作業,為N時,不僅估算對象所佔用的磁碟空間,還會執行匯出操作,樣本如下:
expdp username/password ESTIMATE_ONLY=y NOLOGFILE=y