ORA-39095: Dump file space has been exhausted: Unable to allocate 8192 bytes Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" stopped due to fatal error at 13:34:40
expdp時parallel不當也會引起ORA-39095 2008-09-24 15:01
在expdp做導出的時候會有碰到ora-39095的錯誤,引起這個錯誤的原因有兩種。一一說來 先看官方的解釋: ORA-39095: Dump file space has been exhausted: Unable to allocate string bytes Cause: The Export job ran out of dump file space before the job was completed. Action: Reattach to the job and add additional dump files to the job restarting the job. 從字面意思就解釋了第一種原因,那就是:空間不夠了。解決方法也簡單,多來點空間。 還有第二中原因:當使用了PARALLEL但是dumpfile卻只有一個或小于parallel數,下面是官方的說明:
Oracle? Database Utilities 10g Release 2 (10.2) 2 Data Pump Export PARALLEL=integer The value you specify for integer should be less than, or equal to, the number of files in the dump file set (or you should specify substitution variables in the dump file specifications). Because each active worker process or I/O server process writes exclusively to one file at a time, an insufficient number of files can have adverse effects. Some of the worker processes will be idle while waiting for files, thereby degrading the overall performance of the job.(第一個原因是影響性能) More importantly, if any member of a cooperating group of parallel I/O server processes cannot obtain a file for output, then the export operation will be stopped with an ORA-39095 error. (ora-39095的成因)Both situations can be corrected by attaching to the job using the Data Pump Export utility, adding more files using the ADD_FILE command while in interactive mode, and in the case of a stopped job, restarting the job. 說白話點就是:parallel io server processes寫文件不能同時寫一個,如果只有一個dumpfile(或少于parallel)就會影響性能。不但如此,當一個io server process在等待從而不能寫dumpfile的時候就會報ora-39095 要解決:expdp ATTACH 連上作業然后減少parallel或者增加dumpfile 從起源解決的話就是:指定parallel的時候就要指定至少同樣多的dumpfile或者使用類似下面的命令(注意紅字): expdp hr/hr DIRECTORY=dpump_dir1 LOGFILE=parallel_export.log JOB_NAME=par4_job DUMPFILE=par_exp%u.dmp PARALLEL=4