impdp ORA-39014 One or more workers have prematurely exited


同事進行數據導入時報錯,簡單記錄之。

 

1、impdp導入數據時報錯,錯誤信息如下所示:

ORA-39014: One or more workers have prematurely exited.

ORA-39029: worker 7 with process name "DW0M" prematurely terminated

ORA-31684: Object type PROCEDURE:" ADM"."AAAAA" already exists

從報錯信息可以看出,並行導入的進程(worker 7)遇到錯誤退出,錯誤原因是ORA-31684: Object type PROCEDURE:" ADM"."AAAAA" already exists。正常情況下,如果是一個干凈的環境,導入數據時,不可能報object already exists這種錯誤。

 

2、導入腳本如下所示:

DIRECTORY=dpdir

LOGFILE=impdp_adm_20211101.log

cluster=n

dumpfile=expdp_adm_%U.dmp

parallel=8

JOB_NAME=impdp_adm

導入腳本中沒有特殊的參數,但開了並行,也即使用了parallel參數。上面的那個ORA-31684: Object type PROCEDURE:" ADM"."AAAAA" already exists錯誤,懷疑是impdp的並行進程重復做了相同的事。

 

3、讓同事在impdp時去掉parallel參數,過一段時間后,反饋導入成功。說明這個問題就是由parallel參數導致。

 

4、搜索MOS,找到文檔:Errors ORA-39014 ORA-39029 ORA-31672 On DataPump Import (Doc ID 464082.1),文中提到:

The parallelism (specified with parameter PARALLEL) should be less than or equal to the number of dump files in the dump file set. If there are not enough dump files, the performance will not be optimal because multiple threads of execution will be trying to access the same dump file.

在這個案例中,源庫導出時使用了parallel=8,而目標庫導入時指定的parallel也為8,但報錯,即使把parallel改為4也報錯,說明不是這個文檔中涉及的情況。

 

5、MOS上關於expdp或impdp時報ORA-39014 ORA-39029的BUG還挺多的,但涵蓋19.12版本的BUG很少,只找到Bug30477767 - ORA-02095 And Worker Crashes During Import When Using Parallel Parameter (Doc ID 30477767.8)。在MOS上看不到這個BUG的細節,也無法最終確認。

 

6、最終只能讓同事在impdp時去掉parallel參數,作為這個CASE的workaround。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM