天天看點

10g 及之後導出/導入工具 Oracle 10g 及之後導出/導入(Datapump Export/Import)工具 本文内容

<a target="_blank" href="http://www.orafaq.com/wiki/data_pump">http://www.orafaq.com/wiki/data_pump</a>

<a target="_blank" href="http://www.orafaq.com/wiki/datapump">http://www.orafaq.com/wiki/datapump</a>

datapump 是一個服務,基于大容量資料遷移的結構,用來取代舊的 import/export 工具。舊的 import/export 工具仍然可用,但不支援所有的 oracle 10g 和 11g 的功能。這個新的工具名為 expdp 和 impdp。

本文介紹 oracle 10g 及之後版本導出/入工具的步驟,内容如下:

開始使用 datapump 導出

建立資料庫目錄

再次嘗試導出

導入另一個資料庫

網絡導入

從 pl/sql 調用

oracle 11g release 1 (11.1) data pump 導出和導入概述

oracle 11g release 1 (11.1) data pump 導出和導入模式

參考資料

修改記錄

說明: "dmpdir" 為導出目錄; "scott.dmp" 為導出的 datadump 檔案; scott 使用者下的表在預設表空間 users 和臨時表空間 temp 下。是以這個指令将 scott 使用者把自己的表(對象)導出來; 因為,oracle 已經有這兩個表空間,是以,直接導入即可。但是,如果是自己建立的表空間,就先要建立這個表空間,然後再導入。

導出失敗了!因為,我們需要先建立目錄!

執行如下指令,建立一個資料庫導出目錄。該目錄必須指向資料庫伺服器的一個有效目錄:

"dmpdir" 為導出目錄,"/opt/oracle" 為資料庫路徑(也可以作業系統的絕對路徑,如"d:\db_backup"); 導出目錄授權。讓 scott 使用者對該目錄可讀寫。這樣,scott 使用者才能正常通路該目錄,将資料庫内容和導出的日志檔案放在這裡。

備注:oracle 從 oracle 10g r2 開始,引入了一個稱為 "data_pump_dir" 的預設目錄,如下所示:

備注: expdp 和 impdp 指令都是作業系統下執行; 而建立導出目錄,并為其授權,都是 sql plus 下執行。 以上例子對于剛開始的你已經足夠。更多資訊,請參看 oracle 工具指南。輸入下面指令可以列出該指令的所有參數。

通過網絡模式導入,不需要任何中間的 dump 檔案。資料,通過一個資料庫鍊路(database link)導出,直接導入到目标資料庫。例如:

所有的工作在目标作業系統上完成。唯一一個到源作業系統的引用是通過資料庫鍊路(database link)。

可以從 pl/sql 調用 datapump。這對于每天或每周計劃用 dbms_scheduler 導出很友善。

說明 一般情況下,導出/入不會遇到太多問題,隻要注意一下幾點就行: 導出目錄必須存在,否則導出工具無法寫 export.log 導出檔案日志,會報 ora 錯誤; 導出使用的使用者必須對導出目錄有讀寫權限。這個顯而易見; 導入時,相應的表空間和使用者必須已存在。這個也顯而易見。 注意這三點,一般都會成功導出/導入。

上面是 datapump 導出/導入的步驟。下面概述一下該工具。

oracle data pump(資料泵)技術可以使資料和中繼資料高速地從一個資料庫移動到另一個資料庫。該技術是 oracle資料庫資料移動實用工具 data pump export 和 import 的基礎。也就是說,導出/導入工具是基于 oracle 資料泵技術。

data pump 可以讓你指定作業是否移動資料和中繼資料的一個子集。這是通過 export 和 import 參數,使用資料過濾和中繼資料過濾來完成。

data pump 導出是一個把資料和中繼資料解除安裝到一個稱為“轉儲檔案集(dump file )”作業系統檔案集的工具。轉儲檔案集可以移動到另一個系統,并通過 data pump 導入工具加載。

轉儲檔案集是由一個或多個包含表資料、資料庫對象中繼資料和控制資訊的磁盤檔案組成。這些檔案以專有的、二進制格式寫入,隻有 data pump 導入工具可以讀取。導入期間,data pump import 工具使用這些檔案在轉存檔案集中定位每個資料庫對象。

data pump 導入是一個把導出的轉存檔案集加載到目标系統。轉儲檔案集是由一個或多個包含表資料、資料庫對象中繼資料和控制資訊的磁盤檔案組成。這些檔案以專有的、二進制格式寫入。

導入也可以用于直接從源資料庫加載到目标資料庫加載,而無需轉儲檔案,使得導出和導入操作同時進行,最大限度地減少總時間。這稱為“網絡導入”。

導入也可以讓你看到導入作業正在執行的所有 sql ddl,而不實際執行的 sql。這是通過導入 sqlfile 參數完成的。

data pump api 提供一個高速的機制,把所有或部分資料和中繼資料從一個資料庫移動到另一個資料庫。若使用 data pump api,你可以使用dbms_datapump pl/sql 包提供的存儲過程。data pump export 和 data pump import 實用工具是基于 data pump api。

中繼資料用程式程式設計接口( metadata api)為你提供一個途徑完成以下工作:

檢索一個對象的 xml 中繼資料

以多種不同的方式傳輸 xml,包括把它傳輸到 sql ddl

送出 xml 以通過檢索重建提取的對象

若使用中繼資料 api,您可以使用 dbms_metadata pl/sql 包中提供的存儲過程。中繼資料的目的,資料庫中的每個實體都被模型化一個對象,它屬于一個對象類型。例如,scott.emp 表是一個對象,它的對象的類型是 table。當你擷取一個對象的中繼資料時,必須指定對象類型。

<a target="_blank" href="http://www.cnblogs.com/liuning8023/archive/2012/04/11/2441602.html">http://www.cnblogs.com/liuning8023/archive/2012/04/11/2441602.html</a>

<a target="_blank" href="http://www.cnblogs.com/liuning8023/archive/2012/04/11/2443178.html">http://www.cnblogs.com/liuning8023/archive/2012/04/11/2443178.html</a>

第一次 2012-04-09 [update][add]

第二次 2012-04-11 [update][add]