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

Oracle Imp 匯入命令全解析:八大場景、參數詳解與 Exp 關鍵參數對照

     編輯:Oracle 資料庫基礎

前言:Imp 是資料遷移的最後一公里

無論是全庫遷移、Schema 重映射、單表恢復、多檔分卷匯入,imp 都是最終執行者。本文系統整理八大匯入場景完整指令、參數詳細說明、Exp 關鍵參數對照表、版本相容性鐵律,構建可離線查閱的操作手冊。

一、Imp 八大場景標準指令

1. 線上說明

imp help=y

2. 全量資料庫匯入

imp system/manager FILE=bible_db LOG=bible_db.log FULL=Y IGNORE=Y

3. 指定用戶/多用戶匯入

imp system/manager FILE=seapark LOG=seapark.log FROMUSER=seapark
imp system/manager FILE=seapark LOG=seapark.log FROMUSER=(seapark,amy,amyc,harold)

4. Schema 重映射(跨用戶遷移)

imp system/manager FILE=tank LOG=tank.log FROMUSER=seapark TOUSER=seapark_copy
imp system/manager FILE=tank LOG=tank.log FROMUSER=(seapark,amy) TOUSER=(seapark1,amy1)

5. 單表/多表匯入

imp system/manager FILE=tank LOG=tank.log FROMUSER=seapark TABLES=(a,b)

6. 多檔案分卷匯入

imp system/manager FILE=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) \
LOG=paycheck.log FILESIZE=1G FULL=Y

7. 參數檔模式(生產標準)

imp system/manager PARFILE=bible_tables.par

# bible_tables.par
FROMUSER=seapark
TOUSER=seapark_copy
FILE=seapark.dmp
LOG=seapark_import.log
IGNORE=Y
COMMIT=Y
BUFFER=32000000

8. 增量匯入(舊版,9i 後棄用)

imp system/manager INCTYPE=RESTORE FULL=Y FILE=incr.dmp
# INCTYPE=SYSTEM (系統物件) / RESTORE (用戶物件)

二、Imp 關鍵參數詳細說明

參數功能預設生產建議備註
USERID連線帳密@連接串-寫在 PARFILE
FULL全量匯入N遷移時 Y需 IMP_FULL_DATABASE
FROMUSER來源 Schema 列表-配合 TOUSER
TOUSER目標 Schema 列表-重映射必填長度同 FROMUSER
TABLES匯入表列表-單表恢復用支援 partition: T1:P1
FILE輸入 DMP 檔(多檔逗號分隔)EXPDAT.DMP指定完整路徑
FILESIZE分卷大小0與匯出端一致
LOG日誌檔路徑螢幕必填,含日期
IGNORE忽略建立錯誤(表已存在)NY重跑/續傳核心參數
COMMIT陣列提交NY減少 Undo 壓力
BUFFER資料緩衝區大小409632M-64M大幅提升速度
GRANTS匯入授權YY
INDEXES匯入索引YY (大表可 N 事後建)
CONSTRAINTS匯入約束YY (大表可 N 事後建)
ROWS匯入資料YYN=結構遷移
SKIP_UNUSABLE_INDEXES跳過不可用索引維護N大表 Y巨大加速
STATISTICS執行 DMP 內 ANALYZEYNONE避免過時統計
DESTROY覆蓋資料檔(TTS)N極謹慎僅 TTS 模式
INDEXFILEDDL 輸出至檔案不執行-審查用
TOID_NOVALIDATE跳過 Type ID 驗證-跨版本物件類型
FEEDBACK進度顯示間隔行數050000長作業可視化

三、Exp 關鍵參數對照表(配合 Imp 使用)

Exp 參數功能預設生產建議對應 Imp 影響
COMPRESS匯入時合併 ExtentsYNY 導致大表匯入失敗
DIRECTDirect Path ExportN大表 Y加速 2-5 倍;不支援 LONG/LOB
CONSISTENTRead-Only 一致性N跨表一致性 Y大量 Undo 消耗
STATISTICS匯出統計資訊ESTIMATENONEImp 端 STATISTICS=NONE 同步
QUERY表級 WHERE 子句-分片導出用Imp 無對應,匯入全表
FILESIZE分卷大小02G/4GImp 端 FILESIZE 必同步
BUFFER緩衝區大小409632M-64M雙端同步調大
GRANTS/INDEXES/CONSTRAINTS/TRIGGERS物件類型開關Y視需求Imp 端同名參數控制匯入
ROW匯出資料YY/NImp ROWS=N 可只導結構
LOG日誌檔螢幕必填雙端對稱保留

四、版本相容性鐵律(再強調一次)

  • Imp 版本 ≥ Exp 版本:目標端使用高版本 Imp 讀取低版本 DMP。
  • 跨大版本遷移:9i→11g、10g→12c、11g→19c 皆可,反向不可。
  • 字符集:目標字符集為來源超集最安全(如 ZHS16GBK → AL32UTF8)。

五、生產作業單模板(可直接複製)

# ==========================================
# Imp 作業單 - 自動產生版
# ==========================================
# 環境:TARGET_DB (19c, AL32UTF8)
# 來源:SOURCE_DB (11g, ZHS16GBK)
# DMP:/backup/source_schema_20240115.dmp (3.2G)
# 場景:Schema 重映射 OLD_APP → NEW_APP
# ==========================================

# 1. 前置檢查
tnsping TARGET_DB
df -h /u01/oradata/TARGET  # 空間 > 10G
SELECT * FROM nls_database_parameters WHERE parameter LIKE '%CHARACTERSET';

# 2. 參數檔
cat > /backup/imp_NEW_APP.par <<'EOF'
USERID=system/xxx
FILE=/backup/source_schema_20240115.dmp
LOG=/backup/imp_NEW_APP_20240115.log
FROMUSER=OLD_APP
TOUSER=NEW_APP
IGNORE=Y
COMMIT=Y
BUFFER=64000000
FEEDBACK=50000
STATISTICS=NONE
GRANTS=Y
INDEXES=Y
CONSTRAINTS=Y
ROWS=Y
SKIP_UNUSABLE_INDEXES=Y
EOF

# 3. 執行
imp parfile=/backup/imp_NEW_APP.par

# 4. 後置驗收
# 行數核對、失效物件、序列同步、統計收集
# ==========================================

結語

Imp 的參數雖多,但生產常用者不超過 12 個。掌握八大場景範本、參數檔標準化、版本/字符集鐵律、BUFFER/COMMIT/IGNORE/SKIP_UNUSABLE_INDEXES 四大加速鍵,配合作業單模板,即可將每一次匯入變為標準化、可審計、可交付的工程動作。

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