Oracle EXP/IMP 命令詳解

爲了區別於Oracle 10g引入的書庫泵導出和導入實用程序,將以前的導入和導出實用程序稱爲原始導出和導入實用程序。原始導入和導出實用程序,調用EXP和IMP命令。數據泵導出和導入實用程序,調用EXPDB和IMPDB命令。接下來,將詳細介紹原始導出和導入實用程序的用法。

 

1.導出和導入實用程序

導出和導入實用程序提供一種在Oracle數據庫之間傳遞數據對象的簡單方式,即使他們駐留在不同的硬件和軟件配置平臺上。

當你在數據庫中運行導出時,對象(例如表)以及相關聯的對象(例如,索引,註釋和授權)被提取。這些提取數據被寫入到一個導出備份文件中。導入實用程序從這備份文件中讀取對象定義和表數據。

導出文件是Oracle二進制格式的備份文件,通常位於磁盤或磁帶上。

導出備份文件只能由Oracle導入實用程序讀取。導入實用程序的版本不能早於導出實用程序用於創建備份文件的版本。

 

2.使用導出和導入之前

在使用導出和導入之前,必須確保以下項目:

  • 運行 catexp.sql或 catalog.sql腳本。
  • 確保有足夠的磁盤或磁盤存儲導出文件寫入
  • 驗證你是否有所需訪問權限。

 

3.運行 catexp.sql或 catalog.sql腳本

爲了使用導出和導入,你必須運行腳本 catexp.sql或 catalog.sql。Oracle 10g之後的數據庫已經創建,不需要手動運行。

catexp.sql或 catalog.sql腳本只需要在數據庫上運行一次。爲了數據庫準備導出和導入操作,該腳本執行以下任務:

  • 在數據字典中創建導出和導入必需的視圖。
  • 創建EXP_FULL_DATABASE角色。
  • EXP_FULL_DATABASEIMP_FULL_DATABASE角色分配必需的權限。
  • 爲DBA角色分配EXP_FULL_DATABASEIMP_FULL_DATABASE角色。
  • 記錄安裝的CATEXP.SQL版本。

 

4.導出和導入操作訪問權限

爲了導出和導入,必須有 CREATE SESSION 權限。這個權限屬於CONNECT角色,CONNECT角色在數據庫創建時被建立。爲了導出其他用戶的表,必須要有 EXP_FULL_DATABASE權限。這些角色是被DBA授權的。

如果系統權限中沒有包含EXP_FULL_DATABASE角色,不能導出包含其他用戶模式的對象。例如,你不能導出其他用戶模式的一張表,即使給這張創建了同義詞。

一些系統模式不能被導出,因爲它們不是用戶模式。它們包含了Oracle管理數據和元數據,不能被導出的模式包括SYS,ORDSYS和MDSYS。

你可以執行導入操作,即使你不能創建導出文件。記住通過 EXP_FULL_DATABASE 角色用戶創建的導出文件,必須使用IMP_FULL_DATABASE 角色導入。這兩個角色通常都是DBA分配的。

 

5.調用導出和導入

你可以通過以下任意一種方法調用導出和導入:

  • 命令行輸入
  • 參數文件
  • 交互模式

 

6.導出和導入模式

導入和導入功能支持4中操作模式:

  • FULL:導出和導入整個數據庫。只有擁有EXP_FULL_DATABASEIMP_FULL_DATABASE角色的用戶可以使用此模式。使用FULL參數指定此模式。
  • Tablespace:允許有權限的用戶將一組表空間從Oracle一個用戶移到另一用戶。使用TRANSPORT_TABLESPACE參數指定此模式。
  • User:允許你導出和導入屬於你的所有對象(例如,表,索引,授權和存儲過程)。有權限的用戶在用戶模式可以導入一組指定用戶模式的所有對象。使用OWNER參數在導出時指定此模式,使用FROMUSER參數在導入時指定此模式。
  • Table:允許你導入和導致指定表和分區。有權限的用戶可以通過指定模式包含限定的表。未指定任何表的模式名稱,默認是導出者模式名稱。使用TABLES參數指定此模式。

 

