http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_overview.htm#g1015896
本文內容
Oracle Data Pump 技術(Oracle 資料泵技術)可以讓你高速地把資料和後設資料從一個資料庫移動到另一個資料庫。
- Data Pump 元件
- Data Pump 如何移動資料
- 參考資料
Data Pump 元件
Oracle Data Pump 由三個不同的部分組成:
- 命令列客戶端 expdp 和 impdp
- DBMS_DATAPUMP PL/SQL 包(也叫 Data Pump API)
- DBMS_METADATA PL/SQL 包(也叫 Metadata API)
Data Pump 客戶端 expdp 和 impdp 分別呼叫 Data Pump Export 和 Import 實用工具。
備註:
由 Data Pump 匯出實用工具(expdp )匯出的轉儲檔案與原來的匯出工具(exp)匯出的檔案不相容。因此,由 exp 工具生成的檔案不能使用 impdp 工具匯入。
多數情況下,Oracle 推薦你使用 Data Pump Export 和 Import 實用工具。與原來的匯出/匯入工具相比,它們提供更強的資料移動效能。
expdp 和 impdp 客戶端程式通過在命令列輸入的引數,使用 DBMS_DATAPUMP PL/SQL 包中提供的儲存過程,執行匯出和匯入命令。這些引數可以匯出和匯入全部部分資料庫的資料和後設資料。
當移動後設資料時,Data Pump 使用 DBMS_METADATA PL/SQL 包提供的功能。DBMS_METADATA 包提供了一個集中化的設施,來提取、操作,和字典後設資料的重新提交。
DBMS_DATAPUMP 和 DBMS_METADATA 包可以在命令列獨立使用。
備註:
所有的 Data Pump 匯出和匯入處理,包括讀寫轉儲檔案,都是在你指定的資料庫上完成的。因此,對於沒有許可權的使用者,DBA 必須在伺服器的檔案系統上為 Data Pump 檔案建立讀寫的目錄物件。對於有許可權的使用者,可以使用一個預設的目錄物件。
Data Pump 如何移動資料
Data Pump 使用四種機制來移動資料。按移動速度遞增排序,如下所示:
- Data file 複製
- Direct path
- External tables
- 資料庫鏈路匯入
備註:
Data Pump 不會載入禁用 unique 索引的那些表。如果資料被載入到這些表,那麼必須刪除或啟用索引。
備註:
有些情況,使用 direct path 或 external tables,Data Pump 將不能把資料載入到一個表。當表的屬性存在衝突時,就會發生。例如,如果一個表包含一個 LONG 型別的欄位(它需要 direct path 訪問方法),但是有一個阻止 direct path 訪問的條件。此時,會產生一個 ORA-39242 錯誤。為了解決該問題,匯入前,建立 LOB 列的表。這樣,可以執行匯入,並使用值為 APPEND 或 TRUNCATE 的 TABLE_EXISTS_ACTION 引數。
參考資料
- Oracle 11g Release 1 (11.1) Documents-Oracle Data Pump http://docs.oracle.com/cd/B28359_01/server.111/b28319/part_dp.htm#CEGJCCHC