oracle中exp/imp讲解
Exp/Imp是oracle備份數據的兩個命令行工具
1.本地數據庫導入導出
1.導出
(運行---cmd中操作)
exp?用戶名/密碼@數據庫實例名file=本地存放路徑
eg: exp jnjp/jnjp@ORCL file=C:/jnjp.dmp
?
2.導入
imp?用戶名/密碼@數據庫實例名file=本地數據庫文件存放路徑full=y ??ignore=y
eg: imp jnjp/jnjp@orcl ?file=E:\jnjp.dmp ?full=y??ignore=y
?
?
2.遠程數據庫導入導出
?1.導出 ?
?exp?用戶名/密碼@ip地址/數據庫實例名file=本地存放路徑
?eg: exp jnjp/jnjp@10.15.135.18/orcl file=C:/jnjp.dmp
?2.導入
imp?用戶名/密碼@ip地址/數據庫實例名file=本地數據庫文件存放路徑full=y ??
?
?
?
3.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?將傳輸的表空間列表
?
?
?
4.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?擁有可傳輸表空間集中數據的用戶
?
?
5.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
?
注:在oracle10g中,userid這個是可以不用寫的直接寫 用戶名/密碼 就可以了像這樣:
exp 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.FILE和LOG
這兩個參數分別指定備份的DMP名稱和LOG名稱,包括文件名和目錄,例子見上面。
?
4.COMPRESS
COMPRESS?參數不壓縮導出數據的內容。用來控制導出對象的storage語句如何產生。默認值為Y,使用默認值,對象的存儲語句的init extent等于當前導出對象的extent的總和。推薦使用COMPRESS=N。
?
?
6.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
7.導入導出實例
??
?下面介紹的是導入導出的實例,向導入導出看實例基本上就可以完成,因為導入導出很簡單。
?1.數據導出:
??1.1將數據庫TEST完全導出,用戶名system密碼manager導出到D:\daochu.dmp中
????exp system/manager@TEST file=d:\daochu.dmp full=y
??1.2?將數據庫中system用戶與sys用戶的表導出
????exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
??1.3?將數據庫中的表table1、table2導出
????exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
??1.?4?將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
????exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like ?'00%'\"
???
?
2.數據的導入:
??2.1?將D:\daochu.dmp中的數據導入TEST數據庫中。
????imp system/manager@TEST ?file=d:\daochu.dmp
????上面可能有點問題,因為有的表已經存在,然后它就報錯,對該表就不進行導入。
????在后面加上?ignore=y?就可以了。
?2.?2?將d:\daochu.dmp中的表table1導入
??imp system/manager@TEST ?file=d:\daochu.dmp ?tables=(table1)
??
??基本上上面的導入導出夠用了。不少情況我是將表徹底刪除,然后導入。
?
3.導出、導入通配符的使用:
?
想導出格式為TABLE_1,TABLE_2,TABLE_3這樣的表,這樣的表在庫中共有300張,難道要一張張的寫語句?太費神了吧,不用擔心,oracle提供通配符可以使用來滿足這樣的需求:
?exp system/test@192.168.1.198/orcl file=d:\exp_test.dmptables=TABLE_% ?log=exp_test.log
?
?參考資料:http://sucre.iteye.com/blog/424760
總結
以上是生活随笔為你收集整理的oracle中exp/imp讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝图中实现人物移动1
- 下一篇: 405 not allowed什么意思_