熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

exp和imp用法和介紹

2013-11-13 15:34:08  來源: Oracle 

  Export/Import的用處
  
  Oracle Export/Import工具用於在數據庫之間傳遞數據
  
  Export從數據庫中導出數據到dump文件中
  
  Import從dump文件中到入數據導數據庫中
  
  下面是一般使用他們的情況
  
  (兩個數據庫之間傳送數據
  
  同一個版本的oracle Server之間
  
  不同版本的oracle Server之間
  
  同種OS之間
  
  不同種OS之間
  
  (用於數據庫的備份和恢復
  
  (從一個SCHEMA傳送到另一個SCHEMA
  
  (從一個TABLESPACE傳送到另一個TABLESPACE
  
  DUMP文件
  
  EXPORT到出的是二進制格式的文件不可以手工編輯否則會損壞數據
  
  該文件在ORACLE支持的任何平台上都是一樣的格式可以在各平台上通用
  
  DUMP文件在IMPORT時采用向上兼容方式就是說ORALCE的DUMP文件可以導入
  
  到ORACLE但是版本相差很大的版本之間可能有問題
  
  EXPORT/IMPORT過程
  
  EXPORT導出的DUMP文件包含兩種基本類型的數據
   DDL (Data Dictionary Language)
   Data
  
  DUMP文件包含所有重新創建Data Dictionary的DDL語句基本上是可以讀的格式
  
  但是應該注意的是千萬不要用文本編輯器編輯之oracle說不支持這樣做的
  
  下面列出的是DUMP文件中包括的ORACLE對象分為TABLE/USER/FULL方式有些對象
  
  只是在FULL方式下才有(比如public synonyms users roles rollback segments等)
  
  Table mode       User Mode        Full Database Mode
    
  
  Table definitions    Table definitions    Table definitions
  Table data       Table data       Table data
  Owners table grants  Owners grants     Grants
  Owners table indexes  Owners indexes     Indexes
  Table constraints    Table constraints    Table constraints
  Table triggers     Table triggers     All triggers
  Clusters        Clusters
  Database links     Database links
  Job queues       Job queues
  Refresh groups     Refresh groups
  Sequences        Sequences
  Snapshots        Snapshots
  Snapshot logs      Snapshot logs
  Stored procedures    Stored procedures
  Private synonyms    All synonyms
  Views          Views
  Profiles
  Replication catalog
  Resource cost
  Roles
  Rollback segments
  System audit options
  System privileges
  Tablespace definitions
  
  Tablespace quotas
  User definitions
  
  IMPORT時的對象倒入順序
  
  在倒入數據時ORACLE有一個特定的順序可能隨數據庫版本不同而有所變化
  
  但是
  
  現在是這樣的
  
   Tablespaces             Snapshot Logs
   Profiles               Job Queues
   Users                Refresh Groups
   Roles                Cluster Definitions
   System Privilege Grants       Tables (also grantscommen
  ts
   Role Grants               indexes constraints audi
  ting)
   Default Roles            Referential Integrity
  
   Tablespace Quotas           POSTTABLES actions
  
   Resource Costs            Synonyms
   Rollback Segments     Views
   Database Links            Stored Procedures
   Sequences              Triggers Defaults and Aud
  iting
   Snapshots
  
  按這個順序主要是解決對象之間依賴關系可能產生的問題TRIGGER最後導入所以在INSERT數據到數據庫時不會激發TRIGGER在導入後可能會有一些狀態是INVALID的PROCEDURE主要是IMPORT時會影響一些數據庫對象而IMPORT並不重新編譯PROCEDURE從而造成這種情況可以重新編譯之就能解決這個問題
  
  兼容性問題
  
  IMPORT工具可以處理EXPORT 之後的版本導出的DUMP文件所以你用ORACLE的IMPORT處理ORACLE的DUMP文件依次類推但是ORACLE如果版本相差很大有可能不能處理具體的問題可以參照相應的文檔比如有關參數設置等(COMPATIBLE參數)
  
  EXPORT需要的VIEW
  
  EXPORT需要的VIEW是由CATEXPSQL創建這些內部VIEW用於EXPORT組織DUMP文件中數據格式
  
  大部分VIEW用於收集創建DDL語句的其他的主要供ORACLE開發人員用
  
  這些VIEW在不同ORACLE版本之間有可能不同每個版本可能都有新的特性加入
  
  所以在新的版本裡面執行舊的dump文件會有錯誤一般可以執行CATEXPSQL解決這些問題解決向後兼容問題的一般步驟如下
  
  導出數據庫的版本比目標數據庫老的情況
  
   在需要導入的目標數據庫中執行舊的CATEXPSQL
  
   使用舊的EXPORT導出DUMP文件
  
   使用舊的IMPORT導入到數據庫中
  
   在數據庫中執行新的CATEXPSQL以恢復該版本的EXPORT VIEW
  
  導出數據庫的版本比目標數據庫新的情況
  
   在需要導入的目標數據庫中執行新的CATEXPSQL
  
   使用新的EXPORT導出DUMP文件
  
   使用新的IMPORT導入到數據庫中
  
   在數據庫中執行舊的CATEXPSQL以恢復該版本的EXPORT VIEW
  
  碎片整理
  
  EXPORT/IMPORT一個很重要的應用方面就是整理碎片因為如果時初次IMPPORT
  
  就會重新CREATE TABLE 再導入數據所以整張表都是連續存放的另外缺省情況
  
  下EXPORT會在生成DUMP文件是壓縮(COMPRESS)TABLE但是這種壓縮在很多情
  
  況下被誤解事實上COMPRESS是改變STORAGE參數INITIAL的值比如
  
  CREATE TABLE STORAGE( INITIAL K NEXT K)
  
  現在數據已經擴展到個EXTENT如果采用COMPRESS=Y來EXPORT數據則產生的語句時 STORAGE( INITIAL K NEXT K)
  
  我們可以看到NEXT值並沒有改變而INITIAL是所有EXTENT的總和所以會出現如下情況表A有M的EXTENT執行DELETE FROM A然後再用COMPRESS=Y 導出數據產生的CREATE TABLE語句將有M的INITIAL EXTENT即使這是TABLE中已經沒有數據!!這是的DUMP文件即使很小但是在IMPORT時就會產生一個巨大的TABLE
  
  另外也可能會超過DATAFILE的大小比如M的數據文件其中表A有M的EXTENT如果采用COMPRESS=Y的方式導出數據將會有INITIAL=M那麼在重新導入時不能分配一個M的EXTENT因為單個EXTENT不能跨多個文件
  
  在USER和TABLESPACE之間傳送數據
  
  一般情況下EXPORT的數據要恢復到它原來的地方去如果SCOTT用戶的表以TABLE
  
  或USER方式EXPORT數據在IMPORT時如果SCOTT用戶不存在則會報錯!
  
  以FULL方式導出的數據帶有CREATE USER的信息所以會自己創建USER來存放數據
  
  當然可以在IMPORT時使用FROMUSER和TOUSER參數來確定要導入的USER但是要保證TOUSER一定已經存在啦
  
  EXPORT/IMPORT對SQUENCE的影響在兩種情況下EXPORT/IMPORT會對SEQUENCE
  
  ()如果在EXPORT時用戶正在取SEQUENCE的值可能造成SEQUENCE的不一致
  
  ()另外如果SEQUENCE使用CACHE在EXPORT時那些在CACHE中的值就會被忽略的只是從數據字典裡面取當前值EXPORT
  
  如果在進行FULL方式的EXPORT/IMPORT時恰好在用sequence更新表中某列數據而且不是上面兩種情況則導出的是更新前的數據
  
  如果采用常規路徑方式每一行數據都是用INSERT語句一致性檢查和INSERT TRIGGER如果采用DIRECT方式某些約束和trigger可能不觸發如果在trigger中使用sequencenextval將會對sequence有影響
  
  參數解
  
  E:\>exp help=y
  
  通過輸入 EXP 命令和用戶名/口令您可以
  
  在用戶 / 口令之後的命令:
  
  實例: EXP SCOTT/TIGER
  
  或者您也可以通過輸入跟有各種參數的 EXP 命令來控制導出的運行方式
  
  要指定參數您可以使用關鍵字:
  
  格式: EXP KEYWORD=value 或 KEYWORD=(valuevaluevalueN)
  
  實例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMPDEPTMGR)
  
  或 TABLES=(T: PT: P)如果 T 是分區表
  
  USERID 必須是命令行中的第一個參數
  
  關鍵字 說明(默認)
  
  USERID 用戶名/口令
  FULL 導出整個文件 (N)
  BUFFER 數據緩沖區的大小
  OWNER 所有者用戶名列表
  FILE 輸出文件 (EXPDATDMP)
  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 行 () 的進度
  FILESIZE 各轉儲文件的最大尺寸
  QUERY 選定導出表子集的子句
  
  下列關鍵字僅用於可傳輸的表空間
  
  TRANSPORT_TABLESPACE 導出可傳輸的表空間元數據 (N)
  
  TABLESPACES 將傳輸的表空間列表
  
  E:\>imp help=y
  
  可以通過輸入 IMP 命令和您的用戶名/口令
  
  跟有您的用戶名 / 口令的命令:
  
  實例: IMP SCOTT/TIGER
  
  或者 可以通過輸入 IMP 命令和各種自變量來控制導入按照不同參數
  
  要指定參數您可以使用關鍵字:
  
  格式: IMP KEYWORD=value 或 KEYWORD=(valuevaluevlaueN)
  
  實例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMPDEPT) FULL=N
  
  或 TABLES=(T: PT: P)如果 T 是分區表
  
  USERID 必須是命令行中的第一個參數
  
  關鍵字 說明(默認)
  
  USERID 用戶名/口令
  FULL 導入整個文件 (N)
  BUFFER 數據緩沖區大小
  FROMUSER 所有人用戶名列表
  FILE 輸入文件 (EXPDATDMP)
  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 行 () 的進度
  TOID_NOVALIDATE 跳過指定類型 id 的校驗
  FILESIZE 各轉儲文件的最大尺寸
  RECALCULATE_STATISTICS 重新計算統計值 (N)
  
  下列關鍵字僅用於可傳輸的表空間
  
  TRANSPORT_TABLESPACE 導入可傳輸的表空間元數據 (N)
  
  TABLESPACES 將要傳輸到數據庫的表空間
  
  DATAFILES 將要傳輸到數據庫的數據文件
  
  TTS_OWNERS 擁有可傳輸表空間集中數據的用戶
From:http://tw.wingwit.com/Article/program/Oracle/201311/16939.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.