數(shù)據(jù)泵

一:數(shù)據(jù)泵提供的主要特性:

1. 支持并行處理導(dǎo)入、導(dǎo)出任務(wù)

2. 支持暫停和重啟動(dòng)導(dǎo)入屋摇、導(dǎo)出任務(wù)

3. 支持通過Database Link的方式導(dǎo)出或?qū)脒h(yuǎn)端數(shù)據(jù)庫(kù)中的對(duì)象

4. 支持在導(dǎo)入時(shí)通過Remap_schema幽邓、Remap_tablespace牵舵,重定向用戶和表空間

5. EXPDP和IMPDP是服務(wù)端的工具程序畸颅,他們只能在ORACLE服務(wù)端使用,不能在客戶端使用兵睛。

6. IMP只適用于EXP導(dǎo)出的文件祖很,不適用于EXPDP導(dǎo)出文件假颇;IMPDP只適用于EXPDP導(dǎo)出的文件骨稿,而不適用于EXP導(dǎo)出文件。


二:Directory對(duì)象

Directory指向操作系統(tǒng)中的一個(gè)路徑形耗。每個(gè)Directory都包含 Read,Write兩個(gè)權(quán)限激涤,可以通過Grant命令授權(quán)給指定的用戶或角色判呕。擁有讀寫權(quán)限的用戶就可以讀寫該Directory對(duì)象指定的操作系統(tǒng)路 徑下的文件侠草。

? ? 5.1) 創(chuàng)建邏輯目錄,該命令不會(huì)在操作系統(tǒng)創(chuàng)建真正的目錄.

? ? ? ? create directory weisi_dump as '/opt/soft/dump';


? ? 5.2) 查看管理理員目錄(同時(shí)查看操作系統(tǒng)是否存在晤碘,因?yàn)镺racle并不關(guān)心該目錄是否存在园爷,如果不存在霞赫,則出錯(cuò))

? ? ? ? select * from dba_directories;


? ? 5.3) 給用戶賦予在指定目錄的操作權(quán)限.

grant read,write on directory weisi_dump to weisi;

三:導(dǎo)入端衰、導(dǎo)出

? ? expdp -help


3.1) 全庫(kù)模式

導(dǎo)入或者導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)旅东,對(duì)應(yīng)impdp/expdp命令中的full參數(shù),只有擁有dba或者 exp_full_database和imp_full_database權(quán)限的用戶才能執(zhí)行腾节。

expdp \"/ as sysdba\" directory=weisi_dump full=y dumpfile=weisi_1_f.dump,weisi_2_f.dump logfile=weisi_f.log parallel=2

impdp \"/ as sysdba\" directory=weisi_dump? dumpfile=weisi_1_f.dump,weisi_2_f.dump logfile=weisi_impdp.log parallel=2

監(jiān)控進(jìn)度:

select? t.sofar/t.totalwork, t.* from v$session_longops t where t.message like '%SYS_EXPORT%';

3.2) Schema模式

導(dǎo)出或?qū)隨chema下的自有對(duì)象庆冕,對(duì)應(yīng)impdp/expdp命令中的Schema參數(shù)劈榨,這是默認(rèn)的操作模式。 如果擁有dba或者 exp_full_database和

imp_full_database權(quán)限的用戶執(zhí)行的話拷姿,就可以導(dǎo)出或?qū)攵鄠€(gè)Schema中的對(duì)象响巢。

expdp \"/ as sysdba\" directory=weisi_dump schemas=weisi,WUZHENXING dumpfile=weisi_1_s.dump,weisi_2_s.dump logfile=weisi_f.log parallel=2

select? t.sofar/t.totalwork, t.* from v$session_longops t where t.message like '%SYS_EXPORT%';

SQL> drop user wuzhenxing cascade;

impdp \"/ as sysdba\" directory=weisi_dump? dumpfile=weisi_1_f.dump,weisi_2_f.dump schemas=wuzhenxing logfile=weisi_impdp.log parallel=2

3.3) 表模式

導(dǎo)出指定的表或者表分區(qū)以及依賴該表的對(duì)象(如該表的索引)

expdp \"/ as sysdba\" directory=weisi_dump tables=weisi.big_rman_t dumpfile=weisi_1_t.dump,weisi_2_t.dump logfile=weisi_f.log parallel=2

