Oracle expdp/impdp 及 exp/imp 命令詳解
一、基礎環(huán)境
操作系統(tǒng):Windows 或 Linux
數據庫版本:Oracle Database 11.2.0.1.0 及以上版本
二、命令簡介
我們在使用Oracle 數據庫的過程中會經常對數據進行導入導出。Oracle 數據庫提供 expdp / impdp (Data Pump,數據泵)以及 exp / imp 兩種工具進行數據的導入導出,可以對數據庫進行邏輯備份。
A、expdp / impdp 是Oracle 10g 開始引入的全新的用于快速遷移數據的工具。提供了一種用于在 Oracle 數據庫之間傳輸數據對象的機制。是服務端的工具程序,它們只能在數據庫服務端使用,不可以在客戶端使用。expdp 導出的數據文件只能使用 impdp 命令進行導入。優(yōu)點如下:
1、導出 / 導入的速度快,效率高。
2、可以在不實際執(zhí)行導出的情況下,估計需要的磁盤空間和所需時間。
3、可以只處理某些對象,不處理某些對象,或者只處理某些對象中滿足條件的數據。
4、通過 db link 將遠程數據庫導出到轉儲文件。
5、通過 db link,直接將遠程數據庫中的數據導入到當前數據庫。
6、導入時可以修改數據所在的 schema 名稱,表空間名稱以及數據文件名稱。
7、導出模式:數據庫 、表空間 、對象模式 、表 。
8、通過采樣,導出部分數據。
9、只導出元數據。
10、并行操作。
B、exp / imp 是客戶端的工具程序,它們既可以客戶端使用,也可以在服務器端使用。exp 導出的數據文件只能使用 imp 命令進行導入。
三、命令詳解
A、expdp
| 關鍵字 | 說明 [ 默認值 ] |
|---|---|
| userid | 用戶名/口令,必須為第一個參數,且不能省略。 |
| directory | 用于轉儲文件和日志文件的目錄對象。[ data_pump_dir] |
| dumpfile | 指定目標轉儲文件名的列表 [expdat.dmp] |
| logfile | 指定日志文件名 [export.log]。 |
| schemas | 要導出的方案的列表 [登錄的方案,即 userid 的那個用戶]。 |
| tables | 標識要導出的表的列表。例如, tables=hr.employees,sh.sales:sales_1995。 |
| nologfile | 不寫入日志文件 [N]。 |
| query | 用于導出表的子集的謂詞子句。例如, query=employees:"WHERE department_id > 10"。 |
| reuse_dumpfiles | 覆蓋目標轉儲文件 (如果文件存在) [N] |
| compression | 減少轉儲文件大小。有效的關鍵字值為: all, data_only, [matadata_only] 和 none。 |
| content | 指定要卸載的數據。[ ALL ] 即:元數據(表結構等)和數據。DATA_ONLY 即:僅導出數據不導出元數據(表結構)。 METADATA_ONLY 即:僅導出元數據(表結構等)不導出數據。 |
| encryption | 加密某個轉儲文件的一部分或全部。 有效的關鍵字值為: ALL 即:加密元數據(表結構等)和數據。 DATA_ONLY,即:僅加密數據部分,不加密元數據(表結構等)。ENCRYPTED_COLUMNS_ONLY, 即:僅加密列。METADATA_ONLY,即:僅加密元數據(表結構等)。NONE,即不加密元數據(表結構等)和數據。 |
| encryption_algorithm | 指定加密的方式。有效的關鍵字值為: [ AES128 ], AES192 和 AES256。 |
| encryption_mode | 生成加密密鑰的方法。有效的關鍵字值為: dual, password和 [TRANSPARENT]。 |
| encryption_password | 用于在轉儲文件中創(chuàng)建加密數據的口令密鑰。 |
| network_link | 源系統(tǒng)的遠程數據庫鏈接的名稱。即dblink的名稱,用于導出遠程數據庫。(性能受網絡限制) |
| version | 要導出的對象版本。有效的關鍵字值為: [COMPATIBLE], latest 或任何有效的數據庫版本。在不同版本數據庫導入導出數據時,必須指定此參數,否則會導入失敗。 |
| full | 導出整個數據庫 [N]。 |
| estimate_only | 計算作業(yè)估計值而不執(zhí)行導出。 |
| estimate | 計算作業(yè)估計值。 有效的關鍵字值為: [blocks] 和 STATISTICS。 |
| help | 顯示幫助消息 [N]。 |
常用導出語句:
1、導出用戶 scott 和 HR 的所有對象,目錄對象為:默認,轉儲文件名稱為:默認[EXPDAT.DMP], 日志文件為:默認[export.log]
expdp userid=system/oracle schemas=SCOTT,HR
2、導出用戶 scott 的 emp 表和 HR 的 jobs 表,目錄對象為:默認,轉儲文件名稱為:默認[EXPDAT.DMP], 日志文件為:默認[export.log]
expdp system/oracle tables=scott.emp,hr.jobs
3、導出遠程用戶的scott
expdp userid=system/oracle network_link='test' schemas=scott,hr
4、生產環(huán)境單實例數據庫備份命令
expdp userid=帳號/密碼@實例名 schemas=方案名列表 reuse_dumpfiles=y compression=all encryption=data_only encryption_mode=password encryption_password=密碼
特別說明:為了保證數據安全,導出時對轉儲文件進行加密(密碼可以動態(tài)生成),防止未授權人員獲取此轉儲文件,導致數據泄露。
B、impdp
| 關鍵字 | 說明 [ 默認值 ] |
|---|---|
| userid | 用戶名/口令,必須為第一個參數,且不能省略。 |
| directory | 用于轉儲文件, 日志文件和 SQL 文件的目錄對象。[ data_pump_dir] |
| dumpfile | 要從中導入的轉儲文件的列表,可以有多個。[expdat.dmp] |
| logfile | 日志文件名 [import.log] |
| schemas | 要導入的方案的列表。 |
| encryption_password | 用于訪問轉儲文件中的加密數據的口令密鑰。 |
| full | 導入源中的所有對象 [Y] |
| remap_schema | 將一個方案中的對象加載到另一個方案。(修改用戶名) |
| remap_tablespace | 將表空間對象重新映射到另一個表空間。(修改表空間) |
| reuse_datafiles | 如果表空間已存在, 則將其初始化 [N]。 |
| tables | 標識要導入的表的列表。 |
| help | 顯示幫助消息 [N]。 |
常用的導入語句:
1、將用戶 scott 的 emp 用戶表刪除,從備份文件 EXPDAT.DMP 中恢復 emp 表。(提前將 EXPDAT.DMP 放入 DATA_PUMP_DIR 對應的目錄)
impdp userid=system/oracle tables=scott.emp
2、將備份文件 expdat.dmp 中所有對象導入到數據庫中,密碼為123456。(提前將 expdat.dmp 放入 DATA_PUMP_DIR 對應的目錄)
impdp userid=system/oracle full=y encryption_password=123456
C、exp
| 關鍵字 | 說明[ 默認值 ] |
|---|---|
| userid | 用戶名/口令,必須為第一個參數,且不能省略。 |
| owner | 所有者用戶名列表,多個用英文逗號隔開。 |
| file | 輸出文件。 [ expdat.dmp ] |
| log | 屏幕輸出的日志文件,沒有默認值,建議指定,否則不產生日志文件。 |
| rows | 導出數據行 [Y],如果只想導出元數據,不導出數據,請將此關鍵字設置為N |
| query | 用于導出表的子集的 select 子句 |
| tables | 表名列表。不同的用戶可以設置為:用戶名1.表名1,用戶名2.表名2 |
| buffer | 數據緩沖區(qū)大小。建議設置為64000,可以加快導出速度。 |
| direct | 直接路徑 [N]。建議設置為Y ,可以加快導出速度。 |
| recordlength | IO 記錄的長度。建議設置為65535,可以加快導出速度。 |
| grants | 導出權限 [ Y ] |
| indexs | 導出索引 [ Y ] |
| help | 顯示幫助消息 [N] |
常用的導出語句:
1、將 SCOTT 的 EMP 和 DEPT 表每個表導出 10 行。(不足10行的按照實際導出行數導出)
exp userid=scott/tiger log=export.log tables=emp,dept query="'WHERE ROWNUM <= 10'"
2、將 scott 的 emp 和 dept 表導出,最高效率(導出文件名為默認的expdat.dmp)
exp userid=scott/tiger log=export.log tables=emp,dept direct=y buffer=64000 recordlength=65535
D、imp
| 關鍵字 | 說明[ 默認值 ] |
|---|---|
| userid | 用戶名/口令,必須為第一個參數,且不能省略。 |
| file | 輸入文件。 [ expdat.dmp ] |
| log | 屏幕輸出的日志文件,沒有默認值,建議指定,否則不產生日志文件。 |
| fromuser | 所有者用戶名列表 |
| touser | 用戶名列表 |
| tables | 表名列表。前面可以加用戶名,如:scott.emp,scott.dept |
| grants | 導入權限 [Y] |
| indexes | 導入索引 [Y] |
| rows | 導入數據行 [Y] |
| full | 導入整個文件。[N] |
| help | 顯示幫助消息 [N] |
常用的導入語句:
1、將 scott.dmp 導入數據庫。(需要提前將 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
到此這篇關于Oracle expdp/impdp 及 exp/imp 命令詳解的文章就介紹到這了,更多相關Oracle expdp/impdp 內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
[Oracle] Data Guard 之 三種保護模式介紹
Data Guard提供如下三種數據保護模式,以下是對這三種保護模式進行了詳細的分析介紹,需要的朋友可以參考下2013-07-07
Oracle數據庫密碼復雜度校驗腳本utlpwdmg.sql詳細解析
我們都知道密碼策略加固的參數一般包括密碼長度、復雜度檢測、最大最小使用時間、過期警報時間、最大登錄失敗次數以及鎖定時間等設置,下面這篇文章主要給大家介紹了關于Oracle數據庫密碼復雜度校驗腳本utlpwdmg.sql詳細解析的相關資料,需要的朋友可以參考下2024-04-04
oracle11g 最終版本11.2.0.4安裝詳細過程介紹
這篇文章主要介紹了oracle11g 最終版本11.2.0.4安裝詳細過程介紹,詳細的介紹了每個安裝步驟,有興趣的可以了解一下。2017-03-03
Oracle數據庫由dataguard備庫引起的log file sync等待問題
這篇文章主要介紹了Oracle數據庫由dataguard備庫引起的log file sync等待,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11

