【Oracle】EXPDP和IMPDP數據泵進行導出導入的方法

来源:http://www.cnblogs.com/promise-x/archive/2017/09/05/7477360.html
-Advertisement-
Play Games

一、expdp/impdp和exp/imp的區別 1、exp和imp是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。 2、expdp和impdp是服務端的工具程式,他們只能在oracle服務端使用,不能在客戶端使用。 3、imp只適用於exp導出的文件,不適用於expdp導出文件;im ...


一、expdp/impdp和exp/imp的區別

1、exp和imp是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。

2、expdp和impdp是服務端的工具程式,他們只能在oracle服務端使用,不能在客戶端使用。

3、imp只適用於exp導出的文件,不適用於expdp導出文件;impdp只適用於expdp導出的文件,而不適用於exp導出文件。

4、對於10g以上的伺服器,使用exp通常不能導出0行數據的空表,而此時必須使用expdp導出。

 

二、expdp導出步驟

(1)創建邏輯目錄:

   第一步:在伺服器上創建真實的目錄;(註意:第三步創建邏輯目錄的命令不會在OS上創建真正的目錄,所以要先在伺服器上創建真實的目錄。如下圖:)

 

   第二步:用sys管理員登錄sqlplus;

oracle@ypdbtest:/home/oracle/dmp/vechcore>sqlplus

SQL*Plus: Release 11.2.0.4.0 Production on Tue Sep 5 09:20:49 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Enter user-name: sys as sysdba
Enter password:

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

   第三步:創建邏輯目錄;

SQL> create directory data_dir as '/home/oracle/dmp/user';

Directory created.

   第四步:查看管理員目錄,檢查是否存在;

SQL> select * from dba_directories;

OWNER                          DIRECTORY_NAME
------------------------------ ------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
SYS                            DATA_DIR
/home/oracle/dmp/user

    第五步:用sys管理員給你的指定用戶賦予在該目錄的操作許可權。

SQL> grant read,write on directory data_dir to user;

Grant succeeded.

(2)用expdp導出dmp,有五種導出方式:

    第一種:“full=y”,全量導出資料庫;

expdp user/passwd@orcl dumpfile=expdp.dmp directory=data_dir full=y logfile=expdp.log;

    第二種:schemas按用戶導出;

expdp user/passwd@orcl schemas=user dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;

    第三種:按表空間導出;

expdp sys/passwd@orcl tablespace=tbs1,tbs2 dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;

    第四種:導出表;

expdp user/passwd@orcl tables=table1,table2 dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;

    第五種:按查詢條件導;

expdp user/passwd@orcl tables=table1='where number=1234' dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;


三、impdp導入步驟

(1)如果不是同一臺伺服器,需要先將上面的dmp文件下載到目標伺服器上,具體命令參照:http://www.cnblogs.com/promise-x/p/7452972.html

(2)參照“expdp導出步驟”里的前三步,建立邏輯目錄;

(3)用impdp命令導入,對應五種方式:

    第一種:“full=y”,全量導入資料庫;

impdp user/passwd directory=data_dir dumpfile=expdp.dmp full=y;

    第二種:同名用戶導入,從用戶A導入到用戶A;

impdp A/passwd schemas=A directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;

    第三種:①從A用戶中把表table1和table2導入到B用戶中;

impdp B/passwdtables=A.table1,A.table2 remap_schema=A:B directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;

        ②將表空間TBS01、TBS02、TBS03導入到表空間A_TBS,將用戶B的數據導入到A,並生成新的oid防止衝突;

impdp A/passwdremap_tablespace=TBS01:A_TBS,TBS02:A_TBS,TBS03:A_TBS remap_schema=B:A FULL=Y transform=oid:n 
directory=data_dir dumpfile=expdp.dmp logfile=impdp.log

    第四種:導入表空間;

impdp sys/passwd tablespaces=tbs1 directory=data_dir dumpfile=expdp.dmp logfile=impdp.log;

    第五種:追加數據;

impdp sys/passwd directory=data_dir dumpfile=expdp.dmp schemas=system table_exists_action=replace logfile=impdp.log; 
--table_exists_action:導入對象已存在時執行的操作。有效關鍵字:SKIP,APPEND,REPLACE和TRUNCATE

 