select? t.sofar/t.totalwork, t.* from v$session_longops t where t.message like '%SYS_EXPORT%';

impdp \"/ as sysdba\" directory=weisi_dump? dumpfile=weisi_1_f.dump,weisi_2_f.dump tables=wuzhenxing.BIG_RMAN_T logfile=weisi_impdp.log parallel=2

3.4) 表空間模式

導(dǎo)出指定的表空間中的內(nèi)容。對(duì)應(yīng)impdp/expdp中的Tablespaces參數(shù)靶衍,這種模式類似于表模式和 Schema模式的補(bǔ)充颅眶。

expdp \"/ as sysdba\" directory=weisi_dump tablespaces=users dumpfile=weisi_1_tbs.dump,weisi_2_tbs.dump logfile=weisi_f.log parallel=2

impdp \"/ as sysdba\" directory=weisi_dump tablespaces=users dumpfile=weisi_1_tbs.dump,weisi_2_tbs.dump logfile=weisi_f.log parallel=2

3.5) 傳輸表空間模式

對(duì)應(yīng)impdp/expdp中的Transport_tablespaces參數(shù)。這種模式與前面幾種模式最顯著的區(qū) 別是生成的Dump文件中并不包含具 體的邏輯數(shù)據(jù)铡原,

而只導(dǎo)出相關(guān)對(duì)象的元數(shù)據(jù)(即對(duì)象的定義燕刻,可以理解成表的創(chuàng)建語(yǔ)句)剖笙,邏輯數(shù)據(jù)仍然在表空間的數(shù)據(jù)文件中弥咪,

導(dǎo)出時(shí)需要將元數(shù)據(jù)和數(shù)據(jù)文件同 時(shí)復(fù)制到目標(biāo)端服務(wù)器聚至。這種導(dǎo)出方式效率很高,

時(shí)間開銷主要是花在復(fù)制數(shù)據(jù)文件產(chǎn)生的I/O上扳躬。

expdp執(zhí)行傳輸表空間模式的導(dǎo)出,用戶必須 擁有 exp_full_database角色或者DBA角色亏狰。

而通過傳輸表空間模式導(dǎo)入時(shí)骚揍,用戶必須擁有imp_full_database角色或者DBA角 色。

四:過濾數(shù)據(jù)

過濾數(shù)據(jù)主要依賴于Query和Sample兩個(gè)參數(shù)嘲叔。

4.1) Query

expdp \"/ as sysdba\" directory=weisi_dump tables=weisi.big_rman_t dumpfile=weisi_1_t.dump,weisi_2_t.dump logfile=weisi_f.log parallel=2? query="'where object_id < 2000'"

? 4.2) Sample

該參數(shù)用來(lái)指定導(dǎo)出數(shù)據(jù)的百分比锰什,可指定的值的范圍從0.000001到99.999999汁胆,指定該參數(shù)以后嫩码,EXPDP導(dǎo)出將自動(dòng)控制導(dǎo)出的記錄量铸题,如導(dǎo)出big_rman_t表中50%的記錄丢间。

expdp \"/ as sysdba\" directory=weisi_dump tables=weisi.big_rman_t dumpfile=weisi_1_t.dump,weisi_2_t.dump logfile=weisi_f.log parallel=2? Sample=50

過濾對(duì)象

過濾對(duì)象主要依賴于Include和Exclude兩個(gè)參數(shù)烘挫。這兩個(gè)參數(shù)作用正好相反饮六,在這兩個(gè)參數(shù)中喜滨,可以指定你知道的任何對(duì)象類型(如:Package虽风、Procedure辜膝、Table等等)或者對(duì)象名稱(支持通配符)

4.3) Exclude

指定不被包含的對(duì)象類型或者對(duì)象名稱茎毁。指定了該參數(shù)以后忱辅,指定的對(duì)象類型對(duì)應(yīng)的所有對(duì)象都不會(huì)被導(dǎo)入或?qū)С觥?如果被排除的對(duì)象有依賴的對(duì)象墙懂,那么其依賴的 對(duì)象也不會(huì)被導(dǎo)入或?qū)С霰炭狻H纾和ㄟ^Exclude參數(shù)指定不導(dǎo)出表對(duì)象的話嵌灰,不僅指定的表不會(huì)被導(dǎo)出沽瞭,連這些表關(guān)聯(lián)的Index秕脓、Check等都不會(huì)被導(dǎo)出。

