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

Oracle EXP/IMP 遷移工具深度解析:參數全覆蓋與實戰最佳實踐

     編輯:Oracle 資料庫基礎

定位與適用場景

EXP/IMP 是 Oracle 最早的邏輯備份工具,定位為數據轉儲/遷移工具,而非物理備份替代品。適用於:

  • 中小型數據庫(< 500GB)全庫/模式/表級遷移
  • 表空間傳輸(TTS)元數據導出
  • 跨版本/跨平台邏輯升級
  • 開發/測試環境數據刷新

TB 級數據庫請改用 RMAN 或 Data Pump (EXPDP/IMPDP)。

環境變量與字符集

# 中文幫助顯示
SET NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 英文幫助
SET NLS_LANG=AMERICAN_AMERICA.AL32UTF8

導出導入雙端 NLS_LANG 必須一致,否則數據損壞。

EXP 核心參數速查表

參數默認說明推薦值
USERID-連接串 user/pass@tns必填
FULLN全庫導出Y(結構備份配合 ROWS=N)
OWNER-模式級導出列表指定 schema
TABLES-表級導出列表指定表名
FILEEXPDAT.DMP導出文件路徑帶時間戳命名
COMPRESSY合併 extent 初始值N(避免導入後空間浪費)
BUFFER256KB緩存大小100000000 (100MB)
FEEDBACK0進度顯示間隔行數10000
DIRECTN直接路徑導出Y(大表加速)
FILESIZE0單文件最大尺寸2G(防 32位 限制)
QUERY-導出 WHERE 子句分區導出利器
CONSISTENTN交叉表一致性Y(靜態表可開)
STATISTICSESTIMATE統計信息導出NONE(導入後重收集)
PARFILE-參數文件路徑複雜任務必用

IMP 核心參數速查表

參數默認說明推薦值
FROMUSER/TOUSER-Schema 重映射跨用戶導入必用
IGNOREN忽略創建錯誤Y(預建表結構時)
INDEXESY導入索引N(大表先數據後建索引)
GRANTSY導入權限Y
ROWSY導入數據Y
COMMITN批量提交Y(大表防回滾段爆滿)
DESTROYN覆蓋數據文件極謹慎使用
INDEXFILE-導出 DDL 到文件預審結構用
SKIP_UNUSABLE_INDEXESN跳過失效索引Y

實戰常用組合範例

1. 結構遷移(不含數據)

exp userid=test/test file=db_str.dmp log=db_str.log full=y rows=n compress=y direct=y

2. 指定 Schema 導出

exp userid=test/test file=schema.dmp log=schema.log owner=duanl

3. 大表分文件導出(>2GB)

exp userid=duanl/duanl file=f1,f2,f3,f4,f5 filesize=2G owner=scott

4. 跨 Schema 導入並重建索引

imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1 indexes=n

預建目標表結構(調整存儲參數)→ 導入數據 → 手動創建索引(指定新表空間/並行度)。

5. 參數文件模式(生產環境推薦)

# exp.par
userid=system/manager
owner=(scott,hr)
file=/backup/exp_%U.dmp
filesize=2G
log=/backup/exp.log
buffer=100000000
feedback=10000
direct=y
compress=n
consistent=y
statistics=none

exp parfile=exp.par

增量導出/導入:不建議使用

EXP/IMP 的「增量」僅記錄數據字典變更,非真正塊級增量,恢復極其複雜且易出錯。生產環境請使用 RMAN 級別增量備份。

常見坑點與避雷指南

  1. 字符集不匹配:導出導入雙端 NLS_LANG 必須一致,查詢 NLS_DATABASE_PARAMETERS 確認。
  2. COMPRESS=Y 導入後表膨脹:初始 extent 變為原表所有 extent 之和,導致空間浪費,堅持 COMPRESS=N。
  3. 大表導入慢:INDEXES=N COMMIT=Y BUFFER=大值,導入後並行創建索引。
  4. 版本不兼容:高版本導出文件低版本無法導入;低版本導出可高版本導入。跨大版本請用 Data Pump。
  5. 長字段截斷:設置 LONG=足夠大值(默認 64KB)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved