exp/imp 的靈活性在於支持多粒度導出導入。本文系統梳理表模式、用戶模式、全庫模式的語法、參數組合與實戰技巧,覆蓋部分數據導出、僅導結構、跨 Schema 導入等高頻場景。
exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2
exp user/pwd file=/dir/xxx.dmp log=xxx.log \
tables=table1 query="WHERE col1='val' AND col2 < 100"
注意:query 參數值需雙引號包裹,單引號內部使用,Shell 下需轉義。
imp user/pwd file=/dir/xxx.dmp log=xxx.log \
tables=table1,table2 fromuser=dbuser touser=dbuser2 commit=y ignore=y
commit=y:每提交一個數組提交事務,減少回滾段壓力ignore=y:表已存在時忽略創建錯誤,僅導數據exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(user1,user2)
exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=target_user rows=n
imp user/pwd file=/dir/xxx.dmp log=xxx.log \
fromuser=src_user touser=dest_user commit=y ignore=y
exp user/pwd file=/dir/xxx.dmp log=xxx.log full=y commit=y ignore=y
imp user/pwd file=/dir/xxx.dmp log=xxx.log \
fromuser=src_user touser=dest_user
全庫導入通常配合預建表空間、用戶、權限,避免衝突。
| 參數 | 作用 | 建議值 |
|---|---|---|
| BUFFER | 數組獲取緩衝區大小 | 6000000+(大表) |
| RECORDLENGTH | I/O 記錄長度 | 65535(最大) |
| DIRECT | 直接路徑導出(繞過 SQL 層) | Y(大表加速) |
| COMPRESS | 初始 extent 合併 | N(防導入分配失敗) |
| STATISTICS | 統計信息處理 | NONE(導入後重收集) |