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

Oracle exp/imp 導入導出實戰指南:模式、參數與常見問題

     編輯:Oracle 教學

Oracle 傳統導出入工具 exp/imp 完整解析

雖然 Oracle 官方已推薦使用 Data Pump (expdp/impdp) 取代傳統 exp/imp,但在舊版本環境、跨版本遷移或簡單邏輯備份場景下,exp/imp 仍具不可替代的輕量優勢。本文詳細說明四種導出模式、實戰命令範例、直接路徑優化、導入順序與常見坑點。

一、四大導出模式對照

模式適用場景典型權限需求
表模式導出指定用戶下的特定表表擁有者或 DBA
用戶模式導出某用戶所有對象用戶自身或 DBA
資料庫模式導出全庫對象需 exp_full_database 權限
可傳輸表空間導出整個表空間DBA

二、實戰命令範例

# 1. 表模式
exp doiido/doiido file=doiido.dmp tables=(doiido,boy) log=doiido.log

# 2. 用戶模式
exp doiido/doiido@doiido file=doiido.dmp owner=doiido log=doiido.log

# 3. 全庫模式
grant exp_full_database to doiido;
exp doiido/doiido file=doiido.dmp full=y log=doiido.log

# 4. 表空間模式
exp system/doiido@orcl file=doiido.dmp tablespaces=(doiido)

# 5. Windows 遠端導出
exp doiido/doiido@192.168.100.200:1521/doiido file=d:\doiido.dmp tables=boy log=d:\doiido.log

三、傳統路徑 vs 直接路徑

  • 傳統路徑:通過 SQL 查詢層讀取,經 SGA 緩衝,速度較慢但相容性最好。
  • 直接路徑:direct=y 繞過 SQL 層直接讀取數據塊,大幅提升導出速度,但有觸發器、外鍵等限制。

四、導入操作與順序

imp 導入遵循固定順序:建表結構 → 載入數據 → 建索引 → 導入觸發器 → 啟用約束 → 建位圖/函數索引。若目標表已存在,加上 ignore=y 可跳過建表錯誤直接追加數據。

五、常見問題與避坑指南

  1. 跨用戶導入:使用 fromuser=src touser=tgt,但前提是目標端已存在同名表空間。
  2. 警告訊息:導出過程出現 warning 通常因索引、外鍵等輔助對象未導出,屬正常現象。
  3. 字符集一致性:導入導出雙端字符集必須相同或為超集/子集關係,否則會出現字符損壞。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved