exp/imp與expdp/impdp區(qū)別是什么,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)增城,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
在平常備庫和數(shù)據(jù)庫遷移的時(shí)候,當(dāng)遇到大的數(shù)據(jù)庫的時(shí)候在用exp的時(shí)候往往是需要好幾個(gè)小時(shí),耗費(fèi)大量時(shí)間。oracle10g以后可以用expdp來導(dǎo)出數(shù)據(jù)庫花費(fèi)的時(shí)間要遠(yuǎn)小于exp花費(fèi)的時(shí)間,而且文件也要小很多。
1.使用expdp要先在數(shù)據(jù)庫中創(chuàng)建directory,并給相應(yīng)的用戶read,write權(quán)限.
SQL>create dexp和empdp的區(qū)別irectory dmpdir as ‘/u01/dmdir’;
SQL>grant read,write on directory to test;
2.常用導(dǎo)出方法
$expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=test
$expdp scott/tiger DUMPFILE=tmp_dump.dmp DIRECTORY=dmpdir TABLES=(tmp_test:p1,tmp_test:p2) JOB_NAME=tmp_dump LOGFILE=tmp_dump.log
$expdp scott/tiger DUMPFILE=full.dmp DIRECTORY=dmpdir FULL=Y JOB_NAME=full
$expdp scott/timer DUMPFILE=tmp_200703.dmp DIRECTORY=dmpdir TABLES=tmp QUERY=\”where to_char\(create_time,\’yyyy-mm-dd\’\)\<\'2007-04\'\"
常用一些參數(shù)說明:
SCOTT/TIGER:用戶/密碼(*)
DUMPFILE:導(dǎo)出后的文件名(*)
INCLUDE=TABLE:”NOT LIKE ‘TAB%’”…)
EXCLUDE:導(dǎo)出時(shí)排除的數(shù)據(jù)類型(例:EXCLUDE=TABLE:EMP)
FULL:全庫導(dǎo)出時(shí)使用(同EXP的FULL,默認(rèn)為N)
SCHEMA:導(dǎo)出某一個(gè)SCHEMA下的所有數(shù)據(jù)
TABLES:按表導(dǎo)出(這里的方法和EXP一樣)
TABLESPACE:指定一個(gè)表空間導(dǎo)出.
QUERY:按表導(dǎo)出時(shí),使用條件語句限定導(dǎo)出范圍(同exp中的QUERY)
TRANSPORT_FULL_CHECK:
TRANSPORT_TABLESPACES:
FLASHBACK_SCN:
FLASHBACK_TIME:
PARALLEL:并行操作
PARFILE:
NETWORK_LINK:
當(dāng) Data Pump Export (DPE) 運(yùn)行時(shí),按 Control-C;它將阻止消息在屏幕上顯示,但不停止導(dǎo)出進(jìn)程本身。相反,它將顯示 DPE 提示符(如下所示)。進(jìn)程現(xiàn)在被認(rèn)為處于“交互式”模式:
Export>
這種方法允許在這個(gè) DPE 作業(yè)上輸入命令查詢及控制當(dāng)前作業(yè)。
3.您可以通過 PARALLEL 參數(shù)為導(dǎo)出使用一個(gè)以上的線程來顯著地加速作業(yè)。每個(gè)線程創(chuàng)建一個(gè)單獨(dú)的轉(zhuǎn)儲(chǔ)文件,因此參數(shù) dumpfile 應(yīng)當(dāng)擁有和并行度一樣多的項(xiàng)目。您可以指定通配符作為文件名,而不是顯式地輸入各個(gè)文件名,例如:
expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES_%U.dmp parallel=4 job_name=Cases_Export
注意:dumpfile 參數(shù)擁有一個(gè)通配符 %U,它指示文件將按需要?jiǎng)?chuàng)建,格式將為expCASES_nn.dmp,其中nn 從 01 開始,然后按需要向上增加。
在并行模式下,狀態(tài)屏幕將顯示四個(gè)工作進(jìn)程。(在默認(rèn)模式下,只有一個(gè)進(jìn)程是可見的)所有的工作進(jìn)程同步取出數(shù)據(jù),并在狀態(tài)屏幕上顯示它們的進(jìn)度。
分離訪問數(shù)據(jù)文件和轉(zhuǎn)儲(chǔ)目錄文件系統(tǒng)的輸入/輸出通道是很重要的。否則,與維護(hù) Data Pump 作業(yè)相關(guān)的開銷可能超過并行線程的效益,并因此而降低性能。并行方式只有在表的數(shù)量多于并行值并且表很大時(shí)才是有效的。
4.exp/imp與expdp/impdp區(qū)別:
(1) 把用戶usera的對(duì)象導(dǎo)到用戶userb,用法區(qū)別在于fromuser=usera touser=userb ,remap_schema=’usera’:'usera’ 。例如:imp system/passwd fromuser=usera touser=userb file=/oracle/exp.dmp log=/oracle/exp.log;
impdp system/passwd directory=expdp dumpfile=expdp.dmp remap_schema=’usera’:'userb’ logfile=/oracle/exp.log;
(2) 更換表空間,用exp/imp的時(shí)候,要想更改表所在的表空間,需要手工去處理一下,
如alter table xxx move tablespace_new之類的操作。
用impdp只要用remap_tablespace=’tabspace_old’:'tablespace_new’
(3) 當(dāng)指定一些表的時(shí)候,使用exp/imp 時(shí),tables的用法是 tables=(‘table1′,’table2′,’table3′)。
expdp/impdp的用法是tables=’table1′,’table2′,’table3′
(4) 是否要導(dǎo)出數(shù)據(jù)行
exp (ROWS=Y 導(dǎo)出數(shù)據(jù)行,ROWS=N 不導(dǎo)出數(shù)據(jù)行)
expdp content(ALL:對(duì)象+導(dǎo)出數(shù)據(jù)行,DATA_ONLY:只導(dǎo)出對(duì)象,METADATA_ONLY:只導(dǎo)出數(shù)據(jù)的記錄)
(5) expdp是[10g]的新特性而且只能在服務(wù)器執(zhí)行。而exp/imp是通用的。
(6) oracle11g中有個(gè)新特性,當(dāng)表無數(shù)據(jù)時(shí),不分配segment,以節(jié)省空間,所以exp導(dǎo)不出空表。解決的辦法是用expdp, 當(dāng)然也可以設(shè)置deferred_segment_creation 參數(shù) 或者 insert一行,再rollback,但是這樣很麻煩。
關(guān)于exp/imp與expdp/impdp區(qū)別是什么問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。