ORACLE EXPDP/IMPDP導入導出

一、expdp/impdp和exp/imp的區別

1、exp和imp是客戶端工具程序,它們既可以在客戶端使用,也可以在服務端使用。

2、expdp和impdp是服務端的工具程序,他們只能在 Oracle 服務端使用,不能在客戶端使用。

3、imp只適用於exp導出的文件,不適用於expdp導出文件;impdp只適用於expdp導出的文件,而不適用於exp導出文件。

4、對於10g以上的服務器,使用exp通常不能導出0行數據的空表,而此時必須使用expdp導出。

 

二、創建邏輯目錄

        在服務器上創建真實的目錄;(手動創建,執行SQL不會創建真正的目錄,所以必須提前創建);

        執行  create directory data_dir as '/home/oracle/db/user';  創建目錄;

        可以通過SQL查看:select * from dba_directories;

        給用戶賦權限:grant read,write on directory data_dir to user;

 

三、expdp導出

        expdp中,可以輸入用戶名和密碼,也可以在回車後再輸入;

        directory是邏輯目錄;

        dumpfile是生成的dmp文件;

        logfile是生成的日誌文件;

 

        第一種:“full=y”,全量導出數據庫;

        expdp user/passwd@orcl directory=data_dir dumpfile=expdp.dmp logfile=expdp.log full=y;
  

        第二種:schemas按用戶導出;

        expdp user/passwd@orcl directory=data_dir dumpfile=expdp.dmp logfile=expdp.log schemas=user;
  

        第三種:按表空間導出;

        expdp sys/passwd@orcl directory=data_dir dumpfile=expdp.dmp logfile=expdp.log tablespace=tbs1,tbs2 ;
  

        第四種:導出表;

        expdp user/passwd@orcl directory=data_dir dumpfile=expdp.dmp logfile=expdp.log tables=table1,table2;
  

        第五種:按查詢條件導;

        expdp user/passwd@orcl directory=data_dir dumpfile=expdp.dmp logfile=expdp.log tables=table1='where number=1234';

 

四、impdp導入

        第一種:“full=y”,全量導入數據庫;
        impdp user/passwd directory=data_dir dumpfile=expdp.dmp full=y;


        第二種:同名用戶導入,從用戶A導入到用戶A;
        impdp A/passwd schemas=A directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;


        第三種:①從A用戶中把表table1和table2導入到B用戶中;
        impdp B/passwd directory=data_dir dumpfile=expdp.dmp logfile=impdp.log tables=A.table1,A.table2 remap_schema=A:B;


        將表空間TBS01、TBS02、TBS03導入到表空間A_TBS,將用戶B的數據導入到A,並生成新的oid防止衝突;
        impdp A/passwd directory=data_dir dumpfile=expdp.dmp logfile=impdp.log remap_tablespace=TBS01:A_TBS,TBS02:A_TBS,TBS03:A_TBS remap_schema=B:A FULL=Y transform=oid:n


        第四種:導入表空間;
        impdp sys/passwd tablespaces=tbs1 directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;


        第五種:追加數據;

        impdp sys/passwd directory=data_dir dumpfile=expdp.dmp logfile=impdp.log schemas=system table_exists_action=replace; 
        table_exists_action:導入對象已存在時執行的操作。有效關鍵字:SKIP,APPEND,REPLACE和TRUNCATE;

 

五、關鍵字和命令

1、expdp關鍵字

