首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle exp/imp 工具導入導出 DMP 文件完整操作指南

     編輯:Oracle 資料庫相關知識

工具定位

exp (Export) / imp (Import) 是 Oracle 早期邏輯備份工具,適用於中小數據庫、表級遷移、版本間數據轉移。11g+ 推薦使用 Data Pump (expdp/impdp),性能與並行度優勢顯著。

操作流程 (Windows 命令行示例)

1. 打開命令提示符

Win+R → cmd → 回車

2. 導出命令

exp username/password@tns_alias FILE=dump.dmp TABLES=(table1,table2,table3)
-- 參數說明:
-- FILE: 導出文件路徑
-- TABLES: 逗號分隔的表名,不指定則導出用戶所有對象
-- FULL=Y: 導出整個數據庫 (需 DBA 權限)
-- OWNER: 指定 Schema 導出
-- QUERY: 附加 WHERE 條件導出子集

3. 導入命令

imp username/password@tns_alias FILE=dump.dmp FROMUSER=src_user TOUSER=tgt_user IGNORE=Y
-- 關鍵參數:
-- FROMUSER/TOUSER: Schema 重映射,跨用戶遷移必備
-- IGNORE=Y: 忽略建表錯誤 (如表已存在),繼續導入數據
-- DESTROY=Y: 導入前自動 DROP 目標表 (慎用)
-- INDEXES=Y/N: 是否導入索引
-- COMMIT=Y: 每提交 N 行提交一次,減少回滾段壓力
-- BUFFER: 緩存大小 (bytes),影響性能

常見場景範例

全庫導出 (需 SYSDBA)

exp "/ as sysdba" FULL=Y FILE=full_exp.dmp LOG=full_exp.log

單表導出帶條件

exp scott/tiger@orcl FILE=emp.dmp TABLES=emp QUERY="WHERE deptno=10"

跨 Schema 導入重映射

imp system/manager@orcl FILE=hr.dmp FROMUSER=hr TOUSER=hr_test IGNORE=Y

最佳實踐與避坑

  1. 版本兼容: 導入目標版本 ≥ 導出源版本;跨大版本需先用低版本 exp、高版本 imp。
  2. 字符集一致: 源/目標 NLS_LANG 需一致,否則隱式轉換導致數據損壞。
  3. 大表優化: 導出加 COMPRESS=Y (初始Extent合併)、導入加 COMMIT=Y BUFFER=10485760。
  4. 權限預處理: 導入前在目標庫創建 Tablespace、User、Quota、Role。
  5. 日誌留存: 永久保存 .log 文件,記錄錯誤行號與 ORA 編碼便於事後審計。

Data Pump 遷移建議

對於 100GB+ 數據庫,請直接使用 expdp/impdp:
- 並行度 PARALLEL=8
- 網絡模式 NETWORK_LINK 免落地 DMP
- 可插拔表空間傳輸 (TTS) 實現 TB 級秒級遷移

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved