程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> ORACLE EXP/IMP的使用詳解

ORACLE EXP/IMP的使用詳解

編輯:Oracle數據庫基礎
 

導入/導出是ORACLE幸存的最古老的兩個命令行工具,其實我從來不認為Exp/Imp是一種好的備份方式,正確的說法是Exp/Imp只能是一個好的轉儲工具,特別是在小型數據庫的轉儲,表空間的遷移,表的抽取,檢測邏輯和物理沖突等中有不小的功勞。當然,我們也可以把它作為小型數據庫的物理備份後的一個邏輯輔助備份,也是不錯的建議。對於越來越大的數據庫,特別是TB級數據庫和越來越多數據倉庫的出現,EXP/IMP越來越力不從心了,這個時候,數據庫的備份都轉向了RMAN和第三方工具。下面說明一下EXP/IMP的使用。
  如何使exp的幫助以不同的字符集顯示:set nls_lang=simplified chinese_china.zhs16gbk,通過設置環境變量,可以讓exp的幫助以中文顯示,如果set nls_lang=American_america.字符集,那麼幫助就是英文的了

程序代碼 程序代碼
EXP的所有參數(括號中為參數的默認值):
USERID 用戶名/口令 如: USERID=duanl/duanl
FULL 導出整個數據庫 (N)
BUFFER 數據緩沖區的大小
OWNER 所有者用戶名列表,你希望導出哪個用戶的對象,就用owner=username
FILE 輸出文件 (EXPDAT.DMP)
TABLES 表名列表 ,指定導出的table名稱,如:TABLES=table1,table2
COMPRESS 導入一個extent (Y)
RECORDLENGTH IO 記錄的長度
GRANTS 導出權限 (Y)
INCTYPE 增量導出類型
INDEXES 導出索引 (Y)
RECORD 跟蹤增量導出 (Y)
ROWS 導出數據行 (Y)
PARFILE 參數文件名,如果你exp的參數很多,可以存成參數文件.
CONSTRAINTS 導出約束 (Y)
CONSISTENT 交叉表一致性
LOG 屏幕輸出的日志文件
STATISTICS 分析對象 (ESTIMATE)
DIRECT 直接路徑 (N)
TRIGGERS 導出觸發器 (Y)
FEEDBACK 顯示每 x 行 (0) 的進度
FILESIZE 各轉儲文件的最大尺寸
QUERY 選定導出表子集的子句
下列關鍵字僅用於可傳輸的表空間
TRANSPORT_TABLESPACE 導出可傳輸的表空間元數據 (N)
TABLESPACES 將傳輸的表空間列表


程序代碼 程序代碼
IMP的所有參數(括號中為參數的默認值):
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)
下列關鍵字僅用於可傳輸的表空間
TRANSPORT_TABLESPACE 導入可傳輸的表空間元數據 (N)
TABLESPACES 將要傳輸到數據庫的表空間
DATAFILES 將要傳輸到數據庫的數據文件
TTS_OWNERS 擁有可傳輸表空間集中數據的用戶

關於增量參數的說明:exp/imp的增量並不是真正意義上的增量,所以最好不要使用。


使用方法:
Exp parameter_name=value or Exp parameter_name=(value1,value2……)
只要輸入參數help=y就可以看到所有幫助.

EXP常用選項
1.FULL,這個用於導出整個數據庫,在ROWS=N一起使用時,可以導出整個數據庫的結構。例如:
exp userid=test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y
2. OWNER和TABLE,這兩個選項用於定義EXP的對象。OWNER定義導出指定用戶的對象;TABLE指定EXP的table名稱,例如:
exp userid=test/test file=./db_str.dmp log=./db_str.log owner=duanl
exp userid=test/test file=./db_str.dmp log=./db_str.log table=nc_data,fi_arap
3.BUFFER和FEEDBACK,在導出比較多的數據時,我會考慮設置這兩個參數。例如:
exp userid=test/test file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000 tables=WO4,OK_YT
4.FILE和LOG,這兩個參數分別指定備份的DMP名稱和LOG名稱,包括文件名和目錄,例子見上面。
5.COMPRESS參數不壓縮導出數據的內容。用來控制導出對象的storage語句如何產生。默認值為Y,使用默認值,對象的存儲語句的init extent等於當前導出對象的extent的總和。推薦使用COMPRESS=N。
6. FILESIZE該選項在8i中可用。如果導出的dmp文件過大時,最好使用FILESIZE參數,限制文件大小不要超過2G。如:
exp userid=duanl/duanl file=f1,f2,f3,f4,f5 filesize=2G owner=scott
這樣將創建f1.dmp, f2.dmp等一系列文件,每個大小都為2G,如果導出的總量小於10G
EXP不必創建f5.bmp.

IMP常用選項
1、FROMUSER和TOUSER,使用它們實現將數據從一個SCHEMA中導入到另外一個SCHEMA中。例如:假設我們做exp時導出的為test的對象,現在我們想把對象導入用戶:
imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1
2、IGNORE、GRANTS和INDEXES,其中IGNORE參數將忽略表的存在,繼續導入,這個對於需要調整表的存儲參數時很有用,我們可以先根據實際情況用合理的存儲參數建好表,然後直接導入數據。而GRANTS和INDEXES則表示是否導入授權和索引,如果想使用新的存儲參數重建索引,或者為了加快到入速度,我們可以考慮將INDEXES設為N,而GRANTS一般都是Y。例如:imp userid=test1/test1 file=expdat.dmp fromuser=test1 touser=test1 indexes=N  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved