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

Oracle exp/imp 備份遷移實戰:參數詳解與常見錯誤排查

     編輯:Oracle 教學

Oracle exp/imp 備份遷移實戰:參數詳解與常見錯誤排查

傳統 exp/imp 雖被 Data Pump 取代,但在中小資料庫、跨版本遷移仍常用。本文整理實戰指令、關鍵參數與踩坑記錄。

導出

exp userid=clsoft/clweiye@orcl \
    file=clerp20100711.dmp \
    direct=y \
    log=clerp20100711exp.log

導入

imp clsoftoa/clsoftoa@orcl124 \
    fromuser='CLSOFT' touser='clsoftoa' \
    file='D:\clsoft_2012-06-26_17.dmp' \
    log='D:\clsoft_2012-06-26_17.dmp.log' \
    ignore=y \
    buffer=100000000

核心參數對照表

參數用途建議值
userid連線帳密@TNS具 DBA 權限帳號
file匯出/匯入檔案路徑完整路徑,避免相對路徑
direct=y直接路徑導出(效能較好)大表建議開啟
buffer資料緩衝區大小100000000 (100MB) 視記憶體調整
ignore=y導入時忽略建立錯誤(表已存在)遷移建議開啟
fromuser/touserSchema 重映射跨使用者遷移必備
log記錄檔路徑務必指定,便於事後稽核

實戰遷移流程(11g → 10g 跨版本)

  1. 來源端導出:用 11g exp 導出(注意:高版本導出低版本可能有相容性問題)
  2. 目標端備份:先用 10g exp 備份原資料
  3. 修正 DMP 版本號:16 進位編輯器將檔頭 11.20.00 改為 10.20.10
  4. 清空目標 Schema:PL/SQL Developer → Objects → Tables → 全選 Drop
  5. 目標端導入:用 10g imp 導入修正後 DMP

常見錯誤與解決

錯誤原因解決
EXP-00056 ORA-28009Linux 下 sysdba 需轉義exp \'sys/pwd as sysdba\' ...
IMP-00010 頭部驗證失敗跨版本 DMP 不相容十六進位編輯器修改檔頭版本號
IMP-00015 物件已存在目標表未清空先 Drop 所有物件或加 ignore=y
ORA-01435 使用者不存在fromuser/touser 拼錯確認大小寫,Oracle 使用者名通常大寫

進階技巧

  • 分表導出:tables=table1,table2
  • 只導結構:rows=n
  • 查詢導出:query='WHERE created_date > SYSDATE-30'
  • 壓縮傳輸:導出後 gzip file.dmp 再 FTP

遷移檢查清單

  1. 字元集一致性(SELECT * FROM NLS_DATABASE_PARAMETERS)
  2. 表空間預建或 imp 自動建立權限
  3. 序列、同義詞、DB Link 等非表物件手動重建
  4. 導入後統計資訊重收集 DBMS_STATS.GATHER_SCHEMA_STATS
  5. 應用端連線字串、權限驗證
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved