Oracle expdp/impdp 及 exp/imp 命令詳解
一、基礎(chǔ)環(huán)境
操作系統(tǒng):Windows 或 Linux
數(shù)據(jù)庫(kù)版本:Oracle Database 11.2.0.1.0 及以上版本
二、命令簡(jiǎn)介
我們?cè)谑褂肙racle 數(shù)據(jù)庫(kù)的過(guò)程中會(huì)經(jīng)常對(duì)數(shù)據(jù)進(jìn)行導(dǎo)入導(dǎo)出。Oracle 數(shù)據(jù)庫(kù)提供 expdp / impdp (Data Pump,數(shù)據(jù)泵)以及 exp / imp 兩種工具進(jìn)行數(shù)據(jù)的導(dǎo)入導(dǎo)出,可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行邏輯備份。
A、expdp / impdp 是Oracle 10g 開(kāi)始引入的全新的用于快速遷移數(shù)據(jù)的工具。提供了一種用于在 Oracle 數(shù)據(jù)庫(kù)之間傳輸數(shù)據(jù)對(duì)象的機(jī)制。是服務(wù)端的工具程序,它們只能在數(shù)據(jù)庫(kù)服務(wù)端使用,不可以在客戶端使用。expdp 導(dǎo)出的數(shù)據(jù)文件只能使用 impdp 命令進(jìn)行導(dǎo)入。優(yōu)點(diǎn)如下:
1、導(dǎo)出 / 導(dǎo)入的速度快,效率高。
2、可以在不實(shí)際執(zhí)行導(dǎo)出的情況下,估計(jì)需要的磁盤(pán)空間和所需時(shí)間。
3、可以只處理某些對(duì)象,不處理某些對(duì)象,或者只處理某些對(duì)象中滿足條件的數(shù)據(jù)。
4、通過(guò) db link 將遠(yuǎn)程數(shù)據(jù)庫(kù)導(dǎo)出到轉(zhuǎn)儲(chǔ)文件。
5、通過(guò) db link,直接將遠(yuǎn)程數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)入到當(dāng)前數(shù)據(jù)庫(kù)。
6、導(dǎo)入時(shí)可以修改數(shù)據(jù)所在的 schema 名稱,表空間名稱以及數(shù)據(jù)文件名稱。
7、導(dǎo)出模式:數(shù)據(jù)庫(kù) 、表空間 、對(duì)象模式 、表 。
8、通過(guò)采樣,導(dǎo)出部分?jǐn)?shù)據(jù)。
9、只導(dǎo)出元數(shù)據(jù)。
10、并行操作。
B、exp / imp 是客戶端的工具程序,它們既可以客戶端使用,也可以在服務(wù)器端使用。exp 導(dǎo)出的數(shù)據(jù)文件只能使用 imp 命令進(jìn)行導(dǎo)入。
三、命令詳解
A、expdp
關(guān)鍵字 | 說(shuō)明 [ 默認(rèn)值 ] |
---|---|
userid | 用戶名/口令,必須為第一個(gè)參數(shù),且不能省略。 |
directory | 用于轉(zhuǎn)儲(chǔ)文件和日志文件的目錄對(duì)象。[ data_pump_dir] |
dumpfile | 指定目標(biāo)轉(zhuǎn)儲(chǔ)文件名的列表 [expdat.dmp] |
logfile | 指定日志文件名 [export.log]。 |
schemas | 要導(dǎo)出的方案的列表 [登錄的方案,即 userid 的那個(gè)用戶]。 |
tables | 標(biāo)識(shí)要導(dǎo)出的表的列表。例如, tables=hr.employees,sh.sales:sales_1995。 |
nologfile | 不寫(xiě)入日志文件 [N]。 |
query | 用于導(dǎo)出表的子集的謂詞子句。例如, query=employees:"WHERE department_id > 10"。 |
reuse_dumpfiles | 覆蓋目標(biāo)轉(zhuǎn)儲(chǔ)文件 (如果文件存在) [N] |
compression | 減少轉(zhuǎn)儲(chǔ)文件大小。有效的關(guān)鍵字值為: all, data_only, [matadata_only] 和 none。 |
content | 指定要卸載的數(shù)據(jù)。[ ALL ] 即:元數(shù)據(jù)(表結(jié)構(gòu)等)和數(shù)據(jù)。DATA_ONLY 即:僅導(dǎo)出數(shù)據(jù)不導(dǎo)出元數(shù)據(jù)(表結(jié)構(gòu))。 METADATA_ONLY 即:僅導(dǎo)出元數(shù)據(jù)(表結(jié)構(gòu)等)不導(dǎo)出數(shù)據(jù)。 |
encryption | 加密某個(gè)轉(zhuǎn)儲(chǔ)文件的一部分或全部。 有效的關(guān)鍵字值為: ALL 即:加密元數(shù)據(jù)(表結(jié)構(gòu)等)和數(shù)據(jù)。 DATA_ONLY,即:僅加密數(shù)據(jù)部分,不加密元數(shù)據(jù)(表結(jié)構(gòu)等)。ENCRYPTED_COLUMNS_ONLY, 即:僅加密列。METADATA_ONLY,即:僅加密元數(shù)據(jù)(表結(jié)構(gòu)等)。NONE,即不加密元數(shù)據(jù)(表結(jié)構(gòu)等)和數(shù)據(jù)。 |
encryption_algorithm | 指定加密的方式。有效的關(guān)鍵字值為: [ AES128 ], AES192 和 AES256。 |
encryption_mode | 生成加密密鑰的方法。有效的關(guān)鍵字值為: dual, password和 [TRANSPARENT]。 |
encryption_password | 用于在轉(zhuǎn)儲(chǔ)文件中創(chuàng)建加密數(shù)據(jù)的口令密鑰。 |
network_link | 源系統(tǒng)的遠(yuǎn)程數(shù)據(jù)庫(kù)鏈接的名稱。即dblink的名稱,用于導(dǎo)出遠(yuǎn)程數(shù)據(jù)庫(kù)。(性能受網(wǎng)絡(luò)限制) |
version | 要導(dǎo)出的對(duì)象版本。有效的關(guān)鍵字值為: [COMPATIBLE], latest 或任何有效的數(shù)據(jù)庫(kù)版本。在不同版本數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出數(shù)據(jù)時(shí),必須指定此參數(shù),否則會(huì)導(dǎo)入失敗。 |
full | 導(dǎo)出整個(gè)數(shù)據(jù)庫(kù) [N]。 |
estimate_only | 計(jì)算作業(yè)估計(jì)值而不執(zhí)行導(dǎo)出。 |
estimate | 計(jì)算作業(yè)估計(jì)值。 有效的關(guān)鍵字值為: [blocks] 和 STATISTICS。 |
help | 顯示幫助消息 [N]。 |
常用導(dǎo)出語(yǔ)句:
1、導(dǎo)出用戶 scott 和 HR 的所有對(duì)象,目錄對(duì)象為:默認(rèn),轉(zhuǎn)儲(chǔ)文件名稱為:默認(rèn)[EXPDAT.DMP], 日志文件為:默認(rèn)[export.log]
expdp userid=system/oracle schemas=SCOTT,HR
2、導(dǎo)出用戶 scott 的 emp 表和 HR 的 jobs 表,目錄對(duì)象為:默認(rèn),轉(zhuǎn)儲(chǔ)文件名稱為:默認(rèn)[EXPDAT.DMP], 日志文件為:默認(rèn)[export.log]
expdp system/oracle tables=scott.emp,hr.jobs
3、導(dǎo)出遠(yuǎn)程用戶的scott
expdp userid=system/oracle network_link='test' schemas=scott,hr
4、生產(chǎn)環(huán)境單實(shí)例數(shù)據(jù)庫(kù)備份命令
expdp userid=帳號(hào)/密碼@實(shí)例名 schemas=方案名列表 reuse_dumpfiles=y compression=all encryption=data_only encryption_mode=password encryption_password=密碼
特別說(shuō)明:為了保證數(shù)據(jù)安全,導(dǎo)出時(shí)對(duì)轉(zhuǎn)儲(chǔ)文件進(jìn)行加密(密碼可以動(dòng)態(tài)生成),防止未授權(quán)人員獲取此轉(zhuǎn)儲(chǔ)文件,導(dǎo)致數(shù)據(jù)泄露。
B、impdp
關(guān)鍵字 | 說(shuō)明 [ 默認(rèn)值 ] |
---|---|
userid | 用戶名/口令,必須為第一個(gè)參數(shù),且不能省略。 |
directory | 用于轉(zhuǎn)儲(chǔ)文件, 日志文件和 SQL 文件的目錄對(duì)象。[ data_pump_dir] |
dumpfile | 要從中導(dǎo)入的轉(zhuǎn)儲(chǔ)文件的列表,可以有多個(gè)。[expdat.dmp] |
logfile | 日志文件名 [import.log] |
schemas | 要導(dǎo)入的方案的列表。 |
encryption_password | 用于訪問(wèn)轉(zhuǎn)儲(chǔ)文件中的加密數(shù)據(jù)的口令密鑰。 |
full | 導(dǎo)入源中的所有對(duì)象 [Y] |
remap_schema | 將一個(gè)方案中的對(duì)象加載到另一個(gè)方案。(修改用戶名) |
remap_tablespace | 將表空間對(duì)象重新映射到另一個(gè)表空間。(修改表空間) |
reuse_datafiles | 如果表空間已存在, 則將其初始化 [N]。 |
tables | 標(biāo)識(shí)要導(dǎo)入的表的列表。 |
help | 顯示幫助消息 [N]。 |
常用的導(dǎo)入語(yǔ)句:
1、將用戶 scott 的 emp 用戶表刪除,從備份文件 EXPDAT.DMP 中恢復(fù) emp 表。(提前將 EXPDAT.DMP 放入 DATA_PUMP_DIR 對(duì)應(yīng)的目錄)
impdp userid=system/oracle tables=scott.emp
2、將備份文件 expdat.dmp 中所有對(duì)象導(dǎo)入到數(shù)據(jù)庫(kù)中,密碼為123456。(提前將 expdat.dmp 放入 DATA_PUMP_DIR 對(duì)應(yīng)的目錄)
impdp userid=system/oracle full=y encryption_password=123456
C、exp
關(guān)鍵字 | 說(shuō)明[ 默認(rèn)值 ] |
---|---|
userid | 用戶名/口令,必須為第一個(gè)參數(shù),且不能省略。 |
owner | 所有者用戶名列表,多個(gè)用英文逗號(hào)隔開(kāi)。 |
file | 輸出文件。 [ expdat.dmp ] |
log | 屏幕輸出的日志文件,沒(méi)有默認(rèn)值,建議指定,否則不產(chǎn)生日志文件。 |
rows | 導(dǎo)出數(shù)據(jù)行 [Y],如果只想導(dǎo)出元數(shù)據(jù),不導(dǎo)出數(shù)據(jù),請(qǐng)將此關(guān)鍵字設(shè)置為N |
query | 用于導(dǎo)出表的子集的 select 子句 |
tables | 表名列表。不同的用戶可以設(shè)置為:用戶名1.表名1,用戶名2.表名2 |
buffer | 數(shù)據(jù)緩沖區(qū)大小。建議設(shè)置為64000,可以加快導(dǎo)出速度。 |
direct | 直接路徑 [N]。建議設(shè)置為Y ,可以加快導(dǎo)出速度。 |
recordlength | IO 記錄的長(zhǎng)度。建議設(shè)置為65535,可以加快導(dǎo)出速度。 |
grants | 導(dǎo)出權(quán)限 [ Y ] |
indexs | 導(dǎo)出索引 [ Y ] |
help | 顯示幫助消息 [N] |
常用的導(dǎo)出語(yǔ)句:
1、將 SCOTT 的 EMP 和 DEPT 表每個(gè)表導(dǎo)出 10 行。(不足10行的按照實(shí)際導(dǎo)出行數(shù)導(dǎo)出)
exp userid=scott/tiger log=export.log tables=emp,dept query="'WHERE ROWNUM <= 10'"
2、將 scott 的 emp 和 dept 表導(dǎo)出,最高效率(導(dǎo)出文件名為默認(rèn)的expdat.dmp)
exp userid=scott/tiger log=export.log tables=emp,dept direct=y buffer=64000 recordlength=65535
D、imp
關(guān)鍵字 | 說(shuō)明[ 默認(rèn)值 ] |
---|---|
userid | 用戶名/口令,必須為第一個(gè)參數(shù),且不能省略。 |
file | 輸入文件。 [ expdat.dmp ] |
log | 屏幕輸出的日志文件,沒(méi)有默認(rèn)值,建議指定,否則不產(chǎn)生日志文件。 |
fromuser | 所有者用戶名列表 |
touser | 用戶名列表 |
tables | 表名列表。前面可以加用戶名,如:scott.emp,scott.dept |
grants | 導(dǎo)入權(quán)限 [Y] |
indexes | 導(dǎo)入索引 [Y] |
rows | 導(dǎo)入數(shù)據(jù)行 [Y] |
full | 導(dǎo)入整個(gè)文件。[N] |
help | 顯示幫助消息 [N] |
常用的導(dǎo)入語(yǔ)句:
1、將 scott.dmp 導(dǎo)入數(shù)據(jù)庫(kù)。(需要提前將 emp,dept 表刪除)
imp userid=scott/tiger file=scott.dmp log=scott.log tables=emp,dept
四、參考資料
1、Oracle 自帶的命令:expdp -help 、impdp -help 、exp -help 、imp -help
到此這篇關(guān)于Oracle expdp/impdp 及 exp/imp 命令詳解的文章就介紹到這了,更多相關(guān)Oracle expdp/impdp 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
oracle數(shù)據(jù)庫(kù)表實(shí)現(xiàn)自增主鍵的方法實(shí)例
Oracle數(shù)據(jù)庫(kù)中沒(méi)有自增字段,我們可以通過(guò)創(chuàng)建序列和觸發(fā)器的方式,間接地實(shí)現(xiàn)自增的效果,下面這篇文章主要給大家介紹了關(guān)于oracle數(shù)據(jù)庫(kù)表實(shí)現(xiàn)自增主鍵的相關(guān)資料,需要的朋友可以參考下2022-06-06oracle 數(shù)據(jù)庫(kù)學(xué)習(xí) 基本結(jié)構(gòu)介紹
普及一下oracle的基礎(chǔ)知識(shí),總結(jié)一下,oracle 是由實(shí)例和數(shù)據(jù)庫(kù)組成2012-11-11Oracle基礎(chǔ)多條sql執(zhí)行在中間的語(yǔ)句出現(xiàn)錯(cuò)誤時(shí)的控制方式
今天小編就為大家分享一篇關(guān)于Oracle基礎(chǔ)多條sql執(zhí)行在中間的語(yǔ)句出現(xiàn)錯(cuò)誤時(shí)的控制方式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12ORA-02298: 無(wú)法驗(yàn)證 (約束)提示未找到父項(xiàng)關(guān)鍵字的解決辦法
這篇文章主要介紹了ORA-02298: 無(wú)法驗(yàn)證 (約束)提示未找到父項(xiàng)關(guān)鍵字的解決辦法,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09利用Oracle數(shù)據(jù)庫(kù)發(fā)送郵件的實(shí)例代碼
本文給大家利用oracle數(shù)據(jù)庫(kù)發(fā)送郵件的實(shí)例,代碼簡(jiǎn)單易懂,試用性非常高,對(duì)此文感興趣的朋友一起學(xué)習(xí)吧2016-09-09oracle數(shù)據(jù)庫(kù)中chr()函數(shù)和concat函數(shù)的使用說(shuō)明
這篇文章主要介紹了oracle數(shù)據(jù)庫(kù)中chr()函數(shù)和concat函數(shù)的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07