ATTACH               連接到現有作業, 例如 ATTACH [=作業名]。
COMPRESSION             減小轉儲文件內容的大小, 其中有效關鍵字  值爲: ALL, (METADATA_ONLY), DATA_ONLY 和 NONE。
CONTENT                指定要卸載的數據, 其中有效關鍵字  值爲: (ALL), DATA_ONLY 和 METADATA_ONLY。
DATA_OPTIONS              數據層標記, 其中唯一有效的值爲: 使用CLOB格式的 XML_CLOBS-write XML 數據類型。
DIRECTORY              供轉儲文件和日誌文件使用的目錄對象,即邏輯目錄。
DUMPFILE              目標轉儲文件 (expdp.dmp) 的列表,例如 DUMPFILE=expdp1.dmp, expdp2.dmp。
ENCRYPTION              加密部分或全部轉儲文件, 其中有效關鍵字值爲: ALL, DATA_ONLY, METADATA_ONLY,ENCRYPTED_COLUMNS_ONLY 或 NONE。
ENCRYPTION_ALGORITHM      指定應如何完成加密, 其中有效關鍵字值爲: (AES128), AES192 和 AES256。
ENCRYPTION_MODE          生成加密密鑰的方法, 其中有效關鍵字值爲: DUAL, PASSWORD   和 (TRANSPARENT)。
ENCRYPTION_PASSWORD      用於創建加密列數據的口令關鍵字。
ESTIMATE              計算作業估計值, 其中有效關鍵字值爲: (BLOCKS) 和 STATISTICS。
ESTIMATE_ONLY             在不執行導出的情況下計算作業估計值。
EXCLUDE               排除特定的對象類型, 例如 EXCLUDE=TABLE:EMP。例:EXCLUDE=[object_type]:[name_clause],[object_type]:[name_clause] 。
FILESIZE                以字節爲單位指定每個轉儲文件的大小。
FLASHBACK_SCN           用於將會話快照設置回以前狀態的 SCN。 -- 指定導出特定SCN時刻的表數據。
FLASHBACK_TIME          用於獲取最接近指定時間的 SCN 的時間。-- 定導出特定時間點的表數據,注意FLASHBACK_SCN和FLASHBACK_TIME不能同時使用。
FULL                  導出整個數據庫 (N)。  
HELP                 顯示幫助消息 (N)。
INCLUDE                包括特定的對象類型, 例如 INCLUDE=TABLE_DATA。
JOB_NAME               要創建的導出作業的名稱。
LOGFILE                日誌文件名 (export.log)。
NETWORK_LINK            鏈接到源系統的遠程數據庫的名稱。
NOLOGFILE             不寫入日誌文件 (N)。
PARALLEL               更改當前作業的活動 worker 的數目。
PARFILE                指定參數文件。
QUERY                用於導出表的子集的謂詞子句。--QUERY = [schema.][table_name:] query_clause。
REMAP_DATA              指定數據轉換函數,例如 REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。
REUSE_DUMPFILES         覆蓋目標轉儲文件 (如果文件存在) (N)。
SAMPLE                要導出的數據的百分比。
SCHEMAS               要導出的方案的列表 (登錄方案)。  
STATUS                在默認值 (0) 將顯示可用時的新狀態的情況下,要監視的頻率 (以秒計) 作業狀態。  
TABLES                標識要導出的表的列表 - 只有一個方案。--[schema_name.]table_name[:partition_name][,…]
TABLESPACES            標識要導出的表空間的列表。
TRANSPORTABLE           指定是否可以使用可傳輸方法, 其中有效關鍵字值爲: ALWAYS, (NEVER)。
TRANSPORT_FULL_CHECK      驗證所有表的存儲段 (N)。 
TRANSPORT_TABLESPACES      要從中卸載元數據的表空間的列表。
VERSION              要導出的對象的版本, 其中有效關鍵字爲:(COMPATIBLE), LATEST 或任何有效的數據庫版本。

 

2、命令

ADD_FILE             向轉儲文件集中添加轉儲文件。
CONTINUE_CLIENT         返回到記錄模式。如果處於空閒狀態, 將重新啓動作業。
EXIT_CLIENT            退出客戶機會話並使作業處於運行狀態。
FILESIZE              後續 ADD_FILE 命令的默認文件大小 (字節)。
HELP               總結交互命令。
KILL_JOB             分離和刪除作業。
PARALLEL               更改當前作業的活動 worker 的數目。PARALLEL=<worker 的數目>。
_DUMPFILES             覆蓋目標轉儲文件 (如果文件存在) (N)。
START_JOB             啓動/恢復當前作業。
STATUS                在默認值 (0) 將顯示可用時的新狀態的情況下,要監視的頻率 (以秒計) 作業狀態。STATUS[=interval]。
STOP_JOB              順序關閉執行的作業並退出客戶機。STOP_JOB=IMMEDIATE 將立即關閉數據泵作業。

 

3、impdp關鍵字

