新聞中心
在數(shù)據(jù)庫(kù)管理中,經(jīng)常會(huì)存在需要將一個(gè)數(shù)據(jù)庫(kù)中的表數(shù)據(jù)導(dǎo)入到另一個(gè)數(shù)據(jù)庫(kù)中的情況,這個(gè)時(shí)候impdp就是一個(gè)非常有用的工具。impdp是Oracle數(shù)據(jù)庫(kù)中提供的一種數(shù)據(jù)導(dǎo)入工具,可以快速而穩(wěn)定地將源數(shù)據(jù)庫(kù)的數(shù)據(jù)導(dǎo)入到目標(biāo)數(shù)據(jù)庫(kù)中。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、灌云網(wǎng)站維護(hù)、網(wǎng)站推廣。
impdp工具的使用步驟如下:
1. 連接到目標(biāo)數(shù)據(jù)庫(kù)
在使用impdp之前,需要先連接到目標(biāo)數(shù)據(jù)庫(kù)??梢酝ㄟ^(guò)SQL Developer等工具連接到目標(biāo)數(shù)據(jù)庫(kù),也可以直接在命令行中使用sqlplus方式。
2. 創(chuàng)建目標(biāo)表
在目標(biāo)數(shù)據(jù)庫(kù)中創(chuàng)建與源數(shù)據(jù)庫(kù)中表結(jié)構(gòu)完全一致的表,包括表名、列名、列類型等信息??梢允褂肅REATE TABLE語(yǔ)句實(shí)現(xiàn)。
3. 執(zhí)行impdp命令
接下來(lái)就是執(zhí)行impdp命令了,以下是一個(gè)示例:
impdp system/oracle@target_db directory=data_dir dumpfile=source_db.dmp logfile=import.log tables=source_table
其中,impdp可以指定一些參數(shù)來(lái)控制導(dǎo)入操作的行為。這里簡(jiǎn)單說(shuō)明一下其中幾個(gè)參數(shù):
– system/oracle@target_db:表示連接到目標(biāo)數(shù)據(jù)庫(kù)的用戶名和密碼;
– directory=data_dir:指定需要導(dǎo)入數(shù)據(jù)的目錄,可以是操作系統(tǒng)上的目錄或Oracle數(shù)據(jù)庫(kù)中的目錄;
– dumpfile=source_db.dmp:指定需要導(dǎo)入數(shù)據(jù)的文件名,可以是本地文件或位于遠(yuǎn)程服務(wù)器上的文件;
– logfile=import.log:指定導(dǎo)入過(guò)程中產(chǎn)生的日志輸出到哪個(gè)文件,可以是本地文件或位于遠(yuǎn)程服務(wù)器上的文件;
– tables=source_table:指定需要導(dǎo)入的表名,可以使用通配符指定多個(gè)表。
4. 查看導(dǎo)入結(jié)果
導(dǎo)入過(guò)程中,impdp會(huì)將每個(gè)表的導(dǎo)入情況記錄在日志文件中??梢圆榭慈罩疚募?lái)了解導(dǎo)入過(guò)程的進(jìn)展和狀態(tài)。如果導(dǎo)入成功,就可以在目標(biāo)數(shù)據(jù)庫(kù)中查詢到已經(jīng)導(dǎo)入的數(shù)據(jù)。
impdp工具是Oracle數(shù)據(jù)庫(kù)中用來(lái)導(dǎo)入數(shù)據(jù)的一個(gè)非常方便、強(qiáng)大的工具。無(wú)論是在數(shù)據(jù)遷移、備份恢復(fù)、數(shù)據(jù)同步等方面,都有著非常廣泛的應(yīng)用。熟練掌握impdp的使用方法,對(duì)于Oracle數(shù)據(jù)庫(kù)管理員來(lái)說(shuō)是非常重要的技能之一。
相關(guān)問(wèn)題拓展閱讀:
- impdp導(dǎo)入另外一個(gè)表空間提示輸入用戶名密碼
- 如何在oracle中導(dǎo)出,導(dǎo)入數(shù)據(jù)
- Oracle數(shù)據(jù)導(dǎo)入導(dǎo)出imp/exp命令 g以上expdp/impdp命令 詳細(xì)的 詳細(xì)的 謝謝
impdp導(dǎo)入另外一個(gè)表空間提示輸入用戶名密碼
這兩個(gè)語(yǔ)句不像在同一個(gè)服務(wù)器上?。?/p>
你用戶一樣、庫(kù)名一樣,怎么會(huì)找不到目錄對(duì)象?
導(dǎo)出時(shí)若成功找到DUMP_SCOTT0目錄的話,同一機(jī)器同一庫(kù)同一用戶再導(dǎo)入不可能出現(xiàn)這種情況的。
如何在oracle中導(dǎo)出,導(dǎo)入數(shù)據(jù)
最近用到Oracle導(dǎo)出導(dǎo)入數(shù)據(jù),在網(wǎng)上看了別人的一些文章,總結(jié)如下:
Oracle導(dǎo)出導(dǎo)出有兩中方式:一、返橘枯利用exp imp導(dǎo)出導(dǎo)入;二、利用Oracel數(shù)據(jù)泵expdp impdp導(dǎo)出導(dǎo)入。
一、利用exp imp導(dǎo)出導(dǎo)入
exp imp 語(yǔ)法如下:
exp:
1) 將數(shù)據(jù)庫(kù)orcl完全導(dǎo)出
exp system/manager@orcl file=d:\orcl_bak.dmp full=y
2) 將數(shù)據(jù)庫(kù)中system用戶的表導(dǎo)出
exp system/manager@orcl file=d:\system_bak.dmp owner=system
3) 將數(shù)據(jù)庫(kù)中表table1,table2導(dǎo)出
exp system/manager@orcl file=d:\table_bak.dmp tables=(table1,table2)
4) 將數(shù)據(jù)庫(kù)中的表customer中的字段mobile以”139″開(kāi)頭的數(shù)據(jù)導(dǎo)出
伍顫 exp system/manager@orcl file=d:\mobile_bak.dmp tables=customer query=\”where mobile like ‘139%’ \”
imp:
1) 將備份文件bak.dmp導(dǎo)出數(shù)據(jù)庫(kù)
imp system/manager@orcl file=d:\bak.dmp
如果數(shù)據(jù)表中表已經(jīng)存在,會(huì)提示錯(cuò)誤,在后面加上ignore=y就可以了?! ?/p>
2) 將備份文件bak.dmp中的表table1導(dǎo)入
imp system/manager@orcl file=d:\bak.dmp tables=(table1)
exp imp導(dǎo)出導(dǎo)入數(shù)據(jù)方式的好處是只要你本地安裝了Oracle客戶端,你就可以將服務(wù)器中的數(shù)據(jù)導(dǎo)出到你本地計(jì)算機(jī)。同樣也可以將dmp文件從你本地導(dǎo)入到服務(wù)器數(shù)據(jù)庫(kù)中。但是這種方式在Oracle11g版本中會(huì)出現(xiàn)一個(gè)問(wèn)題:不能導(dǎo)出空表。Oracle11g新增了一個(gè)參數(shù)deferred_segment_creation,含義是段延遲創(chuàng)建,默認(rèn)是true。當(dāng)你新建了一張表,并且沒(méi)用向其中插入數(shù)據(jù)時(shí),這個(gè)表不會(huì)立即分配segment。
解決辦法:
1、設(shè)置deferred_segment_creation參數(shù)為false后,無(wú)論是空表,還是非空表,都分配segment。
在sqlplus中,執(zhí)行如下命令:
SQL>alter system set deferred_segment_creation=false;
查看:
SQL>show parameter deferred_segment_creation;
該值設(shè)置后,只對(duì)后面新增的表起作用,對(duì)之前建立的空表不起作用,并且注意要重啟數(shù)據(jù)庫(kù)讓參數(shù)生效。
2、使用 ALLOCATE EXTEN
使用 ALLOCATE EXTEN可以為數(shù)據(jù)庫(kù)對(duì)象分配Extent,語(yǔ)法如下:
alter table table_name allocate extent
構(gòu)建對(duì)空表分配空間的SQL命令:
SQL>select ‘a(chǎn)lter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0
批量生成要修改的語(yǔ)句。
然后執(zhí)行這些修改語(yǔ)句,對(duì)所有空表分配空間。
此時(shí)用exp命令,可將包括空表在內(nèi)的所有表導(dǎo)出。
二、利用expdp impdp導(dǎo)出導(dǎo)入
在Oracle10g中exp imp被重新設(shè)計(jì)為Oracle Data Pump(保留了原有的 exp imp工具)
數(shù)據(jù)泵與傳統(tǒng)導(dǎo)出導(dǎo)入的區(qū)別;
1) exp和imp是客戶端工具,他們既可以在客戶端使用,也可以在服務(wù)端使用漏洞?! ?/p>
2) expdp和impdp是服務(wù)端工具,只能在Oracle服務(wù)端使用。
3) imp只適用于exp導(dǎo)出文件,impdp只適用于expdp導(dǎo)出文件。
expdp導(dǎo)出數(shù)據(jù):
1、為輸出路徑建立一個(gè)數(shù)據(jù)庫(kù)的directory對(duì)象。
create or replace directory dumpdir as ‘d:\’;
可以通過(guò):select * from dba_directories;查看。
2、給將要進(jìn)行數(shù)據(jù)導(dǎo)出的用戶授權(quán)訪問(wèn)。
grant read,write on directory dumpdir to test_expdp;
3、將數(shù)據(jù)導(dǎo)出
expdp test_expdp/test_expdp directory=dumpdir dumpfile=test_expdp_bak.dmp logfile=test_expdp_bak.log schemas=test_expdp
注意:這句話在cmd窗口中運(yùn)行,并且最后不要加分號(hào),否則會(huì)提示錯(cuò)誤。因?yàn)檫@句話是操作系統(tǒng)命令而不是SQL。
impdp導(dǎo)入數(shù)據(jù):
1、給將要進(jìn)行數(shù)據(jù)導(dǎo)入的用戶授權(quán)訪問(wèn)。
grant read,write on directory dumpdir to test_impdp;
2、將數(shù)據(jù)導(dǎo)入
impdp test_impdp/impdp directory=dumpdir dumpfile=test_expdp_bak.dmp remap_schema=test_expdp:test_impdp
最后:這些內(nèi)容是我在查找資料時(shí)找到,由于比較雜亂,現(xiàn)在稍作整理,方便以后查閱。同時(shí),如果能給需要的人提供一些幫助,那就再好不過(guò)了。
Oracle數(shù)據(jù)導(dǎo)入導(dǎo)出imp/exp命令 g以上expdp/impdp命令 詳細(xì)的 詳細(xì)的 謝謝
這個(gè)百度上一搜一大把,都說(shuō)的很詳細(xì),樓主沒(méi)搜過(guò),
數(shù)據(jù)導(dǎo)出:
1 將數(shù)據(jù)庫(kù)TEST完全導(dǎo)出,用戶名system 密碼manager 導(dǎo)出到D:daochu.dmp中
exp system/manager@TEST file=d:daochu.dmp full=y
2 將數(shù)據(jù)庫(kù)中system用戶與sys用戶的表導(dǎo)出
exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
3 將數(shù)據(jù)庫(kù)中的表inner_notify、notify_staff_relat導(dǎo)出
exp aichannel/aichannel@TESTDB2 file= d:datanewgnt.dmp tables=(inner_notify,notify_staff_relat)
4 將數(shù)據(jù)庫(kù)中的表table1中的字段filed1以”00″打頭的數(shù)據(jù)導(dǎo)出
exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=” where filed1 like ‘00%'”
上面是常用的導(dǎo)出,對(duì)于壓縮,既用winzip把dmp文件可以很好的壓縮。
也可以在上面命令后面 加上 compress=y 來(lái)實(shí)現(xiàn)。
數(shù)據(jù)的導(dǎo)入
1 將D:daochu.dmp 中的數(shù)據(jù)導(dǎo)入 TEST數(shù)據(jù)庫(kù)中。
imp system/manager@TEST file=d:daochu.dmp
imp aichannel/aichannel@HUST full=y file=d:datanewgnt.dmp ignore=y
上面可能有點(diǎn)問(wèn)題,因?yàn)橛械谋硪呀?jīng)存在,然后它就報(bào)錯(cuò),對(duì)該表就不進(jìn)行導(dǎo)入。
在后面加上 ignore=y 就可以了。
2 將d:daochu.dmp中的表table1 導(dǎo)入
imp system/manager@TEST file=d:daochu.dmp tables=(table1)
基本上上面的導(dǎo)入導(dǎo)出夠用了。不少情況要先是將表徹底刪除,然后導(dǎo)入。
注意:
操作者要有足夠的權(quán)限,權(quán)限不夠它會(huì)提示。
數(shù)據(jù)庫(kù)時(shí)可以連上的??梢杂胻nsping TEST 來(lái)獲得數(shù)據(jù)庫(kù)TEST能否連上。
當(dāng)然,上面的方法在導(dǎo)出數(shù)據(jù)時(shí)可能會(huì)導(dǎo)出很大的包,那是因?yàn)槟愕挠脩艨赡茉谑跈?quán)的時(shí)候授予了DBA的權(quán)限,所以可以采用下面方法來(lái)進(jìn)行數(shù)據(jù)庫(kù)備份:
數(shù)據(jù)庫(kù)備份
建議系統(tǒng)過(guò)渡后,每周進(jìn)行一次備份?;蛘咴跀?shù)據(jù)表發(fā)生重大改變前,對(duì)要改變的數(shù)據(jù)表進(jìn)行備份。
執(zhí)行以下步驟,進(jìn)行備份。
在命令行里,敲入“cmd”,回車,進(jìn)入命令行窗口。
在窗口中,輸入:
exp mas/123456@mas
系統(tǒng)提示:輸入數(shù)組提取緩沖區(qū)大小: 4096 >
可以直接回車;
系統(tǒng)提示:導(dǎo)出文件: EXPDAT.DMP>
此處輸入導(dǎo)出文件的位置,其路徑必須存在,Oracle在這里不會(huì)自動(dòng)建立路徑,但可以建立文件名。備份文件以dmp作為后綴。
輸入內(nèi)容如:e:\work\mas_db_090925v1.dmp 回車
系統(tǒng)提示: (1)E(完整的數(shù)據(jù)庫(kù)),(2)U(用戶) 或 (3)T(表): (2)U > u
此處可以輸入u,也可以直接回車,因?yàn)橄到y(tǒng)此時(shí)默認(rèn)的是U
系統(tǒng)提示:導(dǎo)出權(quán)限(yes/no):yes>回車
系統(tǒng)提示:導(dǎo)出表數(shù)據(jù)(yes/no):yes>回車
系統(tǒng)提示:壓縮區(qū)(yes/no):yes>回車
系統(tǒng)提示:要導(dǎo)出的用戶: (RETURN 以退出) > mas
系統(tǒng)提示:要導(dǎo)出的用戶: (RETURN 以退出) > 回車
此時(shí)系統(tǒng)會(huì)自動(dòng)進(jìn)行備份
本文對(duì)Oracle數(shù)據(jù)的導(dǎo)入導(dǎo)出 imp ,exp 兩個(gè)命令進(jìn)行了介紹, 并對(duì)其相應(yīng)的參數(shù)進(jìn)行了說(shuō)明,然后通過(guò)一些示例進(jìn)行演練,加深理解.
文章最后對(duì)運(yùn)用這兩個(gè)命令可能出現(xiàn)的問(wèn)題(如權(quán)限不夠,不同oracle版本)進(jìn)行了探討,并提出了相應(yīng)的解決方案;
本文部分內(nèi)容摘錄自網(wǎng)絡(luò),感謝網(wǎng)友的經(jīng)驗(yàn)總結(jié);
一.說(shuō)明
oracle 的exp/imp命令用于實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的導(dǎo)出/導(dǎo)入操作;
exp命令用于把數(shù)據(jù)從遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器導(dǎo)出至本地,生成dmp文件;
imp命令用于把本地的數(shù)據(jù)庫(kù)dmp文件從本地導(dǎo)入到遠(yuǎn)程的Oracle數(shù)據(jù)庫(kù)中。
二.語(yǔ)法
可以通過(guò)在命令行輸入 imp help=y 獲取imp的語(yǔ)法信息:
=============================================================================
C:\Documents and Settings\auduser>imp help=y
Import: Release 9.0.1.1.1 – Production on 星期二 5月 20 18:21:
(c) Copyright 2023 Oracle Corporation. All rights reserved.
可以通過(guò)輸入 IMP 命令和您的用戶名/口令
后接用戶名/口令的命令:
例程: IMP SCOTT/TIGER
或者, 可以通過(guò)輸入 IMP 命令和各種參數(shù)來(lái)控制“導(dǎo)入”
按照不同參數(shù)。要指定參數(shù),您可以使用關(guān)鍵字:
格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,…,vlaueN)
例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表
USERID 必須是命令行中的之一個(gè)參數(shù)。
關(guān)鍵字 說(shuō)明(默認(rèn))關(guān)鍵字 說(shuō)明(默認(rèn))
——
USERID 用戶名/口令FULL導(dǎo)入整個(gè)文件 (N)
BUFFER 數(shù)據(jù)緩沖區(qū)大小FROMUSER 所有人用戶名列表
FILE 輸入文件 (EXPDAT.DMP) TOUSER用戶名列表
SHOW 只列出文件內(nèi)容 (N) TABLES 表名列表
IGNORE 忽略創(chuàng)建錯(cuò)誤 (N) RECORDLENGTH IO 記錄的長(zhǎng)度
GRANTS 導(dǎo)入權(quán)限 (Y)INCTYPE 增量導(dǎo)入類型
INDEXES 導(dǎo)入索引 (Y)COMMIT提交數(shù)組插入 (N)
ROWS 導(dǎo)入數(shù)據(jù)行 (Y)PARFILE 參數(shù)文件名
LOG 屏幕輸出的日志文件 CONSTRAINTS 導(dǎo)入限制 (Y)
DESTROY 覆蓋表空間數(shù)據(jù)文件 (N)
INDEXFILE將表/索引信息寫入指定的文件
SKIP_UNUSABLE_INDEXES 跳過(guò)不可用索引的維護(hù) (N)
FEEDBACK 每 x 行顯示進(jìn)度 (0)
TOID_NOVALIDATE跳過(guò)指定類型 ID 的驗(yàn)證
FILESIZE 每個(gè)轉(zhuǎn)儲(chǔ)文件的更大大小
STATISTICS始終導(dǎo)入預(yù)計(jì)算的統(tǒng)計(jì)信息
RESUMABLE遇到與空格有關(guān)的錯(cuò)誤時(shí)掛起 (N)
RESUMABLE_NAME用來(lái)標(biāo)識(shí)可恢復(fù)語(yǔ)句的文本字符串
RESUMABLE_TIMEOUT RESUMABLE 的等待時(shí)間
COMPILE 編譯過(guò)程, 程序包和函數(shù) (Y)
下列關(guān)鍵字僅用于可傳輸?shù)谋砜臻g
TRANSPORT_TABLESPACE 導(dǎo)入可傳輸?shù)谋砜臻g元數(shù)據(jù) (N)
TABLESPACES 將要傳輸?shù)綌?shù)據(jù)庫(kù)的表空間
DATAFILES 將要傳輸?shù)綌?shù)據(jù)庫(kù)的數(shù)據(jù)文件
TTS_OWNERS 擁有可傳輸表空間集中數(shù)據(jù)的用戶
==============================================
同樣可以通過(guò)輸入 exp help=y 獲取exp的語(yǔ)法信息
Microsoft Windows XP
(C) 版權(quán)所有Microsoft Corp.
C:\Documents and Settings\auduser>exp help=y
Export: Release 9.0.1.1.1 – Production on 星期二 5月 20 18:26:
(c) Copyright 2023 Oracle Corporation. All rights reserved.
通過(guò)輸入 EXP 命令和用戶名/口令,您可以
后接用戶名/口令的命令:
例程: EXP SCOTT/TIGER
或者,您也可以通過(guò)輸入跟有各種參數(shù)的 EXP 命令來(lái)控制“導(dǎo)出”
按照不同參數(shù)。要指定參數(shù),您可以使用關(guān)鍵字:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,…,valueN)
例程: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表
USERID 必須是命令行中的之一個(gè)參數(shù)。
關(guān)鍵字 說(shuō)明(默認(rèn))關(guān)鍵字 說(shuō)明(默認(rèn))
——
USERID 用戶名/口令FULL導(dǎo)出整個(gè)文件 (N)
BUFFER 數(shù)據(jù)緩沖區(qū)大小OWNER 所有者用戶名列表
FILE輸出文件 (EXPDAT.DMP) TABLES表名稱列表
COMPRESS 導(dǎo)入到一個(gè)區(qū) (Y) RECORDLENGTH IO 記錄的長(zhǎng)度
GRANTS 導(dǎo)出權(quán)限 (Y)INCTYPE 增量導(dǎo)出類型
INDEXES 導(dǎo)出索引 (Y)RECORD跟蹤增量導(dǎo)出 (Y)
DIRECT 直接路徑 (N)TRIGGERS 導(dǎo)出觸發(fā)器 (Y)
LOG屏幕輸出的日志文件 STATISTICS 分析對(duì)象 (ESTIMATE)
ROWS 導(dǎo)出數(shù)據(jù)行 (Y)PARFILE 參數(shù)文件名
CONSISTENT 交叉表一致性 CONSTRAINTS 導(dǎo)出約束條件 (Y)
FEEDBACK每 x 行顯示進(jìn)度 (0)
FILESIZE每個(gè)轉(zhuǎn)儲(chǔ)文件的更大大小
FLASHBACK_SCN用于回調(diào)會(huì)話快照的 SCN
FLASHBACK_TIME用來(lái)獲得最接近于指定時(shí)間的 SCN 的時(shí)間
QUERY 用來(lái)導(dǎo)出表的子集的選擇子句
RESUMABLE遇到與空格有關(guān)的錯(cuò)誤時(shí)掛起 (N)
RESUMABLE_NAME用來(lái)標(biāo)識(shí)可恢復(fù)語(yǔ)句的文本字符串
RESUMABLE_TIMEOUT RESUMABLE 的等待時(shí)間
TTS_FULL_CHECK對(duì) TTS 執(zhí)行完全或部分相關(guān)性檢查
TABLESPACES要導(dǎo)出的表空間列表
TRANSPORT_TABLESPACE 導(dǎo)出可傳輸?shù)谋砜臻g元數(shù)據(jù) (N)
TEMPLATE 調(diào)用 iAS 模式導(dǎo)出的模板名稱
三.使用示例
3.1 數(shù)據(jù)導(dǎo)出:
1 將數(shù)據(jù)庫(kù)SampleDB完全導(dǎo)出,用戶名system 密碼manager 導(dǎo)出到E:\SampleDB.dmp中
exp system/manager@TestDB file=E:\sampleDB.dmp full=y
2 將數(shù)據(jù)庫(kù)中system用戶與sys用戶的表導(dǎo)出
exp system/manager@TestDB file=E:\sampleDB.dmp owner=(system,sys)
3 將數(shù)據(jù)庫(kù)中的表 TableA,TableB 導(dǎo)出
exp system/manager@TestDB file=E:\sampleDB.dmp tables=(TableA,TableB)
4 將數(shù)據(jù)庫(kù)中的表tableA中的字段filed1 值為 “王五” 的數(shù)據(jù)導(dǎo)出
exp system/manager@TestDB file=E:\sampleDB.dmp tables=(tableA) query=’ where filed1=’王五’
如果想對(duì)dmp文件進(jìn)行壓縮,可以在上面命令后面 加上 compress=y 來(lái)實(shí)現(xiàn)。
3.2 數(shù)據(jù)的導(dǎo)入
1 將備份數(shù)據(jù)庫(kù)文件中的數(shù)據(jù)導(dǎo)入指定的數(shù)據(jù)庫(kù)SampleDB 中,如果 SampleDB 已存在該表,則不再導(dǎo)入;
imp system/manager@TEST file=E:\sampleDB.dmp full=y ignore=y
2 將d:\daochu.dmp中的表table1 導(dǎo)入
imp system/manager@TEST file=E:\sampleDB.dmp tables=(table1)
3. 導(dǎo)入一個(gè)完整數(shù)據(jù)庫(kù)
imp system/manager file=bible_db log=dible_db full=y ignore=y
4. 導(dǎo)入一個(gè)或一組指定用戶所屬的全部表、索引和其他對(duì)象
imp system/manager file=seapark log=seapark fromuser=seapark imp
system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
5. 將一個(gè)用戶所屬的數(shù)據(jù)導(dǎo)入另一個(gè)用戶
imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
imp system/manager file=tank log=tank fromuser=(seapark,amy)
touser=(seapark1, amy1)
6. 導(dǎo)入一個(gè)表
imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
7. 從多個(gè)文件導(dǎo)入
imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G full=y
8. 使用參數(shù)文件
imp system/manager parfile=bible_tables.par
bible_tables.par參數(shù)文件:
#Import the sample tables used for the Oracle8i Database Administrator’s
Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
參數(shù)文件示例見(jiàn)附錄
9. 增量導(dǎo)入
imp system./manager inctype= RECTORE FULL=Y FILE=A
不少情況下要先將表徹底刪除,然后導(dǎo)入。
四.參數(shù)說(shuō)明
4.1、8i EXP常用選項(xiàng)
1、FULL,這個(gè)用于導(dǎo)出整個(gè)數(shù)據(jù)庫(kù),在ROWS=N一起使用時(shí),可以導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu)。例如:
exp sys file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y
2、BUFFER和FEEDBACK,在導(dǎo)出比較多的數(shù)據(jù)時(shí),我會(huì)考慮設(shè)置這兩個(gè)參數(shù)。例如:
exp new file=yw97_2023.dmp log=yw97_2023_3.log feedback=10000 buffer=tables=WO4,OK_YT
3、FILL和LOG,這兩個(gè)參數(shù)分別指定備份的DMP名稱和LOG名稱,包括文件名和目錄,例子見(jiàn)上面。
需要說(shuō)明的是,EXP可以直接備份到磁帶中,即使用FILE=/dev/rmt0(磁帶設(shè)備名),但是一般我們都不這么做,原因有二:一、這樣做的速度會(huì)慢很多,二、現(xiàn)在一般都是使用磁帶庫(kù)的,不建議直接對(duì)磁帶進(jìn)行操作。至于沒(méi)有使用磁帶庫(kù)的朋友可以考慮和UNIX的TAR結(jié)合使用。
如果你真想使用EXP直接到磁帶,你可以參考Metalink文章“EXPORTING TO TAPE ON UNIX SYSTEMS”(文檔號(hào):30428.1),該文中有詳細(xì)解釋。
4、COMPRESS參數(shù)將在導(dǎo)出的同時(shí)合并碎塊,盡量把數(shù)據(jù)壓縮到initial的EXTENT里,默認(rèn)是N,一般建議使用。DIRECT參數(shù)將告訴EXP直接讀取數(shù)據(jù),而不像傳統(tǒng)的EXP那樣,使用SELECT來(lái)讀取表中的數(shù)據(jù),這樣就減少了SQL語(yǔ)句處理過(guò)程。一般也建議使用。不過(guò)有些情況下DIRECT參數(shù)是無(wú)法使用的。
5、如何使用SYSDBA執(zhí)行EXP/IMP?
這是一個(gè)很現(xiàn)實(shí)的問(wèn)題,有時(shí)候我們需要使用SYSDBA來(lái)執(zhí)行EXP/IMP,如進(jìn)行傳輸表空間的EXP/IMP,以及在9i下用SYS用戶來(lái)執(zhí)行EXP/IMP時(shí),都需要使用SYSDBA才可。我們可以使用下面方式連入EXP/IMP:
exp “‘sys/sys as sysdba'” file=1.dmp tables=gototop.t rows=n
6、QUERY參數(shù)后面跟的是where條件,值得注意的是,整個(gè)where子句需要使用””括起來(lái),where子句的寫法和SELECT中相同,如果是UNIX平臺(tái)所有”和’都需要使用\u26469屏蔽它們的特殊含義:
exp gototop/gototop file=1.dmp log=1.log tables=cyx.t query=”where c1=20 and c2=gototop”
如果是windows平臺(tái),則使用下面的格式:
exp c/c@ncn file=c.dmp log=c.log tables=t query=”””where id=1 and name=’gototop'”””
4.2、8i IMP常用選項(xiàng)
1、FROMUSER和TOUSER,使用它們實(shí)現(xiàn)將數(shù)據(jù)從一個(gè)SCHEMA中導(dǎo)入到另外一個(gè)SCHEMA中。
2、IGNORE、GRANTS和INDEXES,其中IGNORE參數(shù)將忽略表的存在,繼續(xù)導(dǎo)入,這個(gè)對(duì)于需要調(diào)整表的存儲(chǔ)參數(shù)時(shí)很有用,我們可以先根據(jù)實(shí)際情況用合理的存儲(chǔ)參數(shù)建好表,然后直接導(dǎo)入數(shù)據(jù)。而GRANTS和INDEXES則表示是否導(dǎo)入授權(quán)和索引,如果想使用新的存儲(chǔ)參數(shù)重建索引,或者為了加快到入速度,我們可以考慮將INDEXES設(shè)為N,而GRANTS一般都是Y。
另外一個(gè)EXP/IMP都有的參數(shù)是PARFILE,它是用來(lái)定義EXP/IMP的參數(shù)文件,也就是說(shuō),上面的參數(shù)都可以寫在一個(gè)參數(shù)文件中,但我們一般很少使用。
4.4、Oracle9i EXP功能描述
Oracle9i EXP在原有的基礎(chǔ)上新增了部分新的參數(shù),按功能主要分為以下幾個(gè)部分:
1、OBJECT_CONSISTENT – 用于設(shè)置EXP對(duì)象為只讀以保持對(duì)象的一致性。默認(rèn)是N。
2、FLASHBACK_SCN和FLASHBACK_TIME – 用于支持FLASHBACK功能而新增。
3、RESUMABLE、RESUMABLE_NAME和RESUMABLE_TIMEOUT – 用于支持RESUMABLE空間分配而新增。
4、TTS_FULL_CHECK – 用于在傳輸表空間時(shí)使用依賴性檢查。
5、TEMPLATE – 用于支持iAS。
6、TABLESPACES – 設(shè)置表空間導(dǎo)出模式。個(gè)人覺(jué)得對(duì)于一般用戶而言,這個(gè)才是新增參數(shù)中最實(shí)用的一個(gè),可以讓用戶在原來(lái)的FULL、OWNER、TABLES的基礎(chǔ)上多了一種選擇,使得EXP更加靈活。
五、不同版本的EXP/IMP問(wèn)題?
一般來(lái)說(shuō),從低版本導(dǎo)入到高版本問(wèn)題不大,麻煩的是將高版本的數(shù)據(jù)導(dǎo)入到低版本中,在Oracle9i之前,不同版本Oracle之間的EXP/IMP可以通過(guò)下面的方法來(lái)解決:
1、在高版本數(shù)據(jù)庫(kù)上運(yùn)行底版本的catexp.sql;
2、使用低版本的EXP來(lái)導(dǎo)出高版本的數(shù)據(jù);
3、使用低版本的IMP將數(shù)據(jù)庫(kù)導(dǎo)入到底版本數(shù)據(jù)庫(kù)中;
4、在高版本數(shù)據(jù)庫(kù)上重新運(yùn)行高版本的catexp.sql腳本。
但在9i中,上面的方法并不能解決問(wèn)題。如果直接使用底版本EXP/IMP會(huì)出現(xiàn)如下錯(cuò)誤:
EXP-00008: ORACLE error %lu encountered
ORA-00904: invalid column name
這已經(jīng)是一個(gè)公布的BUG,需要等到Oracle10.0才能解決,BUG號(hào)為2261,你可以到METALINK上去查看有關(guān)此BUG的詳細(xì)信息。
BUG歸BUG,我們的工作還是要做,在沒(méi)有Oracle的支持之前,我們就自己解決。在Oracle9i中執(zhí)行下面的SQL重建exu81rls視圖即可。
CREATE OR REPLACE view exu81rls
(objown,objnam,policy,polown,polsch,polfun,stmts,chkopt,enabled,spolicy)
AS select u.name, o.name, r.pname, r.pfschma, r.ppname, r.pfname,
decode(bitand(r.stmt_type,1), 0,”, ‘SELECT,’)
|| decode(bitand(r.stmt_type,2), 0,”, ‘INSERT,’)
|| decode(bitand(r.stmt_type,4), 0,”, ‘UPDATE,’)
|| decode(bitand(r.stmt_type,8), 0,”, ‘DELETE,’),
r.check_opt, r.enable_flag,
DECODE(BITAND(r.stmt_type, 16), 0, 0, 1)
from user$ u, obj$ o, rls$ r
where u.user# = o.owner#
and r.obj# = o.obj#
and (uid = 0 or
uid = o.owner# or
exists ( select * from session_roles where role=’SELECT_CATALOG_ROLE’)
)
/
grant select on sys.exu81rls to public;
/
六、其他問(wèn)題
本文只討論了Oracle8i和9i中的EXP/IMP的一些情況,對(duì)于之前的版本,在8.0.X中,除了QUERY參數(shù)不能用外,其它差別不大。針對(duì)沒(méi)有QUERY的情況,我們可以先在數(shù)據(jù)庫(kù)中使用查詢條件建立臨時(shí)中間表,然后使用EXP導(dǎo)出這個(gè)中間表即可。至于Oracle7因?yàn)槟壳笆褂玫娜溯^少,gototop不打算在此做詳細(xì)解釋了,如果讀者朋友有需求,你可以參考Metalink文檔:“Overview of Export and Import in Oracle7”(文檔號(hào):61949.1)。關(guān)于EXP/IMP的詳細(xì)參數(shù)信息你可以通過(guò)EXP/IMP HELP=Y來(lái)獲得。
另外關(guān)于傳輸表空間的更多信息可以參考下面的Metelink文檔,本文不再詳述。
Transportable Tablespaces — An Example to setup and use.
Perform tablespace point-in-time recovery using Transportable Tablespace.
在進(jìn)行并行EXP/IMP的時(shí)候,如果IMP過(guò)程建索引的話不建議同時(shí)運(yùn)行5個(gè)以上的IMP,如果你想加快速度,可以在IMP的時(shí)候不建索引,這樣只要內(nèi)存允許,可以多跑幾個(gè),然后是SQL腳本創(chuàng)建需要的索引。
注意:
操作者要有足夠的權(quán)限,權(quán)限不夠它會(huì)提示。
數(shù)據(jù)庫(kù)是否可以連上, 可以用tnsping TestDB 來(lái)獲得數(shù)據(jù)庫(kù) TestDB 能否連上。
附錄一:
給用戶增加導(dǎo)入數(shù)據(jù)權(quán)限的操作
之一, 啟動(dòng)sql*puls
第二,以system/manager登陸
第三,create user 用戶名 IDENTIFIED BY 密碼(如果已經(jīng)創(chuàng)建過(guò)用戶,這步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用戶名字
第五, 運(yùn)行-cmd-進(jìn)入dmp文件所在的目錄,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp
附錄二:
Oracle 不允許直接改變表的擁有者, 利用Export/Import可以達(dá)到這一目的.
先建立import9.par,
然后,使用時(shí)命令如下:imp parfile=/filepath/import9.par
例 import9.par 內(nèi)容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2 (注:把表的擁有者由FROMUSER改為TOUSER,F(xiàn)ROMUSER和TOUSER的用戶可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_.dmp
log==/backup/import_.log
其實(shí)這些網(wǎng)上有很多,你搜下就有了,我這里有存檔的,你參照下:
exp 命令的參數(shù):
將數(shù)據(jù)庫(kù)內(nèi)的各對(duì)象以二進(jìn)制方式下載成dmp文件,方便數(shù)據(jù)遷移。
buffer:下載數(shù)據(jù)緩沖區(qū),以字節(jié)為單位,缺省依賴操作系統(tǒng)
consistent:下載期間所涉及的數(shù)據(jù)保持read only,缺省為n
direct:使用直通方式 ,缺省為n
feeback:顯示處理記錄條數(shù),缺省為0,即不顯示
file:輸出文件,缺省為expdat.dmp
filesize:輸出文件大小,缺省為操作系統(tǒng)更大值
indexes:是否下載索引,缺省為n,這是指索引的定義而非數(shù)據(jù),exp不下載索引數(shù)據(jù)
log:log文件,缺省為無(wú),在標(biāo)準(zhǔn)輸出顯示
owner:指明下載的用戶名
query:選擇記錄的一個(gè)子集
rows:是否下載表記錄
tables:輸出的表名列表
導(dǎo)出整個(gè)實(shí)例
exp dbuser/oracle file=oradb.dmp log=oradb.log full=y consistent=y direct=y
user應(yīng)具有dba權(quán)限
導(dǎo)出某個(gè)用戶所有對(duì)象
exp dbuser/oracle file=dbuser.dmp log=dbuser.log owner=dbuser buffer=feedback=10000
導(dǎo)出一張或幾張表
exp dbuser/oracle file=dbuser.dmp log=dbuser.log tables=table1,table2 buffer=feedback=10000
導(dǎo)出某張表的部分?jǐn)?shù)據(jù)
exp dbuser/oracle file=dbuser.dmp log=dbuser.log tables=table1 buffer=feedback=10000 query=\”where col1=\’…\’ and col2 \ create directory dump_test as ‘/home/oracle/oracle10g’;
Directory created.
SQL> drop directory dump_test;
Directory dropped.
SQL> create directory dump_test as ‘/u01/oracledmp’;
Directory created.
–接下來(lái)記得創(chuàng)建directory在系統(tǒng)上,并賦好權(quán)限
$ expdp anlen/anlen123 directory=dumpdir dumpfile=anlen.dmp
Export: Release 10.2.0.4.0 – Production on Saturday, 12 June,:43:20
Copyright (c) 2023, 2023, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting “ANLEN”.”SYS_EXPORT_SCHEMA_01″: anlen/******** directory=dumpdir dumpfile=anlen.dmp
Estimate in progress using BLOCKS method…
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 1.125 MB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
. . exported “ANLEN”.”DBA_01″571.2 KBrows
. . exported “ANLEN”.”DBA_02″278.4 KBrows
Master table “ANLEN”.”SYS_EXPORT_SCHEMA_01″ successfully loaded/unloaded
******************************************************************************
Dump file set for ANLEN.SYS_EXPORT_SCHEMA_01 is:
/u01/dmpdir/anlen.dmp
impdp導(dǎo)入表到數(shù)據(jù)庫(kù)用戶的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于impdp導(dǎo)入表到數(shù)據(jù)庫(kù)用戶,數(shù)據(jù)庫(kù)表數(shù)據(jù)導(dǎo)入之impdp,impdp導(dǎo)入另外一個(gè)表空間提示輸入用戶名密碼,如何在oracle中導(dǎo)出,導(dǎo)入數(shù)據(jù),Oracle數(shù)據(jù)導(dǎo)入導(dǎo)出imp/exp命令 g以上expdp/impdp命令 詳細(xì)的 詳細(xì)的 謝謝的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開(kāi)發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專注四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,可選線路電信、移動(dòng)、聯(lián)通等。
當(dāng)前文章:數(shù)據(jù)庫(kù)表數(shù)據(jù)導(dǎo)入之impdp(impdp導(dǎo)入表到數(shù)據(jù)庫(kù)用戶)
轉(zhuǎn)載源于:http://m.fisionsoft.com.cn/article/dhjjdho.html


咨詢
建站咨詢