四、expdp關鍵字與命令


 (1)關鍵字             說明 (預設)


 ATTACH               連接到現有作業, 例如 ATTACH [=作業名]。

 COMPRESSION             減小轉儲文件內容的大小, 其中有效關鍵字  值為: ALL, (METADATA_ONLY), DATA_ONLY 和 NONE。

 CONTENT                 指定要卸載的數據, 其中有效關鍵字  值為: (ALL), DATA_ONLY 和 METADATA_ONLY。

 DATA_OPTIONS               數據層標記, 其中唯一有效的值為: 使用CLOB格式的 XML_CLOBS-write XML 數據類型。

 DIRECTORY              供轉儲文件和日誌文件使用的目錄對象,即邏輯目錄。

 DUMPFILE              目標轉儲文件 (expdp.dmp) 的列表,例如 DUMPFILE=expdp1.dmp, expdp2.dmp。

 ENCRYPTION              加密部分或全部轉儲文件, 其中有效關鍵字值為: ALL, DATA_ONLY, METADATA_ONLY,ENCRYPTED_COLUMNS_ONLY 或 NONE。

 ENCRYPTION_ALGORITHM      指定應如何完成加密, 其中有效關鍵字值為: (AES128), AES192 和 AES256。

 ENCRYPTION_MODE         生成加密密鑰的方法, 其中有效關鍵字值為: DUAL, PASSWORD 和 (TRANSPARENT)。

 ENCRYPTION_PASSWORD      用於創建加密列數據的口令關鍵字。

 ESTIMATE              計算作業估計值, 其中有效關鍵字值為: (BLOCKS) 和 STATISTICS。

 ESTIMATE_ONLY             在不執行導出的情況下計算作業估計值。

 EXCLUDE               排除特定的對象類型, 例如 EXCLUDE=TABLE:EMP。例:EXCLUDE=[object_type]:[name_clause],[object_type]:[name_clause] 。

 FILESIZE                以位元組為單位指定每個轉儲文件的大小。

 FLASHBACK_SCN           用於將會話快照設置回以前狀態的 SCN。 -- 指定導出特定SCN時刻的表數據。

 FLASHBACK_TIME          用於獲取最接近指定時間的 SCN 的時間。-- 定導出特定時間點的表數據,註意FLASHBACK_SCN和FLASHBACK_TIME不能同時使用。

 FULL                  導出整個資料庫 (N)。  

 HELP                 顯示幫助消息 (N)。

 INCLUDE                包括特定的對象類型, 例如 INCLUDE=TABLE_DATA。

 JOB_NAME               要創建的導出作業的名稱。

 LOGFILE                日誌文件名 (export.log)。

 NETWORK_LINK             鏈接到源系統的遠程資料庫的名稱。

 NOLOGFILE             不寫入日誌文件 (N)。

 PARALLEL                更改當前作業的活動 worker 的數目。

 PARFILE                指定參數文件。

 QUERY                用於導出表的子集的謂詞子句。--QUERY = [schema.][table_name:] query_clause。

 REMAP_DATA              指定數據轉換函數,例如 REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。

 REUSE_DUMPFILES         覆蓋目標轉儲文件 (如果文件存在) (N)。

 SAMPLE                要導出的數據的百分比。

 SCHEMAS               要導出的方案的列表 (登錄方案)。  

 STATUS                在預設值 (0) 將顯示可用時的新狀態的情況下,要監視的頻率 (以秒計) 作業狀態。  

 TABLES                標識要導出的表的列表 - 只有一個方案。--[schema_name.]table_name[:partition_name][,…]

 TABLESPACES            標識要導出的表空間的列表。

 TRANSPORTABLE            指定是否可以使用可傳輸方法, 其中有效關鍵字值為: ALWAYS, (NEVER)。

 TRANSPORT_FULL_CHECK      驗證所有表的存儲段 (N)。 

 TRANSPORT_TABLESPACES      要從中卸載元數據的表空間的列表。

 VERSION              要導出的對象的版本, 其中有效關鍵字為:(COMPATIBLE), LATEST 或任何有效的資料庫版本。


