前言:參數即文檔,文檔即生產力
執行 exp help=y 或 imp help=y 可獲得官方完整參數清單,但純文字輸出缺乏分類與實戰建議。本文將所有參數按功能域分類,補充預設值、推薦值、避坑指南,構建可直接查閱的參數手冊。
一、Exp 參數完整分類表
1. 連線與模式控制
| 參數 | 說明 | 預設 | 建議/備註 |
| USERID | 用戶名/密碼[@連接串] | - | 必填;建議寫在參數檔避免進程列表洩露 |
| FULL | 全量匯出(需 EXP_FULL_DATABASE 權限) | N | 遷移/災備核心參數 |
| OWNER | Schema 列表(用戶模式) | - | 如 OWNER=(APP,APP_READ) |
| TABLES | 表列表(表模式) | - | 如 TABLES=(T1,T2);支援分區 T1:P1 |
| PARFILE | 參數檔路徑 | - | 生產環境強制使用 |
2. 輸出檔案控制
| 參數 | 說明 | 預設 | 建議/備註 |
| FILE | 匯出檔路徑 | EXPDAT.DMP | 建議含日期/Schema:app_20240115.dmp |
| FILESIZE | 單檔最大位元組(0=不分卷) | 0 | 突破 2GB/4GB 限制,如 FILESIZE=2G |
| LOG | 日誌檔路徑 | 螢幕 | 必須指定,便於事後審計 |
3. 資料與物件篩選
| 參數 | 說明 | 預設 | 建議/備註 |
| ROWS | 是否匯出資料列 | Y | N=結構遷移 |
| QUERY | 表級 WHERE 子句 | - | 需雙引號轉義,如 QUERY="WHERE dt > SYSDATE-30" |
| CONSTRAINTS | 匯出約束 | Y | |
| GRANTS | 匯出授權 | Y | |
| INDEXES | 匯出索引定義 | Y | |
| TRIGGERS | 匯出觸發器 | Y | |
| STATISTICS | 匯出統計資訊 | ESTIMATE | 建議 NONE,遷移後重收 |
4. 效能與一致性
| 參數 | 說明 | 預設 | 建議/備註 |
| BUFFER | 記憶體緩衝區大小 | 4096 | 建議 8M-64M (BUFFER=32000000) |
| DIRECT | Direct Path Export | N | 大表加速 2-5 倍;不支援 LONG/LOB/觸發器 |
| CONSISTENT | Read-Only 一致性 (SET TRANSACTION READ ONLY) | N | 跨表一致性需開啟;大量 Undo 消耗 |
| COMPRESS | 匯入時合併 Extents | Y | 強烈建議 N,避免大表匯入失敗 |
| RECORDLENGTH | I/O 記錄長度 | OS dependent | 通常無需調整 |
| FEEDBACK | 進度顯示間隔行數 | 0 | 如 FEEDBACK=10000 |
5. 增量備份(舊版功能,9i 後棄用)
| 參數 | 說明 | 預設 | 備註 |
| INCTYPE | 增量類型 (COMPLETE/INCREMENTAL/CUMULATIVE) | - | 需 SYS/SYSTEM;9i 後建議改用 RMAN |
| RECORD | 記錄增量備份歷史 | Y | |
6. 可傳輸表空間 (TTS)
| 參數 | 說明 | 預設 | 備註 |
| TRANSPORT_TABLESPACE | 匯出 TTS 中繼資料 | N | 需配合 TABLESPACES |
| TABLESPACES | 待傳輸表空間列表 | - | 如 TABLESPACES=(APP_DATA,APP_IDX) |
二、Imp 參數完整分類表
1. 連線與模式
| 參數 | 說明 | 預設 | 建議/備註 |
| USERID | 用戶名/密碼[@連接串] | - | |
| FULL | 全量匯入 | N | |
| FROMUSER | 來源 Schema 列表 | - | 配合 TOUSER 重映射 |
| TOUSER | 目標 Schema 列表 | - | 如 FROMUSER=OLD TOUSER=NEW |
| TABLES | 匯入表列表 | - | |
| PARFILE | 參數檔 | - | |
2. 輸入檔案
| 參數 | 說明 | 預設 | 建議/備註 |
| FILE | 輸入 DMP 檔(支援多檔逗號分隔) | EXPDAT.DMP | |
| FILESIZE | 分卷大小(需與匯出端一致) | 0 | |
| SHOW | 僅列出檔案內容不匯入 | N | 驗證 DMP 內容用 |
| LOG | 日誌檔 | 螢幕 | 必須指定 |
3. 匯入行為控制
| 參數 | 說明 | 預設 | 建議/備註 |
| IGNORE | 忽略建立錯誤(表已存在) | N | 生產匯入建議 Y,續傳資料 |
| COMMIT | 陣列提交頻率 | N | 建議 Y,減少 Undo 壓力 |
| INDEXES | 匯入索引 | Y | |
| CONSTRAINTS | 匯入約束 | Y | |
| GRANTS | 匯入授權 | Y | |
| ROWS | 匯入資料 | Y | N=僅結構 |
| SKIP_UNUSABLE_INDEXES | 跳過不可用索引維護 | N | 大表匯入建議 Y,巨大加速 |
| ANALYZE | 執行 DMP 內 ANALYZE 語句 | Y | 建議 N,避免過時統計 |
| RECALCULATE_STATISTICS | 重新計算統計 | N | |
4. 進階/特殊
| 參數 | 說明 | 預設 | 備註 |
| INCTYPE | 增量匯入類型 | - | 配合 Exp INCTYPE |
| DESTROY | 覆蓋表空間資料檔 (TTS) | N | 極度危險,僅 TTS 模式 |
| INDEXFILE | 將 DDL 寫入檔案不執行 | - | 審查 DDL 用 |
| TOID_NOVALIDATE | 跳過 Type ID 驗證 | - | 跨版本遷移物件類型用 |
三、實戰避坑清單
- COMPRESS=Y (預設) 是大表匯入失敗首因 → 永遠在 Parfile 寫
COMPRESS=N。
- DIRECT=Y 不支援 LONG/LOB/觸發器/嵌套表 → 含此類欄位必須
DIRECT=N。
- CONSISTENT=Y 會導致大量 Undo 消耗,甚至 Snapshot Too Old → 僅在跨表強一致性必要時開啟,並確保 Undo 表空間充足。
- 字符集不匹配導致資料損壞 → 匯出/匯入端 NLS_LANG 必須一致;資料庫字符集為超集時相對安全。
- 版本向下不相容 → 目標端使用高版本 Imp 讀取低版本 Exp DMP。
- 大表匯入前先 DROP 索引/約束/觸發器,匯入後並行重建 → 可縮短 70% 以上時間。
結語
Exp/Imp 參數看似繁多,但核心常用者不超過 15 個。將上述分類表製成團隊「參數速查卡」,強制使用 Parfile 模式,即可消除 90% 的操作失誤與效能問題。