傳統 IMP/EXP 是 Oracle 早期邏輯備份工具,10g 起被 Data Pump (IMPDP/EXPDP) 取代。本文整理舊工具完整語法、常用參數、實戰範例,並指引遷移至 Data Pump 的關鍵差異。
傳統 EXP 匯出語法與關鍵參數
exp userid/password@service
FILE=backup.dmp
TABLES=(table1,table2)
QUERY="WHERE created_date > SYSDATE-30"
BUFFER=8192
GRANTS=Y
COMPRESS=N
CONSISTENT=Y
LOG=exp.log
| 參數 | 說明 | 建議值 |
| FILE | 匯出檔名(支援多檔 FILE=exp1.dmp,exp2.dmp) | 含日期時間戳 exp_20240115.dmp |
| TABLES | 指定表清單(預設全用戶) | 僅匯出必要表,減小檔案 |
| QUERY | 附加 WHERE 條件(需雙引號) | 增量匯出利器 |
| BUFFER | 資料緩衝區大小(bytes) | 8192~65536,視記憶體 |
| GRANTS | 是否匯出權限 | Y |
| COMPRESS | 是否合併 extent(舊版相容) | N(現代 LMT 表空間無需) |
| CONSISTENT | 交易一致性讀(SET TRANSACTION READ ONLY) | Y(生產環境必開) |
| FULL | 全資料庫匯出(需 EXP_FULL_DATABASE 役) | Y(完整備份) |
| OWNER | 指定用戶(Schema 模式) | 替代 TABLES |
傳統 IMP 匯入語法與關鍵參數
imp userid/password@service
FILE=backup.dmp
FROMUSER=src_user
TOUSER=target_user
TABLES=(table1,table2)
IGNORE=Y
COMMIT=Y
GRANTS=Y
FULL=Y
LOG=imp.log
| 參數 | 說明 | 建議值 |
| IGNORE | 忽略建立錯誤(表已存在),僅匯入資料 | Y(重複匯入必開) |
| COMMIT | 每匯入一個陣列提交 | Y(避免大交易回滾段不足) |
| FROMUSER/TOUSER | Schema 重映射 | 跨環境部署必用 |
| INDEXFILE | 僅產生索引建立腳本,不匯入資料 | 檢視索引結構用 |
| SHOW | 僅顯示匯入內容,不實際匯入 | Y(預演) |
實戰範例集
1. 完整資料庫備份(每日)
exp system/manager@PROD FULL=Y FILE=/backup/exp_full_%Y%m%d.dmp LOG=/backup/exp_full_%Y%m%d.log CONSISTENT=Y
2. 單表增量匯出(每小時)
exp app_user/pwd@PROD TABLES=orders QUERY="WHERE order_date >= TRUNC(SYSDATE,'HH')" FILE=/backup/exp_orders_inc.dmp LOG=/backup/exp_orders_inc.log
3. 跨 Schema 匯入(測試環境部署)
imp test_user/pwd@TEST FILE=/backup/exp_prod.dmp FROMUSER=prod_user TOUSER=test_user IGNORE=Y COMMIT=Y LOG=/backup/imp_test.log
Data Pump (EXPDP/IMPDP) 關鍵升級差異
| 特性 | EXP/IMP | EXPDP/IMPDP |
| 執行位置 | 客戶端進程 | 伺服器端進程(需 DIRECTORY 物件) |
| 平行度 | 不支援 | PARALLEL=4 多執行緒加速 |
| 網路模式 | 不支援 | NETWORK_LINK 直接跨庫傳輸 |
| 壓縮 | 無 | COMPRESSION=ALL/METADATA_ONLY |
| 過濾 | QUERY 參數 | INCLUDE/EXCLUDE 物件級、SAMPLE 取樣 |
| 重映射 | FROMUSER/TOUSER | REMAP_SCHEMA, REMAP_TABLESPACE, REMAP_TABLE |
| 互動模式 | 支援 | 支援(ATTACH/CONTINUE_CLIENT) |
Data Pump 典型指令
-- 建立目錄物件(需 DBA)
CREATE OR REPLACE DIRECTORY dpump_dir AS '/u01/dpump';
GRANT READ, WRITE ON DIRECTORY dpump_dir TO app_user;
-- 匯出
expdp app_user/pwd@PROD DIRECTORY=dpump_dir DUMPFILE=exp_%U.dmp LOGFILE=exp.log PARALLEL=4 COMPRESSION=ALL
-- 匯入(Schema 重映射 + 表空間重映射)
impdp test_user/pwd@TEST DIRECTORY=dpump_dir DUMPFILE=exp_01.dmp LOGFILE=imp.log REMAP_SCHEMA=prod_user:test_user REMAP_TABLESPACE=PROD_DATA:TEST_DATA TABLE_EXISTS_ACTION=REPLACE
遷移檢查清單
- ✅ 建立
DIRECTORY 物件指向共享儲存(ASM/NFS/本地磁碟)。
- ✅ 授予執行用戶
READ, WRITE 權限。
- ✅ 將舊
EXP 腳本改寫為 EXPDP,驗證匯入結果一致性。
- ✅ 利用
PARALLEL、COMPRESSION 縮短備份窗口。
- ✅ 納入 RMAN 備份策略,邏輯備份為輔助,不可替代物理備份。
全面升級至 Data Pump,享受伺服器端並行、壓縮、網路模式、靈活重映射帶來的備份/遷移效能飛躍。