1. 程式人生 > >EXPDP/IMPDP 中的並行度PARALLEL引數 (並行)

EXPDP/IMPDP 中的並行度PARALLEL引數 (並行)

如果設定 EXPDP parallel=4 必須要設定4個EXPDP檔案,不然PARALLEL是有問題的,同時EXPDP會使用一個WORKER程序匯出METADATA,其他WORKER程序會同時出資料,如果EXPDP作業很於250M 只會啟動一個WORKER程序如果是500M會啟動2個,1000M及會啟動4個WOKER程序,一般來說加上%U來設定多個檔案。
而IMPDP有所不同,會先啟動一個WOKER程序METADATA匯入,然後啟動多個WORKER程序匯入,所以再前期只會看到WOKER在匯入METADATA,而且IMPDP如果PARALLE=4也需要>=4個DMP檔案,也可以使用%U來進行匯入。
nohup expdp system/****  PARALLEL=2 JOB_NAME=full_bak_job full=y dumpfile=exptest:back_%U.dmp logfile=exptest:back.log &
impdp system/*** PARALLEL=2 EXCLUDE=STATISTICS JOB_NAME=full_imp cluster=no full=y dumpfile=test:back_%U.dmp  logfile=test:back_imp.log;

而在11GR2後EXPDP 和 IMDP的WORKER程序會在多個INSTANCE啟動,所以DIRECTORY必須在共享磁碟上,如果沒有設定共享磁碟還是指定cluster=no 來防止報錯。

-----------

1) 對於匯出的parallel
對於匯出來說,由於dump檔案只能由一個執行緒進行操作(包括I/O處理),因此如果輸出的DUMP檔案只有一個,即使你指定再多的並行,實際工作仍然是一個,而且還會觸發ORA-39095錯誤。因此,建議設定該引數小於或等於生成的DUMP檔案數量。那麼,如何控制生成的DUMP檔案數量呢?
EXPDP 命令提供了一個FILESIZE引數,用來指定單個DUMP檔案的最大容量,要有效的利用parallel引數,filesize引數必不可少。
舉 例:某使用者物件佔用了4G左右的空間,實際匯出後的DUMP檔案約為3G,我們嘗試在匯出該使用者時指定並行度為4,設定單個檔案不超過500M,則語法如下:
$ expdp user/pwd directory=dump_file dumpfile=expdp_20100820_%U.dmp logfile=expdp_20100820.log filesize=500M parallel=4


2) 對於匯入的parallel
對於匯入來說,使用parallel引數則要簡單的多,我認為匯入更能體現parallel引數的優勢。 引數設定為幾,則認為同時將幾張表的內容匯入到庫中。
舉例:某dmp檔案中包含了200張表,我們嘗試在匯入該DMP檔案時指定並行度為10,則語法如下:
$ impdp user/pwd directory=dump_file dumpfile=expdp_20100820.dmp logfile=impdp_20100820.log parallel=10

----------------------------------------

    查詢CPU個數: cat /proc/cpuinfo |grep "processor"|wc -l 


http://blog.csdn.net/u011687186/article/details/53285307