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

Oracle exp/imp 三大導出模式實戰:表級、用戶級、全庫級

     編輯:Oracle 資料庫基礎

exp/imp 的靈活性在於支持多粒度導出導入。本文系統梳理表模式、用戶模式、全庫模式的語法、參數組合與實戰技巧,覆蓋部分數據導出、僅導結構、跨 Schema 導入等高頻場景。

一、表模式:精準到列、行、條件

1. 導出單/多表

exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2

2. 導出表的部分數據(WHERE 子句)

exp user/pwd file=/dir/xxx.dmp log=xxx.log \
  tables=table1 query="WHERE col1='val' AND col2 < 100"

注意:query 參數值需雙引號包裹,單引號內部使用,Shell 下需轉義。

3. 導入指定表(跨 Schema)

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:表已存在時忽略創建錯誤,僅導數據

二、用戶模式:Schema 級整體遷移

1. 導出指定用戶所有對象及數據

exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(user1,user2)

2. 僅導出對象結構(不含數據)

exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=target_user rows=n

3. 導入(支持 Schema 重映射)

imp user/pwd file=/dir/xxx.dmp log=xxx.log \
  fromuser=src_user touser=dest_user commit=y ignore=y

三、全庫模式:實例級災備基線

1. 導出(需 FULL 權限,通常 SYS/SYSTEM)

exp user/pwd file=/dir/xxx.dmp log=xxx.log full=y commit=y ignore=y

2. 導入

imp user/pwd file=/dir/xxx.dmp log=xxx.log \
  fromuser=src_user touser=dest_user

全庫導入通常配合預建表空間、用戶、權限,避免衝突。

四、實戰提效參數速查

參數作用建議值
BUFFER數組獲取緩衝區大小6000000+(大表)
RECORDLENGTHI/O 記錄長度65535(最大)
DIRECT直接路徑導出(繞過 SQL 層)Y(大表加速)
COMPRESS初始 extent 合併N(防導入分配失敗)
STATISTICS統計信息處理NONE(導入後重收集)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved