本篇介紹一下oracle expdp導(dǎo)出、impdp導(dǎo)入的使用方法 準(zhǔn)備工作 導(dǎo)出-expdp 導(dǎo)入-impdp 導(dǎo)出-expdp參數(shù)說(shuō)明 導(dǎo)入-impdp參數(shù)說(shuō)明 準(zhǔn)備工作 oracle中的expdp導(dǎo)出、impdp導(dǎo)入的使用之前,都得先完成以下三個(gè)步驟 第一步 以管理員身份,創(chuàng)建邏輯目錄 create direc
本篇介紹一下oracle expdp導(dǎo)出、impdp導(dǎo)入的使用方法
準(zhǔn)備工作
導(dǎo)出-expdp
導(dǎo)入-impdp
導(dǎo)出-expdp參數(shù)說(shuō)明
導(dǎo)入-impdp參數(shù)說(shuō)明
準(zhǔn)備工作
oracle中的expdp導(dǎo)出、impdp導(dǎo)入的使用之前,都得先完成以下三個(gè)步驟
第一步 以管理員身份,創(chuàng)建邏輯目錄
create?Directory?my_dbdata?as?'D:/my_dbdata';
第二步 查看邏輯目錄是否創(chuàng)建成功
此時(shí)應(yīng)該在再查看“D:/my_dbdata”這個(gè)磁盤(pán)物理路徑是否存在。因?yàn)閛racle創(chuàng)建時(shí)并不關(guān)心該磁盤(pán)目錄是否存在,如果不存在,則在后續(xù)的操作中會(huì)報(bào)錯(cuò)
第三步 賦予導(dǎo)出用戶的邏輯目錄操作權(quán)限
比如我要導(dǎo)出一個(gè)用戶名為“answer”的庫(kù),則需要用管理員來(lái)賦予“answer”用戶對(duì)于邏輯目錄的操作權(quán)限。
grant?read,write?on?directory?my_dbdata?to?answer;
操作系統(tǒng)為windows,則打開(kāi)cmd窗口,若為linux或其他unix系統(tǒng),則直接在命令行操作
特別注意:在expdp、impdp命令使用時(shí),不要習(xí)慣性的在命令末尾加上分號(hào)“;”,會(huì)導(dǎo)致不經(jīng)意間出現(xiàn)錯(cuò)誤。
???? ? ? ?曾經(jīng)我進(jìn)行導(dǎo)入操作是,最后加了個(gè)分號(hào),語(yǔ)句如下:
impdp?eppapp0805/eppapp0805?DIRECTORY=epp_data?DUMPFILE=eppapptest_88_20130805.dmp? ????remap_schema=eppapptest:eppapp0805;
????看見(jiàn)了沒(méi),最后那個(gè)參數(shù)是remap_schema=eppapptest:eppapp0805,表示該dmp包是從eppapptest用戶導(dǎo)出來(lái)的,要把這個(gè)dmp包導(dǎo)入到用戶eppapp0805去,結(jié)果,導(dǎo)入時(shí)oracle把“eppapp0805;”連分號(hào)一起當(dāng)成用戶名了,一看現(xiàn)有庫(kù)中不存在這個(gè)用戶,就創(chuàng)建新用戶,然后就創(chuàng)建了一個(gè)帶分號(hào)結(jié)尾的用戶。而這個(gè)用戶還不能登錄,因?yàn)橛刑厥庾址浅5挠魫?/span>
導(dǎo)出-expdp
1)按用戶導(dǎo)出
expdp?answer/answer@orcl?schemas=answer?dumpfile=answer.dmp?DIRECTORY=my_dbdata
2)按表名導(dǎo)出
expdp?answer/answer@orcl?tableS=a_answer,a_question? ????dumpfile=m_table.dmp?DIRECTORY=my_dbdata
3)按查詢條件導(dǎo)出
expdp?answer/answer@orcl?directory=my_dbdata?dumpfile=exp_by_query.dmp? ????tables=a_answer?query='WHERE?id?<p>4)按表空間導(dǎo)出</p><pre class="brush:sql;toolbar:false;">expdp?answer/answer?DIRECTORY=my_dbdata?DUMPFILE=tablespace.dmp?TABLESPACES=user
5)整個(gè)數(shù)據(jù)庫(kù)導(dǎo)出
expdp?answer/answer?DIRECTORY=my_dbdata?DUMPFILE=full.dmp?FULL=y
導(dǎo)入-impdp
1)導(dǎo)入到指定用戶下
impdp?answer/answer?DIRECTORY=my_dbdata?DUMPFILE=answer.dmp?SCHEMAS=answer
2)如果導(dǎo)出的用戶表空間跟導(dǎo)入的用戶表空間不一致,則按下面的方法導(dǎo)入
impdp?answer/answer?DIRECTORY=my_dbdata?DUMPFILE=answer.dmp? ????REMAP_SCHEMA=user1(導(dǎo)出時(shí)的所屬用戶名):user2(導(dǎo)入時(shí)的所屬用戶名)
3)只導(dǎo)入dmp文件中的某幾個(gè)表
impdp?answer/answer?DIRECTORY=my_dbdata?DUMPFILE=answer.dmp? ????TABLES=a_answer,a_question
4)導(dǎo)入表空間
impdp?answer/answer?DIRECTORY=my_dbdata?DUMPFILE=tablespace.dmp?TABLESPACES=user
5)導(dǎo)入整個(gè)數(shù)據(jù)庫(kù)
impdb?answer/answer?DIRECTORY=my_dbdata?DUMPFILE=full.dmp?FULL=y;
6)追加數(shù)據(jù)
impdp?answer/answer?DIRECTORY=my_dbdata?DUMPFILE=answer.dmp? ????SCHEMAS=answer?TABLE_EXISTS_ACTION=append
導(dǎo)出-expdp參數(shù)說(shuō)明
CONTENT |
用于指定要導(dǎo)出的內(nèi)容,默認(rèn)為ALL CONTENT=ALL:導(dǎo)出對(duì)象定義和所有數(shù)據(jù) ? ? ? ? DATA_ONLY:只導(dǎo)出數(shù)據(jù) ? ? ? ? METADATA_ONLY:只導(dǎo)出對(duì)象定義 |
DIRECTORY |
指定邏輯目錄的名稱,為之前創(chuàng)建的邏輯目錄。 |
EXCLUDE |
用于指定執(zhí)行操作時(shí)釋放要排除的對(duì)象類型或相關(guān)對(duì)象 EXCLUDE=object_type[:name_clause] [,….] object_type用于指定要排除的對(duì)象類型,name_clause用于指定要排除的具體對(duì)象 例:EXCLUDE=TABLE:EMP EXCLUDE和include不能同時(shí)使用 |
INCLUDE |
導(dǎo)出時(shí)包含指定的類型 例:INCLUDE=TABLE_DATA, ? ?INCLUDE=TABLE:”LIKE ‘TAB%'” ? ?INCLUDE=TABLE:”NOT LIKE ‘TAB%’”… EXCLUDE和INCLUDE不能同時(shí)使用 |
FILESIZE |
指定導(dǎo)出文件的大小,默認(rèn)為0,表示沒(méi)有大小限制(單位為bytes) |
TABLESPACE |
指定一個(gè)表空間導(dǎo)出 |
QUERY |
QUERY=[schema.] schema為指定方案名,table_name為指定表名,query_clause用于指定條件限制子句 例:expdp answer/answer directory=my_dbdata dumpfiel=answer.dmp tables=a_answer query=’WHERE deptno=20’ QUERY選項(xiàng)不能與CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等選項(xiàng)同時(shí)使用. |
PARALLEL |
并行操作:指定執(zhí)行導(dǎo)出操作的并行進(jìn)程個(gè)數(shù),默認(rèn)值為1 您可以通過(guò)PARALLEL 例:expdp answer/answer tables=a_answer directory=my_dbdata dumpfile=expCASES_%U.dmp parallel=4 注意:dumpfile 在并行模式下,狀態(tài)屏幕將顯示四個(gè)工作進(jìn)程。(在默認(rèn)模式下,只有一個(gè)進(jìn)程是可見(jiàn)的)所有的工作進(jìn)程同步取出數(shù)據(jù),并在狀態(tài)屏幕上顯示它們的進(jìn)度。 分離訪問(wèn)數(shù)據(jù)文件和轉(zhuǎn)儲(chǔ)目錄文件系統(tǒng)的輸入/輸出通道是很重要的。否則,與維護(hù)Data |
導(dǎo)入-impdp參數(shù)說(shuō)明
TABBLE_EXISTS_ACTION |
TABBLE_EXISTS_ACTION={SKIP SKIP:導(dǎo)入時(shí)會(huì)跳過(guò)已存在的對(duì)象 APPEND:導(dǎo)入時(shí)會(huì)追加數(shù)據(jù) TRUNCATE:導(dǎo)入時(shí)會(huì)截?cái)啾恚缓笞芳有碌臄?shù)據(jù) REPLACE:導(dǎo)入時(shí)會(huì)刪除已存在的表,重建表再追加數(shù)據(jù) |
REMAP_SCHEMA |
用于將源方案中的所有對(duì)象裝載到目標(biāo)方案中。 例:如果dmp文件導(dǎo)出時(shí)對(duì)應(yīng)用戶名為 user1, ? ? 導(dǎo)入時(shí)對(duì)應(yīng)用戶名為user2, 則因?yàn)橛脩裘灰恢露鵁o(wú)法導(dǎo)入,需要這樣用 REMAP_SCHEMA=user1:user2 |
REMAP_TABLESPACE |
將源表空間的所有對(duì)象導(dǎo)入到目標(biāo)表空間 REMAP_TABLESPACE=source_tablespace:target:tablespace |
REMAP_DATAFILE |
將源數(shù)據(jù)文件轉(zhuǎn)變?yōu)槟繕?biāo)數(shù)據(jù)文件,在不同平臺(tái)之間搬移表空間可能需要該選項(xiàng) REMAP_DATAFIEL=source_datafie:target_datafile |