ATTACH               連接到現有作業, 例如 ATTACH [=作業名]。
CONTENT                指定要卸載的數據, 其中有效關鍵字  值爲: (ALL), DATA_ONLY 和 METADATA_ONLY。
DATA_OPTIONS              數據層標記,其中唯一有效的值爲:SKIP_CONSTRAINT_ERRORS-約束條件錯誤不嚴重。
DIRECTORY             供轉儲文件,日誌文件和sql文件使用的目錄對象,即邏輯目錄。
DUMPFILE              要從(expdp.dmp)中導入的轉儲文件的列表,例如 DUMPFILE=expdp1.dmp, expdp2.dmp。
ENCRYPTION_PASSWORD      用於訪問加密列數據的口令關鍵字。此參數對網絡導入作業無效。
ESTIMATE              計算作業估計值, 其中有效關鍵字爲:(BLOCKS)和STATISTICS。
EXCLUDE              排除特定的對象類型, 例如 EXCLUDE=TABLE:EMP。
FLASHBACK_SCN          用於將會話快照設置回以前狀態的 SCN。
FLASHBACK_TIME          用於獲取最接近指定時間的 SCN 的時間。
FULL                 從源導入全部對象(Y)。
HELP                 顯示幫助消息(N)。
INCLUDE               包括特定的對象類型, 例如 INCLUDE=TABLE_DATA。
JOB_NAME              要創建的導入作業的名稱。
LOGFILE                日誌文件名(import.log)。
NETWORK_LINK           鏈接到源系統的遠程數據庫的名稱。
NOLOGFILE             不寫入日誌文件。  
PARALLEL               更改當前作業的活動worker的數目。
PARFILE                指定參數文件。
PARTITION_OPTIONS         指定應如何轉換分區,其中有效關鍵字爲:DEPARTITION,MERGE和(NONE)。
QUERY               用於導入表的子集的謂詞子句。
REMAP_DATA            指定數據轉換函數,例如REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。
REMAP_DATAFILE          在所有DDL語句中重新定義數據文件引用。
REMAP_SCHEMA           將一個方案中的對象加載到另一個方案。REMAP_SCHEMA=SOURCE_SCHEMA:TARGET_SCHEMA
REMAP_TABLE             表名重新映射到另一個表,例如 REMAP_TABLE=OLD_TABLENAME:NEW_TABLENAME
REMAP_TABLESPACE        將表空間對象重新映射到另一個表空間。 
REUSE_DATAFILES          如果表空間已存在, 則將其初始化 (N)。
SCHEMAS               要導入的方案的列表。
SKIP_UNUSABLE_INDEXES       跳過設置爲無用索引狀態的索引。
SQLFILE                將所有的 SQL DDL 寫入指定的文件。
STATUS                在默認值(0)將顯示可用時的新狀態的情況下,要監視的頻率(以秒計)作業狀態。  
STREAMS_CONFIGURATION      啓用流元數據的加載。
TABLE_EXISTS_ACTION       導入對象已存在時執行的操作。有效關鍵字:(SKIP),APPEND,REPLACE和TRUNCATE。
TABLES                標識要導入的表的列表。
TABLESPACES            標識要導入的表空間的列表。 
TRANSFORM            要應用於適用對象的元數據轉換。有效轉換關鍵字爲:SEGMENT_ATTRIBUTES,STORAGE,OID和PCTSPACE。
TRANSPORTABLE           用於選擇可傳輸數據移動的選項。有效關鍵字爲: ALWAYS 和 (NEVER)。僅在 NETWORK_LINK 模式導入操作中有效。
TRANSPORT_DATAFILES       按可傳輸模式導入的數據文件的列表。
TRANSPORT_FULL_CHECK     驗證所有表的��儲段 (N)。
TRANSPORT_TABLESPACES     要從中加載元數據的表空間的列表。僅在 NETWORK_LINK 模式導入操作中有效。
VERSION               要導出的對象的版本, 其中有效關鍵字爲:(COMPATIBLE), LATEST 或任何有效的數據庫版本。僅對 NETWORK_LINK 和 SQLFILE 有效。

 

4、命令

CONTINUE_CLIENT         返回到記錄模式。如果處於空閒狀態, 將重新啓動作業。
EXIT_CLIENT            退出客戶機會話並使作業處於運行狀態。
HELP                 總結交互命令。
KILL_JOB               分離和刪除作業。
PARALLEL              更改當前作業的活動 worker 的數目。PARALLEL=<worker 的數目>。
START_JOB              啓動/恢復當前作業。START_JOB=SKIP_CURRENT 在開始作業之前將跳過作業停止時執行的任意操作。
STATUS               在默認值 (0) 將顯示可用時的新狀態的情況下,要監視的頻率 (以秒計) 作業狀態。STATUS[=interval]。
STOP_JOB             順序關閉執行的作業並退出客戶機。STOP_JOB=IMMEDIATE 將立即關閉數據泵作業。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章