expdp \"/ as sysdba\" directory=weisi_dump schemas=weisi,wuzhenxing dumpfile=weisi_1_s.dump,weisi_2_s.dump logfile=weisi_f.log? ? parallel=2 exclude=table:\"in\(\'BIG_RMAN_T\'\)\"

expdp \"/ as sysdba\" directory=weisi_dump schemas=weisi,wuzhenxing dumpfile=weisi_1_s.dump,weisi_2_s.dump logfile=weisi_f.log? ? parallel=2

4.4) Include

與Exclude正好相反儒搭。指定包含的對(duì)象類型或者對(duì)象名稱吠架。object_type子句用于指定對(duì)象的類型,如table,sequence,view,procedure,package等等搂鲫,導(dǎo)入的時(shí)候用的比較多傍药。

expdp <other_parameters> SCHEMAS=scott EXCLUDE=SEQUENCE,TABLE:"IN ('EMP','DEPT')"

impdp <other_parameters> SCHEMAS=scott INCLUDE=PACKAGE,FUNCTION,PROCEDURE,TABLE:"='EMP'"

impdp? \"/ as sysdba\"? directory=weisi_dump schemas=weisi dumpfile=weisi_1_s.dump,weisi_2_s.dump logfile=weisi_impdp.log? include=table:\" in \(\'BIG_RMAN_T\'\)\" parallel=2

常用的過濾SQL表達(dá)式

EXCLUDE=SEQUENCE,VIEW? ? ? ? ? ? ? ? ? ? ? ? ? --過濾所有的SEQUENCE,VIEW

EXCLUDE=TABLE:"IN ('EMP','DEPT')"? ? ? ? ? ? ? --過濾表對(duì)象EMP,DEPT

EXCLUDE=SEQUENCE,VIEW,TABLE:"IN ('EMP','DEPT')" --過濾所有的SEQUENCE,VIEW以及表對(duì)象EMP,DEPT

EXCLUDE=INDEX:"= 'INDX_NAME'"? ? ? ? ? ? ? ? ? --過濾指定的索引對(duì)象INDX_NAME

INCLUDE=PROCEDURE:"LIKE 'PROC_U%'"? ? ? ? ? ? ? --包含以PROC_U開頭的所有存儲(chǔ)過程(_ 符號(hào)代表任意單個(gè)字符)

INCLUDE=TABLE:"> 'E' "? ? ? ? ? ? ? ? ? ? ? ? ? --包含大于字符E的所有表對(duì)象

其它常用操作符 NOT IN, NOT LIKE, <, != 等等

五:高級(jí)過濾

在導(dǎo)出/導(dǎo)入的時(shí)候,我們常常有這樣的需求魂仍,只想導(dǎo)出/導(dǎo)入表結(jié)構(gòu)拐辽,或者只想導(dǎo)出/導(dǎo)入數(shù)據(jù)。

使用 Content參數(shù)擦酌。該參數(shù)有三個(gè)屬性

1) ALL : 導(dǎo)出/導(dǎo)入對(duì)象定義和數(shù)據(jù)俱诸,該參數(shù)的默認(rèn)值就是ALL

2) DATA_ONLY : 只導(dǎo)出/導(dǎo)入數(shù)據(jù)。

3) METADATA_ONLY : 只導(dǎo)出/導(dǎo)入對(duì)象定義赶诊。

過濾已經(jīng)存在的數(shù)據(jù)

導(dǎo)入的表對(duì)象在目標(biāo)庫(kù)中已經(jīng)存在锌唾,就有可能造成數(shù)據(jù)被重復(fù)導(dǎo)入滋捶。數(shù)據(jù)泵提供了一個(gè)新的參數(shù)

Table_exists_action,有以下幾個(gè)參數(shù)值:

1) SKIP : 跳過該表,繼續(xù)處理下一個(gè)對(duì)象可缚。該參數(shù)默認(rèn)就是SKIP描姚。值得注意的是怯邪,如果你同時(shí)指定了CONTENT參數(shù)為Data_only的話,SKIP參數(shù)無(wú) 效,默認(rèn)為APPEND梯皿。

