數(shù)據(jù)泵EXPDP導(dǎo)出工具和IMPDP導(dǎo)入工具的使用
在欽北等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需求定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,欽北網(wǎng)站建設(shè)費(fèi)用合理。一、EXPDP和IMPDP使用說明
Oracle Database 10g引入了最新的數(shù)據(jù)泵(Data Dump)技術(shù),數(shù)據(jù)泵導(dǎo)出導(dǎo)入(EXPDP和IMPDP)的作用
1)實(shí)現(xiàn)邏輯備份和邏輯恢復(fù)。
2)在數(shù)據(jù)庫用戶之間移動對象。
3)在數(shù)據(jù)庫之間移動對象。
4)實(shí)現(xiàn)表空間搬移。
二、數(shù)據(jù)泵導(dǎo)出導(dǎo)入與傳統(tǒng)導(dǎo)出導(dǎo)入的區(qū)別
在10g之前,傳統(tǒng)的導(dǎo)出和導(dǎo)入分別使用EXP工具和IMP工具,從10g開始,不僅保留了原有的EXP和IMP工具,還提供了數(shù)據(jù)泵導(dǎo)出導(dǎo)入工具EXPDP和IMPDP。使用EXPDP和IMPDP時應(yīng)該注意的事項:
1)EXP和IMP是客戶端工具程序,它們既可以在可以客戶端使用,也可以在服務(wù)端使用。
2)EXPDP和IMPDP是服務(wù)端的工具程序,他們只能在ORACLE服務(wù)端使用,不能在客戶端使用。
3)IMP只適用于EXP導(dǎo)出文件,不適用于EXPDP導(dǎo)出文件;IMPDP只適用于EXPDP導(dǎo)出文件,而不適用于EXP導(dǎo)出文件。
4)數(shù)據(jù)泵導(dǎo)出包括按表導(dǎo)出,按用戶導(dǎo)出,按表空間導(dǎo)出,按數(shù)據(jù)庫導(dǎo)出4種方式。
三、EXPDP/IMPDP參數(shù)說明
可通過expdp/impdp help=y查看:
$ expdp help=y $ impdp help=y四、EXPDP實(shí)戰(zhàn)案例
使用EXPDP工具時,其轉(zhuǎn)儲文件只能被存放在DIRECTORY對象對應(yīng)的OS目錄中,而不能直接指定轉(zhuǎn)儲文件所在的OS目錄.因此,使用EXPDP工具時,必須首先建立DIRECTORY對象.并且需要為數(shù)據(jù)庫用戶授予使用DIRECTORY對象權(quán)限。
操作步驟如下:
a)命令行打開sqlplus
sqlplus /nolog conn / as sysdbab)創(chuàng)建邏輯目錄,該命令不會在操作系統(tǒng)創(chuàng)建真正的目錄(最好手工先建好),最好以administrator等管理員創(chuàng)建。
SQL>create directory dir as 'd:\dump'; --dir名稱可以隨便命名 需要手工創(chuàng)建d:\dumpc)查看管理理員目錄(同時查看操作系統(tǒng)中是否存在,因為Oracle并不關(guān)心該目錄是否存在,如果不存在,則出錯)
SQL>select * from dba_directories;d)給scott用戶賦予在指定目錄的操作權(quán)限,最好以sys,system等管理員賦予。
SQL>grant read,write on directory dir to scott;e)在unix下要注意directory目錄的讀寫權(quán)限問題。
更改directory目錄文件夾的權(quán)限:chown -R oracle:dba /dump_dir。
1)按表導(dǎo)出表
$ expdp scott/tiger directory=dump_dir DUMPFILE=dept.dmp TABLES=dept;多表導(dǎo)出用逗號分隔:
$ expdp scott/tiger tables=emp,dept dumpfile=expdp.dmp directory=dump_dir;2)按用戶導(dǎo)出
$ expdp scott/tiger directory=dump_dir dumpfile=schema.dmp logfile=schema.log schemas=system;3)按表空間導(dǎo)出
$ expdp scott/tiger directory=dump_dir dumpfile=tb.dmp logfile=tb.log tablespaces=users4)全庫導(dǎo)出
$ expdp system/manager directory=dump_dir dumpfile=full.dmp full=Y; $ expdp scott/tiger directory=dump_dir dumpfile=full.dmp full=Y;注:提示scott用戶沒有相應(yīng)的權(quán)限,給scott相應(yīng)的權(quán)限或使用system來做全庫導(dǎo)出 。
SQL> grant exp_full_database to scott; Grant succeeded.5)并行進(jìn)程parallel導(dǎo)出
$ expdp scott/tiger@orcl directory=dump_dir dumpfile=scott3.dmp parallel=40 job_name=scott3;6)按查詢條件導(dǎo)
$ expdp scott/tiger directory=dump_dir dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';六、IMPDP 實(shí)戰(zhàn)案例
1)按表導(dǎo)入
刪除用戶scott的emp表,在full.dmp中導(dǎo)入emp到用戶scott
$ impdp backup/backup1 directory=dump_dir dumpfile=full.dmp tables=scott.emp remap_schema=scott:scott將scott.test表導(dǎo)入的SYSTEM用戶下
$ impdp backup/backup1 directory=dump_dir dumpfile=full.dmp tables=scott.test remap_schema=scott:system注意,如果要將表導(dǎo)入到其他方案中,必須指定REMAP SCHEMA選項
2)導(dǎo)到指定用戶下
按用戶導(dǎo)入
impdp scott/tiger@orcl DIRECTORY=dump_dir DUMPFILE=expdp.dmp SCHEMAS=scott logfile=impdp.log;導(dǎo)入時將scott用戶所屬對象轉(zhuǎn)換為system用戶
$ impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott REMAP_SCHEMA=scott:system;3)按表空間導(dǎo)入
$ impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user014)全庫導(dǎo)入
$ impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y5)expdp/impdp 不同用戶,不同表空間的使用
假設(shè)a用戶的默認(rèn)表空間是a,導(dǎo)出用戶a所有數(shù)據(jù):
SQL> conn / as sysdba SQL> create directory dir as '/home/oracle/'; SQL> grant read,write on directory dir to system;$ expdp system/oracle directory=dir dumpfile=data.dmp schemas=a logfile=data.logimpdp導(dǎo)入a用戶所有數(shù)據(jù)到b,并且轉(zhuǎn)換表空間a為b:
SQL> conn sys / as sysdba SQL> create directory dir as '/home/oracle/'; SQL> grant read,write on directory dir to system;$ impdp system/oracle directory=dir dumpfile=data.dmp remap_tablespace=a:b remap_schema=a:b logfile=data.log解釋:
remap_schema=a:b 將數(shù)據(jù)的schema從a轉(zhuǎn)換為b
remap_tablespace=a:b 將數(shù)據(jù)的tablespace從a轉(zhuǎn)換為b
注意:
如果oracle是10g,要加參數(shù)EXCLUDE=TABLE_STATISTICS選項將table_statistics對象過濾。否則會出現(xiàn)數(shù)據(jù)泵導(dǎo)入中table_statistics長時間等待。
總結(jié):
執(zhí)行impdp時無需創(chuàng)建b用戶,在導(dǎo)入時會自動創(chuàng)建并改名用戶a為b(擁有a的所有權(quán)限等),自動設(shè)置默認(rèn)表空間為轉(zhuǎn)換后的表空間b。如果有多個表空間需要轉(zhuǎn)換,則使用多個remap_tablespace=源表空間:目標(biāo)表空間。此種方法只限于支持oracle10g以上版本。
6)在全庫備份文件中導(dǎo)入一張表到數(shù)據(jù)庫
$ impdp backup/backup1 directory=PUMP_DIR dumpfile=expdp.dmp include=table:\"=\'T1\'\" logfile=impdp.log table_exists_action=replace;7)在全庫備份文件中導(dǎo)入一張表并轉(zhuǎn)換表空間和owner
$impdp backup/backup1 directory=dump_dir dumpfile=expdp.dmp tables=t1 REMAP_TABLESPACE=DATA:USERS remap_schema=scott:system table_exists_action=replace;8)通過dblink遠(yuǎn)程導(dǎo)入
$ impdp system/admin directory=mydir network_link=dblink16_zk schemas=lgb_zk remap_schema=lgb_zk:lgb_zk logfile=lgbzk1018.log PARALLEL=29)通過dblink指定參數(shù)文件遠(yuǎn)程導(dǎo)入
參數(shù)說明
NETWORK_LINK=dblink
schemas=源用戶
remap_schema=源用戶:目標(biāo)用戶
PARALLEL=2
EXCLUDE=TABLE:"IN('A','B','C','D')" 排除的表
通過參數(shù)文件遠(yuǎn)程導(dǎo)入
vim mypar.par network_link=dblink16 schemas=zs2new remap_schema=zs2new:zs2new EXCLUDE=TABLE:"IN('A','B','C','D')" PARALLEL=2$ impdp system/admin directory=mydir parfile=h:\dump\mypar.par;另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。