(2)命令            說明


 ADD_FILE             向轉儲文件集中添加轉儲文件。

 CONTINUE_CLIENT         返回到記錄模式。如果處於空閑狀態, 將重新啟動作業。

 EXIT_CLIENT            退出客戶機會話並使作業處於運行狀態。

 FILESIZE              後續 ADD_FILE 命令的預設文件大小 (位元組)。

 HELP               總結交互命令。

 KILL_JOB             分離和刪除作業。

 PARALLEL               更改當前作業的活動 worker 的數目。PARALLEL=<worker 的數目>。

 _DUMPFILES             覆蓋目標轉儲文件 (如果文件存在) (N)。

 START_JOB              啟動/恢復當前作業。

 STATUS                在預設值 (0) 將顯示可用時的新狀態的情況下,要監視的頻率 (以秒計) 作業狀態。STATUS[=interval]。

 STOP_JOB              順序關閉執行的作業並退出客戶機。STOP_JOB=IMMEDIATE 將立即關閉數據泵作業。


 

五、impdp關鍵字與命令


(1)關鍵字            說明 (預設)


ATTACH               連接到現有作業, 例如 ATTACH [=作業名]。

CONTENT                 指定要卸載的數據, 其中有效關鍵字  值為: (ALL), DATA_ONLY 和 METADATA_ONLY。

DATA_OPTIONS               數據層標記,其中唯一有效的值為:SKIP_CONSTRAINT_ERRORS-約束條件錯誤不嚴重。

DIRECTORY             供轉儲文件,日誌文件和sql文件使用的目錄對象,即邏輯目錄。

DUMPFILE              要從(expdp.dmp)中導入的轉儲文件的列表,例如 DUMPFILE=expdp1.dmp, expdp2.dmp。

 ENCRYPTION_PASSWORD      用於訪問加密列數據的口令關鍵字。此參數對網路導入作業無效。

 ESTIMATE              計算作業估計值, 其中有效關鍵字為:(BLOCKS)和STATISTICS。

 EXCLUDE              排除特定的對象類型, 例如 EXCLUDE=TABLE:EMP。

 FLASHBACK_SCN          用於將會話快照設置回以前狀態的 SCN。

 FLASHBACK_TIME          用於獲取最接近指定時間的 SCN 的時間。

 FULL                 從源導入全部對象(Y)。

 HELP                 顯示幫助消息(N)。

 INCLUDE               包括特定的對象類型, 例如 INCLUDE=TABLE_DATA。

 JOB_NAME              要創建的導入作業的名稱。

 LOGFILE                日誌文件名(import.log)。

 NETWORK_LINK           鏈接到源系統的遠程資料庫的名稱。

 NOLOGFILE             不寫入日誌文件。  

 PARALLEL                更改當前作業的活動worker的數目。

 PARFILE                指定參數文件。

 PARTITION_OPTIONS         指定應如何轉換分區,其中有效關鍵字為:DEPARTITION,MERGE和(NONE)。

 QUERY               用於導入表的子集的謂詞子句。

 REMAP_DATA            指定數據轉換函數,例如REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。

 REMAP_DATAFILE          在所有DDL語句中重新定義數據文件引用。

 REMAP_SCHEMA           將一個方案中的對象載入到另一個方案。

 REMAP_TABLE             表名重新映射到另一個表,例如 REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO。

 REMAP_TABLESPACE        將表空間對象重新映射到另一個表空間。

 REUSE_DATAFILES          如果表空間已存在, 則將其初始化 (N)。

 SCHEMAS                要導入的方案的列表。

 SKIP_UNUSABLE_INDEXES       跳過設置為無用索引狀態的索引。

 SQLFILE                將所有的 SQL DDL 寫入指定的文件。

 STATUS                在預設值(0)將顯示可用時的新狀態的情況下,要監視的頻率(以秒計)作業狀態。  

 STREAMS_CONFIGURATION       啟用流元數據的載入。

 TABLE_EXISTS_ACTION       導入對象已存在時執行的操作。有效關鍵字:(SKIP),APPEND,REPLACE和TRUNCATE。

 TABLES                標識要導入的表的列表。

 TABLESPACES            標識要導入的表空間的列表。 

 TRANSFORM            要應用於適用對象的元數據轉換。有效轉換關鍵字為:SEGMENT_ATTRIBUTES,STORAGE,OID和PCTSPACE。

 TRANSPORTABLE           用於選擇可傳輸數據移動的選項。有效關鍵字為: ALWAYS 和 (NEVER)。僅在 NETWORK_LINK 模式導入操作中有效。

 TRANSPORT_DATAFILES       按可傳輸模式導入的數據文件的列表。

 TRANSPORT_FULL_CHECK     驗證所有表的存儲段 (N)。

 TRANSPORT_TABLESPACES     要從中載入元數據的表空間的列表。僅在 NETWORK_LINK 模式導入操作中有效。

  VERSION               要導出的對象的版本, 其中有效關鍵字為:(COMPATIBLE), LATEST 或任何有效的資料庫版本。僅對 NETWORK_LINK 和 SQLFILE 有效。