2) APPEND : 向現(xiàn)有的表中添加數(shù)據(jù)百姓。

3) TRUNCATE : TRUNCATE當(dāng)前表,然后再添加記錄。使用這個(gè)參數(shù)需要謹(jǐn)慎椿猎,除非確認(rèn)當(dāng)前表中的數(shù)據(jù)確實(shí)無(wú)用症革。否則可能造成數(shù)據(jù)丟失。

4) REPLACE : 刪除并重建表對(duì)象,然后再向其中添加數(shù)據(jù)。值得注意的是,如果同時(shí)指定了CONTENT參數(shù)為Data_only的話,REPLACE參數(shù)無(wú)效碉怔。

重定義表的Schema或表空間

1) REMAP_SCHEMA : 重定義對(duì)象所屬Schema該參數(shù)的作用類似IMP中的Fromuser+Touser,支持多個(gè)Schema的轉(zhuǎn)換芹啥,語(yǔ)法如下:

REMAP_SCHEMA=Source_schema:Target_schema

select * from dba_objects t where t.owner='WEISI';

select * from dba_objects t where t.owner='WUZHENXING';

expdp \"/ as sysdba\" directory=weisi_dump schemas=weisi dumpfile=weisi_1_s.dump,weisi_2_s.dump logfile=weisi_f.log parallel=2

impdp \"/ as sysdba\" directory=weisi_dump dumpfile=weisi_1_s.dump,weisi_2_s.dump? logfile=weisi_impdp.log parallel=2 REMAP_SCHEMA=weisi:wuzhenxing

select * from dba_objects t where t.owner='WUZHENXING';

2) REMAP_TABLESPACE : 重定義對(duì)象所在的表空間。

該參數(shù)用來(lái)重映射導(dǎo)入對(duì)象存儲(chǔ)的表空間,支持同時(shí)對(duì)多個(gè)表空間進(jìn)行 轉(zhuǎn)換,相互間用逗號(hào)分割蚯涮。語(yǔ)法如下:

EMAP_TABLESPACE=Source_tablespace:Target_tablespace[,Source_tablespace:Target_tablespace]

六:優(yōu)化導(dǎo)入/導(dǎo)出效率

6.1) 對(duì)于導(dǎo)出的parallel

? 數(shù)據(jù)大小/parallel=filesize


6.2) 對(duì)于導(dǎo)入的parallel

? 不影響數(shù)據(jù)庫(kù)的前提下喘批, parallel越大越好

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末俱两,一起剝皮案震驚了整個(gè)濱河市尿孔,隨后出現(xiàn)的幾起案子尚骄,更是在濱河造成了極大的恐慌需五,老刑警劉巖飒炎,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闯狱,死亡現(xiàn)場(chǎng)離奇詭異耕驰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)饭弓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浸踩,“玉大人,你說(shuō)我怎么就攤上這事奏甫。” “怎么了解虱?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵攘须,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我殴泰,道長(zhǎng)于宙,這世上最難降的妖魔是什么浮驳? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮捞魁,結(jié)果婚禮上至会,老公的妹妹穿的比我還像新娘。我一直安慰自己谱俭,他們只是感情好奉件,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著昆著,像睡著了一般县貌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凑懂,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天煤痕,我揣著相機(jī)與錄音,去河邊找鬼征候。 笑死杭攻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疤坝。 我是一名探鬼主播兆解,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼跑揉!你這毒婦竟也來(lái)了锅睛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤历谍,失蹤者是張志新(化名)和其女友劉穎现拒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體望侈,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡印蔬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脱衙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侥猬。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖捐韩,靈堂內(nèi)的尸體忽然破棺而出退唠,到底是詐尸還是另有隱情,我是刑警寧澤荤胁,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布瞧预,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏垢油。R本人自食惡果不足惜盆驹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望秸苗。 院中可真熱鬧召娜,春花似錦、人聲如沸惊楼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)檀咙。三九已至雅倒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弧可,已是汗流浹背蔑匣。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留棕诵,地道東北人裁良。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像校套,于是被迫代替她去往敵國(guó)和親价脾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容