7.導出參數

在WINDOWS平臺上,可以在DOS命令框下輸入exp help=y,查看exp命令的參數:

例如:

C:\Users\chiclewu>exp help=y

Export: Release 11.1.0.6.0 - Production on 星期一 11月 18 10:12:18 2013

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

 

通過輸入 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 交叉表的一致性 (N)   CONSTRAINTS  導出的約束條件 (Y)

OBJECT_CONSISTENT    只在對象導出期間設置爲只讀的事務處理 (N)
FEEDBACK             每 x 行顯示進度 (0)
FILESIZE             每個轉儲文件的最大大小
FLASHBACK_SCN        用於將會話快照設置回以前狀態的 SCN
FLASHBACK_TIME       用於獲取最接近指定時間的 SCN 的時間
QUERY                用於導出表的子集的 select 子句
RESUMABLE            遇到與空格相關的錯誤時掛起 (N)
RESUMABLE_NAME       用於標識可恢復語句的文本字符串
RESUMABLE_TIMEOUT    RESUMABLE 的等待時間
TTS_FULL_CHECK       對 TTS 執行完整或部分相關性檢查
TABLESPACES          要導出的表空間列表
TRANSPORT_TABLESPACE 導出可傳輸的表空間元數據 (N)
TEMPLATE             調用 iAS 模式導出的模板名

成功終止導出, 沒有出現警告。

 

8.導出例子

分別使用4種模式導出數據庫。

8.1導出整個數據庫

C:\Users\chiclewu>exp system/manager@REDHAT_VIRTUAL file='D:\oradata\backup\dba.dmp' full=y

8.2導出SYSTEM和USERS表空間

C:\Users\chiclewu>exp system/manager@REDHAT_VIRTUAL  file='D:\oradata\backup\dba.dmp' tablespaces=(SYSTEM,USERS)

8.3 導出SYSTEM和SCOTT用戶

C:\Users\chiclewu>exp system/manager@REDHAT_VIRTUAL  file='D:\oradata\backup\dba.dmp' owner=(SYSTEM,SCOTT)

8.4導出SCOTT用戶下EMP表和DEPT表

C:\Users\chiclewu>exp scott/tiger@REDHAT_VIRTUAL  file='D:\oradata\backup\scott.dmp' tables=(emp,dept)

 

9.導入參數

在WINDOWS平臺上,可以在DOS命令框下輸入imp help=y,查看imp命令的參數:

C:\Users\chiclewu>imp help=y

Import: Release 11.1.0.6.0 - Production on 星期一 11月 18 22:01:21 2013

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

 

通過輸入 IMP 命令和您的用戶名/口令, 導入
操作將提示您輸入參數:

     例如: IMP SCOTT/TIGER

或者, 可以通過輸入 IMP 命令和各種參數來控制導入
的運行方式。要指定參數, 您可以使用關鍵字:

     格式:  IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
     例如: 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)
STREAMS_CONFIGURATION  導入流的一般元數據 (Y)
STREAMS_INSTANTIATION  導入流實例化元數據 (N)

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

成功終止導入, 沒有出現警告。

 

10.導入例子

分別使用4種模式導出數據庫。

10.1導入整個數據庫

C:\Users\chiclewu>imp system/manager@REDHAT_VIRTUAL file='D:\oradata\backup\dba.dmp' full=y ignore=y

10.2導入SYSTEM和USERS表空間

C:\Users\chiclewu>imp system/manager@REDHAT_VIRTUAL  file='D:\oradata\backup\dba.dmp' tablespaces=(SYSTEM,USERS) ignore=y

10.3 導入SYSTEM和SCOTT用戶

C:\Users\chiclewu>imp system/manager@REDHAT_VIRTUAL  file='D:\oradata\backup\dba.dmp' fromuser=(SYSTEM,SCOTT) ignore=y

10.4導入SCOTT用戶下EMP表和DEPT表

C:\Users\chiclewu>imp scott/tiger@REDHAT_VIRTUAL  file='D:\oradata\backup\scott.dmp' tables=(emp,dept) ignore=y

 

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