ORACLE EXP命令相關介紹

ORACLE EXP命令 總結
 

本文對Oracle數據的導入導出 imp ,exp 兩個命令進行了介紹, 並對其相應的參數進行了說明,然後通過一些示例進行演練,加深理解.
文章最後對運用這兩個命令可能出現的問題(如權限不夠,不同oracle版本)進行了探討,並提出了相應的解決方案;
本文部分內容摘錄自網絡,感謝網友的經驗總結;
一.說明

   oracle 的exp/imp命令用於實現對數據庫的導出/導入操作;
   exp命令用於把數據從遠程數據庫服務器導出至本地,生成dmp文件;
   imp命令用於把本地的數據庫dmp文件從本地導入到遠程的Oracle數據庫中。

二.語法

可以通過在命令行輸入 imp help=y 獲取imp的語法信息:
=============================================================================
  C:/Documents and Settings/auduser>imp help=y

  可以通過輸入 IMP 命令和您的用戶名/口令
  後接用戶名/口令的命令:

  例程: IMP SCOTT/TIGER

  或者, 可以通過輸入 IMP 命令和各種參數來控制“導入”
  按照不同參數。要指定參數,您可以使用關鍵字:

  格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
  例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
  或 TABLES=(T1: P1,T1: P2),如果 T1 是分區表

  USERID 必須是命令行中的第一個參數。

  關鍵字  說明(默認)        關鍵字      說明(默認)
  --------------------------------------------------------------------------
  USERID   用戶名/口令           FULL         導入整個文件 (N)
  BUFFER   數據緩衝區大小         FROMUSER     所有人用戶名列表
  FILE     輸入文件 (EXPDAT.DMP)    TOUSER       用戶名列表
  SHOW     只列出文件內容 (N) TABLES      表名列表
  IGNORE   忽略創建錯誤 (N)    RECORDLENGTH  IO 記錄的長度
  GRANTS  導入權限 (Y)           INCTYPE      增量導入類型
  INDEXES 導入索引 (Y)          COMMIT       提交數組插入 (N)
  ROWS    導入數據行 (Y)        PARFILE      參數文件名
  LOG      屏幕輸出的日誌文件   CONSTRAINTS  導入限制 (Y)
  DESTROY                覆蓋表空間數據文件 (N)
  INDEXFILE              將表/索引信息寫入指定的文件
  SKIP_UNUSABLE_INDEXES  跳過不可用索引的維護 (N)
  FEEDBACK               每 x 行顯示進度 (0)
  TOID_NOVALIDATE        跳過指定類型 ID 的驗證
  FILESIZE               每個轉儲文件的最大大小
  STATISTICS             始終導入預計算的統計信息
  RESUMABLE              遇到與空格有關的錯誤時掛起 (N)
  RESUMABLE_NAME         用來標識可恢復語句的文本字符串
  RESUMABLE_TIMEOUT      RESUMABLE 的等待時間
  COMPILE                編譯過程, 程序包和函數 (Y)

  下列關鍵字僅用於可傳輸的表空間
  TRANSPORT_TABLESPACE 導入可傳輸的表空間元數據 (N)
  TABLESPACES 將要傳輸到數據庫的表空間
  DATAFILES 將要傳輸到數據庫的數據文件
  TTS_OWNERS 擁有可傳輸表空間集中數據的用戶

  通過輸入 EXP 命令和用戶名/口令,您可以
  後接用戶名/口令的命令:

  例程: EXP SCOTT/TIGER

  或者,您也可以通過輸入跟有各種參數的 EXP 命令來控制“導出”
  按照不同參數。要指定參數,您可以使用關鍵字:

  格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
  例程: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
  或 TABLES=(T1: P1,T1: P2),如果 T1 是分區表

  USERID 必須是命令行中的第一個參數。

  關鍵字  說明(默認)        關鍵字      說明(默認)
  --------------------------------------------------------------------------
  USERID   用戶名/口令           FULL         導出整個文件 (N)
  BUFFER   數據緩衝區大小         OWNER     所有者用戶名列表
  FILE       輸出文件 (EXPDAT.DMP)  TABLES       表名稱列表
  COMPRESS   導入到一個區 (Y) RECORDLENGTH IO 記錄的長度
  GRANTS  導出權限 (Y)           INCTYPE      增量導出類型
  INDEXES    導出索引 (Y)         RECORD       跟蹤增量導出 (Y)
  DIRECT     直接路徑 (N)            TRIGGERS     導出觸發器 (Y)
  LOG        屏幕輸出的日誌文件  STATISTICS   分析對象 (ESTIMATE)
  ROWS    導出數據行 (Y)        PARFILE      參數文件名
  CONSISTENT 交叉表一致性    CONSTRAINTS  導出約束條件 (Y)

  FEEDBACK             每 x 行顯示進度 (0)
  FILESIZE             每個轉儲文件的最大大小
  FLASHBACK_SCN        用於回調會話快照的 SCN
  FLASHBACK_TIME       用來獲得最接近於指定時間的 SCN 的時間
  QUERY                用來導出表的子集的選擇子句
  RESUMABLE            遇到與空格有關的錯誤時掛起 (N)
  RESUMABLE_NAME       用來標識可恢復語句的文本字符串
  RESUMABLE_TIMEOUT    RESUMABLE 的等待時間
  TTS_FULL_CHECK       對 TTS 執行完全或部分相關性檢查
  TABLESPACES          要導出的表空間列表
  TRANSPORT_TABLESPACE 導出可傳輸的表空間元數據 (N)
  TEMPLATE 調用 iAS 模式導出的模板名稱

三.使用示例

3.1 數據導出:

 1 將數據庫SampleDB完全導出,用戶名system 密碼manager 導出到E:/SampleDB.dmp中

   exp system/manager@TestDB file=E:/sampleDB.dmp full=y

 2 將數據庫中system用戶與sys用戶的表導出

   exp system/manager@TestDB file=E:/sampleDB.dmp  owner=(system,sys)

 3 將數據庫中的表 TableA,TableB 導出

    exp system/manager@TestDB  file=E:/sampleDB.dmp  tables=(TableA,TableB)

 4 將數據庫中的表tableA中的字段filed1 值爲 "王五" 的數據導出

   exp system/manager@TestDB  file=E:/sampleDB.dmp  tables=(tableA)  query=' where filed1='王五'
  
   如果想對dmp文件進行壓縮,可以在上面命令後面 加上 compress=y 來實現。

3.2 數據的導入

 1 將備份數據庫文件中的數據導入指定的數據庫SampleDB 中,如果 SampleDB 已存在該表,則不再導入;

   imp system/manager@TEST  file=E:/sampleDB.dmp  full=y  ignore=y
 

 2 將d:/daochu.dmp中的表table1 導入

 imp system/manager@TEST  file=E:/sampleDB.dmp  tables=(table1)

3. 導入一個完整數據庫

 imp system/manager file=bible_db log=dible_db full=y ignore=y

4. 導入一個或一組指定用戶所屬的全部表、索引和其他對象

 imp system/manager file=seapark log=seapark fromuser=seapark imp 
 system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)

5. 將一個用戶所屬的數據導入另一個用戶

 imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
 imp system/manager file=tank log=tank fromuser=(seapark,amy)
 touser=(seapark1, amy1)

6. 導入一個表

 imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)

7. 從多個文件導入

 imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) 
log=paycheck, filesize=1G full=y


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章