(2)命令            說明


 CONTINUE_CLIENT         返回到記錄模式。如果處於空閑狀態, 將重新啟動作業。

 EXIT_CLIENT            退出客戶機會話並使作業處於運行狀態。

 HELP                  總結交互命令。

 KILL_JOB                分離和刪除作業。

 PARALLEL              更改當前作業的活動 worker 的數目。PARALLEL=<worker 的數目>。

 START_JOB              啟動/恢復當前作業。START_JOB=SKIP_CURRENT 在開始作業之前將跳過作業停止時執行的任意操作。

 STATUS               在預設值 (0) 將顯示可用時的新狀態的情況下,要監視的頻率 (以秒計) 作業狀態。STATUS[=interval]。

 STOP_JOB             順序關閉執行的作業並退出客戶機。STOP_JOB=IMMEDIATE 將立即關閉數據泵作業。


 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 當我們使用原型鏈繼承時,需要謹慎的定義原型上的方法和屬性,因為這可能帶來意外的結果。 一、謹慎的定義原型上的方法。當我們想為一個構造函數的原型上定義一個方法時,一定要在更改原型後再定義,否則新的原型對象上不會有定義的這個方法,導致與我們預期的結果不同。例: 正確操作如下 二、不要使用對象字面量給原型 ...
  • 背景,做一個前面圖片寬度固定,後面寬度自適應,使用到了flex佈局,但是想讓後面div里文字不換行,超出以點點表示時,這時佈局就亂了,查了下,原來flex佈局與white-space:nowrap有影響 解決辦法,父div設置min-width:0即可 ...
  • 你有沒有遇到過如下的場景。coding中當你要處理一個數組的時候,腦海裡只浮現出了forEach;面試中,當面試官讓你說說數組的方法的時候,腦海裡只浮現出了forEach;做夢時當一個數組追殺你,你能想到的只有用forEach來抵抗。如果是,那麼你一定要聽一聽今年數組舉辦的32場演唱會。只要聽完了這 ...
  • 調度工具taskctl雖然支持分散式調度,但是有的時候,不同重要程度的調度服務還是要區分開來,在區分開後,不同調度服務之間怎麼實現依賴啦, 其實有很多方式,比如寫文件,寫資料庫之類的,這些都可以根據用戶自己的設計來實現,但其實taskctl自帶的消息發送組件也是可以做到的,只是大家沒發現(已經向官方 ...
  • 這篇文章是我之前寫的博文 資料庫方面的面試技巧,如何從建表方面展示自己能力 和 面試技巧,如何通過索引說資料庫優化能力,內容來自Java web輕量級開發麵試教程是一個系列的,通過面試官的視角和大家分享在資料庫方面的面試經驗,這些內容都來摘自 java web輕量級開發麵試教程。 之前的兩篇文章點擊 ...
  • 自然語言處理在很多APP中都有實際應用的場景,比如在電商軟體中,客服問答系統、評論情感分析、帶有語義識別的搜索、商品自動分類、用戶畫像等等。那麼本篇作為自然語言處理淺學的第一篇,就著重來講一下背景知識。 背景知識 自然語言處理,英文是natural language process, NLP,說白了 ...
  • Mybatis的 mapper.xml 中 update 語句使用 if 標簽判斷對像屬性是否為空值。 UserDTO是傳過來參數的類型,userDTO是在mapperDao介面中給更新方法的參數起的別名。 mapperDao.java <update id="updata" parameterTy ...
  • 測試場景下,使用的oralce遇到表空間的占用超大,可以採用如下的方式進行空間的清理 首先使用sqlplus連接資料庫sqlplus sys/password@orcl as sysdba 之類進行資料庫的連接沒然後進行如下的操作 ##創建表空間對於自己的測試庫和表等最好都建立自己的表空間,以方便清 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...