轉 EXPDP ORA-39095 ORA-3909 錯誤

今天幫同事在測試庫上導出兩張表,第一張表大小爲30M,第二章表大小爲7G,如下是expdp語法
expdp tranuser/******** parallel=4 content=data_only directory=my_job dumpfile=wuqi02.dmp job_name=wuqi02 tables=(table_name)
第一張表很簡單的導出完畢了,可是導出第二張表的時候則報錯,報錯內容以下
;;; 
Export: Release 11.2.0.1.0 - Production on Fri May 13 13:40:01 2011
 
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
;;; 
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "TRANUSER"."WUQI02":  tranuser/******** parallel=4 content=data_only directory=my_job dumpfile=wuqi02.dmp job_name=wuqi02 tables=(BOND_CB_YIELD_CUR_F) 
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 7.062 GB
ORA-39095: Dump file space has been exhausted: Unable to allocate 8192 bytes
Job "TRANUSER"."WUQI02" stopped due to fatal error at 13:40:20
Job WUQI02 has been reopened at Friday, 13 May, 2011 13:44 
Restarting "TRANUSER"."WUQI02":  tranuser/******** parallel=4 content=data_only directory=my_job dumpfile=wuqi02.dmp job_name=wuqi02 tables=(BOND_CB_YIELD_CUR_F) 
ORA-39097: Data Pump job encountered unexpected error -39079
ORA-39065: unexpected master process exception in DISPATCH
ORA-39079: unable to enqueue message RP,KUPC$C_1_20110513134453,MCP,KUPC$A_1_20110513134602,1,Y
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.KUPC$QUE_INT", line 965
ORA-24033: no recipients for message
ORA-39065: unexpected master process exception in SEND
ORA-39079: unable to enqueue message RP,KUPC$C_1_20110513134453,MCP,KUPC$A_1_20110513134602,1,Y
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.KUPC$QUE_INT", line 965
ORA-24033: no recipients for message
Job "TRANUSER"."WUQI02" stopped due to fatal error at 13:46:03
Job WUQI02 has been reopened at Friday, 13 May, 2011 13:53 
ORA-39012: Client detached before the job started.
Job "TRANUSER"."WUQI02" stopped due to fatal error at 14:13:31
 
經過在網上查找相關的解決文檔,我發現我此次的報錯分爲兩個, 一個是ORA-39095,另外一個是ORA-39097,下面讓咱們來解決一下這個兩個報錯。
 
1:解決ORA-39095報錯,出現該報錯的緣由通常分爲兩種狀況。
第一種狀況是由於在expdp的時候給才轉儲空間過小,數據沒法寫入轉儲文件內,因此報錯,這種報錯很好解決,只須要進入交互模式下,能夠用add_file來增長轉儲文件,而後restart該job便可。
 
第二種狀況則是由於設置參數parallel大於轉儲文件數目引發的,官方文檔的解釋是 parallel io server processes寫文件不能同時寫一個,若是隻有一個dumpfile(或少於parallel)就會影響性能。不但如此,當一個io server process在等待從而不能寫dumpfile的時候就會報ORA-39095
解決該問題一共兩種辦法
1:進入到交互模式,減小parallel的數量,使其等於dmp文件的數量或 增長dmp文件,使其與parallel數量相等。
2:在寫導出語句的時候指定 dumpfile中使用變量 %u(大小寫都可),讓其自由分配轉儲文件便可。
相關文章
相關標籤/搜索