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

Oracle 不同版本間 Export/Import 相容性矩陣完整指南 (7/8/8i/9i/10g)

     編輯:Oracle 資料庫基礎

核心原則

  1. Export 版本 ≤ 源/目標資料庫最低版本:導出工具版本不得高於源資料庫版本。
  2. Import 版本 = 目標資料庫版本:必須使用目標端原生 IMP。
  3. Dump 向上相容,不向下相容:高版本 Dump 無法用低版本 IMP 導入。
  4. 跨大版本需執行對應 `catexp*.sql`** 準備字典視圖。

相容性矩陣 (節錄關鍵版本)

導入至 Oracle 8.0.x 或更低版本

源版本 \ 目標5.x6.x7.0-7.38.0.x
5.x - 7.3EXP 同版本EXP 6.xEXP 7.xEXP 7.3.4 (需 `catexp7.sql`)
8.0.x / 8.1.x不支援不支援EXP 7.3.4 (`catexp7.sql`)EXP 8.0.6
9.0.1 / 9.2.0不支援 (僅 8.0.6 目標允許 8i EXP 從 9i 導出)
10g不支援

導入至 Oracle 8.1.5 以上版本

源版本 \ 目標8.1.58.1.68.1.79.0.19.2.010.1.010.2.0
7.xEXP 7.xEXP 7.xEXP 7.xEXP 7.xEXP 7.xEXP 7.xEXP 7.x
8.0.3 - 8.0.6EXP 同版本EXP 同版本EXP 8.0.6EXP 8.0.6EXP 8.0.6EXP 8.0.6EXP 8.0.6
8.1.5EXP 8.1.5EXP 8.1.5EXP 8.1.5EXP 8.1.5EXP 8.1.5EXP 8.1.5EXP 8.1.5
8.1.6不支援EXP 8.1.6EXP 8.1.6EXP 8.1.6EXP 8.1.6EXP 8.1.6EXP 8.1.6
8.1.7不支援不支援EXP 8.1.7EXP 8.1.7EXP 8.1.7EXP 8.1.7EXP 8.1.7
9.0.1不支援不支援EXP 8.1.7EXP 9.0.1EXP 9.0.1EXP 9.0.1EXP 9.0.1
9.2.0不支援不支援EXP 8.1.7EXP 9.0.1EXP 9.2.0EXP 9.2.0EXP 9.2.0
10.1.0不支援 FULL=Y;建議用 Data Pump (expdp/impdp) 或 User/Table 模式
10.2.0不支援 FULL=Y;需打補丁 10.2.0.4+,源至少 8.1.7.4 / 9.2.0.4 / 10.1.0.2

關鍵限制與規則

  • FULL=Y 完整庫遷移限制:僅支援從「主要版本最終釋出版」(7.3.4, 8.0.6, 8.1.7, 9.0.1, 9.2.0) 直接遷移至下一主要版本。早期釋出版 (8.1.5, 8.1.6) 需先升級至終版再遷移。
  • 補丁集版本一致性:同版本不同補丁集 (如 9.2.0.5 vs 9.2.0.1) 導出導入需使用 **較低補丁集版本的 EXP**,否則 `EXP-00008 ORA-00942` (字典視圖不匹配)。
  • 字典視圖準備:
    • 7 → 6: 源庫跑 `catexp6.sql`
    • 8/8i → 7: 源庫跑 `catexp7.sql`
    • 9i → 8i: **無需**跑腳本,直接用 8i EXP 導出 (但 `DIRECT=Y` 不支援 LOB/Object)。
    • 10g → 9i/8i: 用 9i/8i EXP 導出,注意 10g 新特性 (子分區範本等) 可能不支援導出。
  • Data Pump (expdp/impdp) 10g+:專有格式,**僅限同版本 Data Pump 客戶端讀取**;原版 EXP/IMP 仍保留以導入舊版 Dump。
  • NLS_LANG 一致性**:導出導入端 `NLS_LANG` 必須與源資料庫字元集一致,否則資料損壞。
  • 傳輸模式**:FTP 必須 `BINARY` 模式,ASCII 模式導致 `IMP-9/10` 錯誤。

典型遷移範例

遷移路徑EXP 版本IMP 版本備註
7.3.3 → 8.1.67.3.38.1.6標準升級
8.1.7 → 9.2.08.1.79.2.0標準升級
9.0.1 → 8.1.78.1.78.1.7降級:源庫跑 8i EXP
8.1.7 → 7.3.47.3.47.3.4源庫跑 `catexp7.sql` → 7.3.4 EXP
10.1.0 → 8.1.78.1.78.1.7源庫用 8i EXP (不支援 FULL=Y)
10.1.0 → 10.1.0expdpimpdpData Pump 首選
9.2.0 → 7.3.4不支援 (跨兩大版本)
8.0.5 → 9.0.1不支援 FULL=Y (8.0.5 非終版);用 User/Table 模式或先升 8.0.6

常見錯誤代碼對照

錯誤原因對策
EXP-00024 / IMP-00023Export/Import Views 未安裝或版本錯誤SYS 跑 `catexp.sql` (對應版本)
EXP-00037EXP 版本高於資料庫版本使用與資料庫相同版本的 EXP
IMP-00010非有效 Dump 檔 (ASCII 傳輸或版本不符)FTP BINARY 模式;確認版本相容
IMP-00069字元集轉換失敗統一 NLS_LANG;避免字典衝突
ORA-0224810gR2 Dump 導入 10gR1目標升級或用低版本 EXP 重導

最佳實踐清單

  1. 規劃遷移路徑時,查閱 Metalink **Note 132904.1** (Export/Import Compatibility) 確認支援性。
  2. 生產遷移前,**在測試環境完整演練** (含字典腳本、參數調整、應用驗證)。
  3. 大庫遷移:優先 **Data Pump 並行 + 網路模式** (無中間檔案) 或 **Transportable Tablespace** (元資料遷移 + 資料檔複製)。
  4. 導出加參數:`CONSISTENT=Y` (或 `FLASHBACK_SCN`)、`STATISTICS=NONE` (避免統計資訊導入失敗)、`BUFFER`/`RECORDLENGTH` 加大。
  5. 導入加參數:`COMMIT=Y`、`INDEXES=N` (後建索引)、`CONSTRAINTS=N` (後啟用)、`DISABLE_ARCHIVE_LOGGING` (減少 Redo)。
  6. 導入後必做:`ANALYZE`/`DBMS_STATS`、比對物件計數/行數/約束狀態、應用功能測試。

結語

Oracle EXP/IMP 雖為經典工具,其版本相容性規則極為嚴格。遵循「低版本導出、目標版本導入、字典視圖對齊、補丁集對齊、FULL 模式限制」五大鐵律,配合 Data Pump 現代化替代,才能確保跨版本遷移萬無一失。

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