Expdp/Impdp 并行导入导出详细测试
生活随笔
收集整理的這篇文章主要介紹了
Expdp/Impdp 并行导入导出详细测试
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
關于Expdp/Impdp 并行導入導出詳細測試結果和并行參數(shù)的正確理解!!
導出環(huán)境 4CPU AIX P4 -750M??16G 內存
導入環(huán)境 4CPU AIX P6-4G 32G 內存 4CPU可以虛擬出16個線程來,可以看到16個虛擬的CPU
存儲都是一樣的DS4300 24塊146G 15K ,都是使用裸設備,單機導入
導出測試
導出腳本,只修改PARALLEL=3的數(shù)字,導入相同
nohup expdp system/manager schemas=kdjm DIRECTORY=DUMP_FILES PARALLEL=3 dumpfile=KDJM2008-11-28_%U.dmp logfile=nnsiexp2008_12_28.log&
導出時間成績
1個并行文件 1:05
2個并行 0:56:36
3個并行 0:30:41?
4個并行 0:51
6個并行 1:21
注意到?jīng)]有,不是什么數(shù)量的并行值都能快速的導出,期間使用sar -ud 5 1000,監(jiān)控磁盤I/O情況,發(fā)現(xiàn)在最快的3個管道的時侯I/O等待為40-50,1個管道的時侯I/O等待只有5-10個,6個管道的時侯是70-80的I/O等待,因此我認為無論是那種平臺導出要想更快,一定要壓榨I/O的能力,盡量使i/o等待在30-50之間,太多了I/O能力反而可能下降,看來在這個平臺上,3個管道是最好的呵呵,導出時的PARALLEL應該是指生成的數(shù)據(jù)文件過程的I/O進程數(shù),如果指定了%U參數(shù),也將是文件數(shù)。?
導入時間:
導入腳本
nohup impdp system/manager schemas=kdjm DIRECTORY=DUMP_FILES PARALLEL=12 dumpfile=KDMJ2008-12-11_%U.dmp logfile=KDMJ2008-12-11.log&
導入時ORACLE參數(shù)配置,導出時好像配啥參數(shù)都沒有效果呵呵
alter system set db_file_multiblock_read_count=256 scope=spfile;
alter system set pga_aggregate_target=4G scope=spfile;
alter system set shared_pool_size=4G scope=spfile;
alter system set db_cache_size=18G??scope=spfile;
alter system set sga_max_size=24G scope=spfile;
alter system??set sga_target=24G scope=spfile;
alter system??set??processes=400 scope=spfile;
排序區(qū)=1.5G?
alter system??set sort_area_size=1610612736 scope=spfile;
導入耗時成績
1個并行,1個導入文件 11:27:21
4個并行,4個導入文件6:12:32
8個并行,4個導入文件4:42:45
12個并行,3個導入文件3:42:27
14個并行,3個導入文件4:40:13
16個并行,2個導入文件4:39:07
看到?jīng)]有,導入選擇合理的參數(shù),從11個多小時降到3小時多一點,差異非常巨大,這樣的差距,盡量在導入的時侯壓榨I/O的壓力,是說不通的。事實上到了導入后半程,SAR監(jiān)控到的I/O壓力并不大,是什么影響了導入的速度?我看到一個出錯的語句幫助我解開了這個秘密,這個出錯的語句是創(chuàng)建索引的語句
這是出錯的語句,應該是開發(fā)錯誤地將創(chuàng)建索引的表空間指到了SYSAUX,從而導致出錯了,注意最后的PARALLEL 8
ORA-31685: Object type INDEX:"DBSNMP"."DK_WERR" failed due to insufficient privileges. Failing sql is:
CREATE INDEX "DBSNMP"."DK_WERR" ON "KDMJ"."DK_WERR" ("SCY", "AWERR") PCTFREE 10 INITRANS 2 MAXTRANS 255??STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSAUX" PARALLEL 8?
這個出錯,讓我們知道導入時指定PARALLEL值實際是用在創(chuàng)建索引的并行度上的,所以導入的時侯選擇較高的并行度是可以大幅度提高創(chuàng)建索引的速度,從而加快了導入的速度。其實從導入數(shù)據(jù)來看,無論你選擇多少個并行值,都是在1個小時左右數(shù)據(jù)就全部導入了,這時查詢數(shù)據(jù)能查詢到,但是沒有索引,無論那種導入方式浪費時間,最多都是創(chuàng)建索引的時間,我們修改創(chuàng)建索引的并行度,使創(chuàng)建索引的速度大大增加了,當然增加到更多的值,會產生的I/O和鎖之類的競爭,從而導致速度下降了,我們看到14個并行值和16個并行值還不如12個的,另外要特別指出一點,導入的時侯PARALLEL值和導出時的PARALLEL值可以完全不同的,估計好多人和我以前的理解一樣,認為導入導出的數(shù)量要嚴格相等的,但是手冊推薦導入數(shù)量要等于導出的數(shù)量罷了。
如果要給導入一個合理的PARALLEL值,通過測試,我認為是可用的CPU數(shù)(不管你是虛擬的還是多核的)的60-70%左右的值是一個比較好的值。當然如果有可能還是測試一下來決定一個最優(yōu)的值吧。
總結
以上是生活随笔為你收集整理的Expdp/Impdp 并行导入导出详细测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 议rman的crosscheck和obs
- 下一篇: 怎样使用DBMS_OUTPUT.PUT_