有關Data Pump的學習

orchidllh發表於2005-04-25

Data Pump:簡介
1、進行資料和後設資料遷移的伺服器端工具
2、通過DBMS_DATAPUMP呼叫
3、提供新一代的匯入匯出工具:EXPDP、IMPDP、基於WEB的介面
4、原有的exp和imp工具的超集。


Data Pump Export and Import: 簡介
這兩個工具是oracle10g資料庫的新工具。雖然他們的功能和原來的exp和imp工具很類似,但是他們是單獨的產品。
匯出工具用來匯出資料和後設資料到一系列作業系統檔案成為dump檔案集。匯入工具用來將儲存在匯出的dump檔案集中的資料和後設資料匯入到目標系統。
data pump API在伺服器端訪問檔案而不是在客戶端。
這個工具也可以被用來從遠端資料庫目錄匯出到dump檔案集,或者使用配製檔案從原資料庫匯入到目標資料庫目錄。成為網路方式,這個方式對於只讀的資料來源特別有效。
每個匯入匯出操作的核心是控制表(MT),這是在執行匯入匯出作業的時候建立的。管理這個作業的所有資訊。
MT在基於檔案的到處作業期間生成,並作為最後一步操作寫到dump檔案中。相反的,載入MT到當前使用者是基於檔案的匯入操作的第一步,被用來決定匯入時建立所有物件的次序。
備註:MT是資料匯入匯出正常或異常中止時重啟服務的關鍵。正常情況下在匯入匯出作業完成之後刪除。

Data Pump Export and Import: 優點
Data Pump自動決定使用的資料獲取的方法:直接路徑獲取或者外部表的方式。
可以重啟Data Pump操作。
可以使用EXCLUDE, INCLUDE, and CONTENT引數限制物件的選擇。
可以為遷移的物件定義資料庫版本(使用VERSION引數),這個引數是為將來的版本保留的。
可以使用PARALLEL引數定義最大數量的活躍的執行緒。
可以使用ESTIMATE_ONLY引數統計將會使用多少空間,而不必實際到處資料。
網路方式允許從遠端資料庫匯出直接匯入到dump檔案集,通過使用源資料庫的dblink實現。
在匯入期間,可以修改目標資料檔案的檔名、模式和表空間等。

Data Pump 檔案位置
有三種型別的檔案通過Data Pump管理:
 DUMP檔案包含遷移的資料和後設資料
 LOG檔案記錄與操作相關的資訊。
 SQL檔案記錄匯出的SQLFILE操作。
因為Data Pump是基於server端而不是基於客戶端的,所以Data Pump檔案是指對oracle目錄的相對路徑,由於安全原因不支援絕對路徑。
可以單獨定義每個dump檔案、日誌檔案和sql檔案的位置,如果單獨定義,則通過(:)分隔目錄和檔名。
使用Data Pump匯入匯出客戶端提供的DIRECTORY引數。
可以使用環境變數DATA_PUMP_DIR定義目錄物件,而不是使用DIRECTORY引數,如果沒有直接的指定目錄就會到環境變數中查詢該環境變數。
備註:以上每一種情況中,都必須有足夠的作業系統許可權,對於匯出操作,需要對所有檔案的寫許可權,對於匯入操作,需要對dump檔案的讀許可權和對日誌檔案和sql檔案的寫許可權。

Data Pump檔案的命名和大小
DUMPFILE引數定義dump檔案的名字和目錄(可選),多個檔案,之間需要用逗號分割或者使用分別的DUMPFILE引數定義。檔名可以包含變數%U。%U暗示會產生多個檔案,%U代表從01開始的兩位的自動增長的數量。如果沒有定義這個引數,預設使用expdat.dmp,預設情況下,建立的匯出檔案時自動擴充套件的。
如果定義了FILESIZE,每個檔案大小都是FILESIZE,且不能擴充套件。如果需要更多的dump空間且提供使用%U引數,則新檔案自動產生,大小是FILESIZE。否則客戶端將收到一個提示增加新檔案。如果定義了%U引數,則檔案的初始數量等於PARALLEL引數。
先前存在的檔案不會被覆蓋,會提示錯誤然後任務結束。


Data Pump工具的介面和模式
介面:
1、命令列方式允許定義大部分的匯出引數。
2、引數檔案方式可以定義所有的命令列可以使用的引數,唯一的例外是PARFILE引數。
3、互動式命令列可以在登陸後提示,可以錄入不同的命令,這個方式在命令列方式和引數檔案方式執行時可以通過Ctrl+C切換到互動方式。對於一個正在執行的任務和已經停止的任務同樣可以使用互動式的命令。
4、可以使用web介面的方式,從資料庫控制頁面進行操作。

模式:
.完全
.使用者
.表
.表空間
.傳輸表空間

Data Pump 過濾
以前的imp和exp工具可以選擇包括或者不包括索引、觸發器、grant、約束等,新的匯入匯出操作可以選擇包括或者不包括實際存在的任何物件。
eg:
 EXCLUDE=VIEW
 EXCLUDE=PACKAGE
 EXCLUDE=INDEX:"LIKE ’EMP%’"
不包含所有的檢視,包和所有開頭三個字母是EMP的索引。

CONTENT引數用來設定匯入匯出資料、後設資料還是都需要。
eg:
CONTENT = ALL | METADATA_ONLY | DATA_ONLY

QUERY引數的操作與原來的expimp引數類似,有兩個完美的提高:可以查詢表名,只用於表,且同樣可以在匯入的時候使用。

備註:
EXCLUDE和INCLUDE引數不能同時使用,當指定CONTENT=DATA_ONLY的時候,無論EXCLUDE還是INCLUDE都不能使用。

Data Pump Import 轉換
因為物件後設資料儲存成XML格式,所以在匯入的時候很容易修改,匯入時支援若干種轉換:
REMAP_DATAFILE用來在不同的檔案系統的平臺間遷移資料。
REMAP_TABLESPACE允許物件從一個表空間移動到另一個表空間。
REMAP_SCHEMA提供了原來的FROMUSER /TOUSER作用,改變物件的擁有者。
TRANSFORM引數,可以定義儲存子句,對於目標資料庫有特別的儲存特性的操作特別有效。

eg:
REMAP_DATAFILE = ’C:oradatatbs6.f’:’/u1/tbs6.f’
TRANSFORM = SEGMENT_ATTRIBUTES|STORAGE:{y|n}[:TABLE|INDEX]

Data Pump 任務監控檢視
DBA_DATAPUMP_JOBS:標示所有活躍的資料匯入匯出操作(不管狀態)。同時顯示所有的MT表的資訊。可以使用任務的資訊查詢到活躍的任務然後停止任務、改變並行性,或者監控程式。可以使用MT表的資訊,重啟或者停止一個任務或者刪除任何不再需要的MT表。
DBA_DATAPUMP_SESSIONS:標示用於該任務的使用者程式。
V$SESSION_LONGOPS:在該動態檢視中包含了對資料傳輸的登記,包括傳輸的大小並週期性的更新實際的數量傳輸。
備註:如果你沒有標示任務名稱,任何時候使用不同的介面匯入匯出,會自動生成一個唯一的名字。使用___%N格式,依賴於操作執行的型別和範圍。


 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/51862/viewspace-180636/,如需轉載,請註明出處,否則將追究法律責任。

相關文章