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

Oracle Imp 實用程式完整指南:八大常用場景與參數檔最佳實踐

     編輯:Oracle 資料庫基礎

前言:Imp 不只是「匯入」,是資料遷移的瑞士刀

Oracle Import Utility (imp) 支援從 DMP 檔案提取資料庫物件與資料。本文系統整理八大常用場景、參數檔標準化範本、增量匯入舊功能說明,並對比 Exp/Imp 版本相容性鐵律。

一、八大常用場景指令範本

1. 取得說明

imp help=y

2. 全量資料庫匯入

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

3. 指定用戶/多用戶匯入(Schema 級)

# 單用戶
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. 多檔案匯入(分卷 DMP)

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 內容
# Import the sample tables used for the Oracle8i Database Administrator's Bible
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:僅匯入系統物件。
  • INCTYPE=RESTORE:匯入所有用戶物件。
  • 現代環境請改用 RMAN 增量備份/恢復。

二、Exp/Imp 版本相容性鐵律

鐵律:永遠使用目標端(版本較高/相同)的 Imp 工具讀取來源端 Exp 產出的 DMP。

三、Exp 關鍵參數速查(配合 Imp 使用)

C:\> exp help=y
# 輸出關鍵參數:
# USERID, FULL, OWNER, TABLES, FILE, FILESIZE, BUFFER, COMPRESS, GRANTS, INDEXES,
# ROWS, CONSTRAINTS, DIRECT, CONSISTENT, STATISTICS, QUERY, LOG, FEEDBACK

Exp 典型參數組合

# Schema 級備份
exp SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) FILE=scott.dmp LOG=scott.log

# 分區表指定分區
exp SCOTT/TIGER TABLES=(SALES:Q1_2023,SALES:Q2_2023) FILE=sales_q1q2.dmp

# 大表 Direct Path
exp SCOTT/TIGER TABLES=BIG_TABLE DIRECT=Y BUFFER=64000000 FILE=big.dmp

四、參數檔標準化範本(團隊通用)

# imp_std.par
USERID=system/manager
FILE=source.dmp
LOG=imp_&DATE.log
IGNORE=Y
COMMIT=Y
BUFFER=32000000
FEEDBACK=50000
STATISTICS=NONE
GRANTS=Y
INDEXES=Y
CONSTRAINTS=Y
ROWS=Y
# 視場景啟用:
# FROMUSER=old_schema
# TOUSER=new_schema
# TABLES=(table1,table2)
# FULL=Y

五、常見操作錯誤自查表

來源 Exp 版本目標 Imp 版本結果說明
9i11g✅ 成功向上相容
10g11g✅ 成功向上相容
11g10g❌ IMP-00010向下不相容
11g9i❌ IMP-00010向下不相容
現象原因修正
匯入極慢未關閉索引/約束/觸發器;BUFFER 過小前置 DISABLE,BUFFER≥32M,SKIP_UNUSABLE_INDEXES=Y
中文亂碼客戶端 NLS_LANG 與目標庫字符集不符export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 (或 ZHS16GBK)
表已存在報錯停止未加 IGNORE=Y加上 IGNORE=Y
外鍵錯誤 ORA-02291父表資料未先匯入調整 TABLES 順序或 CONSTRAINTS=N 事後建 FK
IMP-00010 not valid export file版本向下不相容或檔案損壞用高版本 Imp;檢查檔案完整性

結語

Imp 的威力在於場景化參數組合(FULL/FROMUSER/TABLES/TOUSER/FILES/INCTYPE)與參數檔標準化。掌握八大場景範本、版本相容鐵律、參數檔模板與自查表,即可應對 99% 的邏輯匯入需求。團隊應建立「Imp 作業單」模板:場景選擇 → 參數檔生成 → 前置檢查 → 執行 → 驗收簽核,實現流程固化與品質保證。

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