[Oracle] Data Pump 詳細使用教程

來源:互聯網
上載者:User

從10g開始,Oracle提供更高效的Data Pump(即expdp/impdp)來進行資料的匯入和匯出,老的exp/imp還可以用,但已經不建議使用。注意:expdp/impdp和exp/imp之間互不相容,也就是說exp匯出的檔案只能用imp匯入,expdp匯出的檔案只能用impdp匯入。 

通過expdp&impdp把11g的資料移轉到10g平台的要點

Oracle Data Pump使用範例及部分注意事項(expdp/impdp)

Oracle datapump expdp/impdp 匯入匯出資料庫時hang住

expdp/impdp做Oracle 10g 到11g的資料移轉

Data Pump的組成部分 Data Pump有以下三個部分組成:
  1. 用戶端工具:expdp/impdp
  2. Data Pump API (即DBMS_DATAPUMP)
  3. Metadata API(即DMBS_METADATA)
通常情況下,我們都把expdp/impdp等同於Data Pump,但從上面可以知道,實際上它只是Data Pump的一個組成部分,其實真正幹活的是兩個API,只是它們隱藏在後台,平時很少被注意,但如果出現一些莫名其妙的錯誤(如internal error等),通常是因為這兩個API損壞,跑指令碼重新編譯它們即可。 Data Pump相關的角色 預設情況下,使用者可以匯出/匯入自己schema下的資料,但如果要匯出/匯入其它schema下的資料,必須要把以下兩個角色賦予該使用者:
  • DATAPUMP_EXP_FULL_DATABASE
  • DATAPUMP_IMP_FULL_DATABASE
當然,sys,system賬戶和dba角色預設擁有以上兩個角色。 Data Pump資料匯入方法
  1. 資料檔案拷貝:這種是最快的方法,dumpfile裡只包含中繼資料,在作業系統層面拷貝資料檔案,相關參數有:TRANSPORT_TABLESPACES,TRANSPORTABLE=ALWAYS
  2. 直接路徑載入:這是除了檔案拷貝之外最快的方法,除非無法用(比如BFILE),否則都用這種方法
  3. 外部表格:第1,2種無法用的情況下,才會使用外部表格
  4. 傳統路徑載入:只有在以上所有方法都停用情況下,才會使用傳統路徑載入,這種方法效能很差  
Data Pump Job當執行expdp/impdp時,其實是起了job執行匯出匯入工作,一個Data Pump job由以下三部分組成:
  1. 主進程(master process):控制整個job,是整個job的協調者。
  2. 主表(master table):記錄dumpfile裡資料庫物件的元資訊,expdp結束時將它寫入dumpfile裡,impdp開始時讀取它,這樣才能知道dumpfile裡的內容。
  3. 背景工作處理序(worker processes):執行匯出匯入工作,根據實際情況自動建立多個背景工作處理序並存執行,但不能超過參數PARALLEL定義的個數。 
監控Job狀態在螢幕的輸出、logfile裡都能看到當前Data Pump Job的運行情況,在資料庫裡也可以查詢檢視 DBA_DATAPUMP_JOBS, USER_DATAPUMP_JOBS, or DBA_DATAPUMP_SESSIONS。對於時間比較長的Job,可以在動態視圖V$SESSION_LONGOPS查看當前Job完成情況以及預估多久能全部完成,具體欄位的意義如下: USERNAME - job owner
OPNAME - job name
TARGET_DESC - job operation
SOFAR - megabytes transferred thus far during the job
TOTALWORK - estimated number of megabytes in the job
UNITS - megabytes (MB)
MESSAGE - a formatted status message of the form:
'job_name: operation_name : nnn out of mmm MB done' 建立Directory Data Pump不像exp/imp可以在用戶端執行,它必須得在伺服器端執行,它產生的所有檔案都放在伺服器端,因此在Oracle裡必須得先建立directory對象,下面是一個例子: SQL> CREATE DIRECTORY dpump_dir1 AS '/usr/apps/datafiles'; 建立了directory對象之後,還要把讀寫權限賦給執行Data Pump的使用者,如下所示:SQL> GRANT READ, WRITE ON DIRECTORY dpump_dir1 TO hr;
  • 1
  • 2
  • 3
  • 下一頁
【內容導航】
第1頁:總覽 第2頁:expdp
第3頁:impdp

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.