oracle資料匯出/匯入(exp/imp)總結

來源:互聯網
上載者:User

1 exp/imp作用

   用於在資料庫之間傳遞資料。exp從資料庫中匯出資料到dump檔案中,imp從dump檔案中把資料匯入到資料庫.一般我們用來作資料的備份和恢複.

   exp匯出的是二進位格式的檔案,不可以手工編輯,否則會損壞資料。該檔案在ORACLE支援的任何平台通用。dump檔案在imp時向上相容.

2. 如何運行

    一般exp/imp命令在$ORACLE_HOME/bin目錄下

     我們可以在sqlplus或命令列下執行,有互動式和非互動式.

     注意:要有足夠的許可權;確保資料庫可以串連(可以用tnspng測試)

3. exp

     匯出工具.將資料庫中資料備份壓縮成一個二進位系統檔案,可以在不同OS間遷移.

     三種模式:

      A:使用者模式:匯出使用者所有對象以及對象中的資料

      B:表模式:匯出使用者所有表或指定表

      C:整個資料庫:匯出資料庫中所有資料對象

      exp裡加匯出的查詢條件query=   可以選定匯出表的子集

參數:
關鍵字   說明(預設)  
----------------------------------------------
USERID   使用者名稱/口令
FULL   匯出整個檔案 (N)
BUFFER   資料緩衝區的大小
OWNER   所有者使用者名稱列表
FILE   輸出檔案 (EXPDAT.DMP)
TABLES   表名列表
COMPRESS  匯入一個範圍 (Y)
RECORDLENGTH  IO 記錄的長度
GRANTS   匯出許可權 (Y)
INCTYPE   增量匯出類型
INDEXES   匯出索引 (Y)
RECORD   跟蹤增量匯出 (Y)
ROWS   匯出資料行 (Y)
PARFILE   參數檔案名稱
CONSTRAINTS  匯出限制 (Y)
CONSISTENT  交叉表一致性
LOG   螢幕輸出的記錄檔
STATISTICS  分析對象 (ESTIMATE)
DIRECT   直接路徑 (N)
TRIGGERS  匯出觸發器 (Y)
FEEDBACK  顯示每 x 行 (0) 的進度
FILESIZE  各轉儲檔案的最大尺寸
QUERY   選定匯出表子集的子句

4.imp

    匯入工具.將exp形成的二進位檔案(dump檔案)匯入到資料庫中.

    跟exp一樣,有三種模式.

    只有擁有imp_full_database和DBA許可權的使用者才能做整個資料庫的匯入.

    匯入資料時,ORACLE有一個特定的順序,可能隨資料庫版本不同而有所變化.一般是

1. Tablespaces 
2. Profiles
3. Users
4. Roles
5. System Privilege Grants
6. Role Grants indexes, constraints, audi ting)
7. Default Roles
8. Tablespace Quotas
9. Resource Costs
10. Rollback Segments
11. Database Links
12. Sequences
13. Snapshots 
14. Snapshot Logs 
 15. Job Queues
 16. Refresh Groups 
 17. Cluster Definitions
18. Tables (also grants,comments,
19. Referential Integrity
20. POSTTABLES actions
21. Synonyms
22. Views   
 23. Stored Procedures
24. Triggers, Defaults and Auditing

    參數:
關鍵字   說明(預設)  
----------------------------------------------
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)
ANALYZE   執行轉儲檔案中的 ANALYZE 語句 (Y)
FEEDBACK  顯示每 x 行 (0) 的進度
TOID_NOVALIDATE  跳過指定類型 id 的校正
FILESIZE  各轉儲檔案的最大尺寸
RECALCULATE_STATISTICS 重新計算統計值 (N)

5. 可能出現的問題

    A:imp和exp版本問題

       exp出現ora-00942錯誤:這是由於裝載的表或視圖不存在,多半是CATEXP.SQL還沒有運行,無法執行Export視圖,假如CATEXP.SQL已經運行,則可能是版本錯誤。

       exp出現exp--00003錯誤:no storage definition found for segment :一般也是執行$ORACLE_HOME/rdbms/admin/catexp.sql可以解決.低版本的exp匯出高版本的資料庫時也會出現這種錯誤.(將compress=y加上好像也可以解決)

       imp可以成功匯入低版本exp產生的檔案, 不能匯入高版本exp產生的檔案.

     B:imp和exp使用的字元集不同
      如果字元集不同, 匯入會失敗, 可以改變unix環境變數或者NT註冊表裡NLS_LANG相關資訊,匯入完成後再改回來.

     C:資料庫物件有主外鍵約束,不符合主外鍵約束時, 資料會匯入失敗.可以先匯入主表, 再匯入依存表,disable目標匯入對象的主外鍵約束, 匯入資料後, 再enable.

     D:資料庫物件已經存在
      如果用了參數ignore=y, 會把exp檔案內的資料內容匯入
      如果表有唯一關鍵字的約束條件, 不合條件將不被匯入
      如果表沒有唯一關鍵字的約束條件, 將引起記錄重複

      E:匯入到指定使用者或資料表空間時,確定目標使用者或資料表空間已存在,並有足夠的空間     

      F:匯入使用者自訂的一些類型時可能會失敗

      G:匯入trigger,sequence也可能會出現錯誤

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.