首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 匯出匯入指令完整速查:exp/imp 與 Data Pump 對照

     編輯:Oracle 資料庫基礎

傳統 exp/imp 指令(Oracle 10g 以前主流,11g+ 仍支援但建議改用 Data Pump)

1. 完整資料庫匯出/匯入

# 匯出完整資料庫 TEST
exp system/manager@TEST file=d:\system.dmp full=y

# 匯入至 oradb01(忽略已存在物件錯誤)
imp system/manager@oradb01 full=y file=d:\system.dmp ignore=y

2. 指定 Schema 匯出/匯入

# 匯出 system、sys 兩個 schema
exp system/manager@TEST file=d:\sysuser.dmp owner=(system,sys)

# 匯入並對應 schema(fromuser→touser)
imp system/manager@oradb01 file=d:\sysuser.dmp fromuser=(system,sys) ignore=y

3. 單一 Schema 匯出/跨使用者匯入

# 匯出 testuser
exp system/manager@TEST file=d:\testuser.dmp owner=testuser

# 匯入至 testuser1
imp system/manager@oradb01 file=d:\testuser.dmp fromuser=testuser touser=testuser1 ignore=y

4. 指定資料表匯出/匯入

# 匯出 testuser.table1、table2
exp system/manager@TEST file=d:\tbls.dmp tables=(testuser.table1,testuser.table2)

# 匯入(同樣支援 fromuser/touser 對應)
imp system/manager@oradb01 file=d:\tbls.dmp fromuser=testuser touser=testuser1 ignore=y

5. 條件式匯出(WHERE 子句)

# 匯出 table1 中 filed1 以 '00' 開頭的資料
exp system/manager@TEST file=d:\tblfiled1.dmp tables=table1 query="WHERE filed1 LIKE '00%'"

# 匯入
imp system/manager@oradb01 file=d:\tblfiled1.dmp fromuser=testuser touser=testuser1 ignore=y

Data Pump (expdp/impdp) 現代替代方案(10g+ 推薦)

傳統指令Data Pump 對應優勢
expexpdp平行處理、網路模式、可中斷續傳、細緻物件過濾
impimpdp同步匯入、REMAP_SCHEMA/TABLESPACE、SQLFILE 預覽 DDL

Data Pump 常用範例

# 建立目錄物件(需 SYSDBA)
CREATE DIRECTORY dpump_dir AS '/u01/dpump';
GRANT READ, WRITE ON DIRECTORY dpump_dir TO system;

# 完整匯出(平行度 4)
expdp system/manager@TEST directory=dpump_dir dumpfile=full_%U.dmp full=y parallel=4

# Schema 匯出
expdp system/manager@TEST directory=dpump_dir dumpfile=testuser.dmp schemas=testuser

# 匯入並重對應 Schema 與表空間
impdp system/manager@oradb01 directory=dpump_dir dumpfile=testuser.dmp \
    remap_schema=testuser:testuser1 remap_tablespace=users:users_data

常用參數對照表

功能exp/impexpdp/impdp
完整資料庫FULL=YFULL=Y
指定 SchemaOWNER=...SCHEMAS=...
指定資料表TABLES=...TABLES=...
條件過濾QUERY=...QUERY=... (支援子查詢)
忽略錯誤IGNORE=YTABLE_EXISTS_ACTION=SKIP/APPEND/TRUNCATE/REPLACE
跨 Schema 匯入FROMUSER/TOUSERREMAP_SCHEMA=src:tgt
跨表空間匯入無REMAP_TABLESPACE=src:tgt
平行處理無PARALLEL=n

注意事項

  • exp/imp 需客戶端安裝 Oracle Client;expdp/impdp 需資料庫端建立目錄物件並授權。
  • expdp/impdp 檔案生成於資料庫伺服器端,非客戶端。
  • 跨版本匯入通常支援向上相容(如 11g dump 導入 19c),向下相容需使用 VERSION 參數。
  • 大型資料庫建議使用 Data Pump 並開啟平行處理,大幅縮短時間。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved