1、expdp导出日志报错如下:
ORA-39014: One or more workers have prematurely exited. ORA-39029: worker 2 with process name "DW01" prematurely terminated ORA-31671: Worker process DW01 had an unhandled exception. ORA-39079: unable to enqueue message DG,KUPC$C_2_20161117180443,KUPC$A_2_194724682440000,MCP,139564,Y ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86 ORA-06512: at "SYS.KUPC$QUE_INT", line 969 ORA-23603: Streams enqueue aborted due to low SGA ORA-06512: at "SYS.KUPW$WORKER", line 1887 ORA-06512: at line 2 Job "LTBAK"."SYS_EXPORT_FULL_01" stopped due to fatal error at Fri Nov 18 07:27:19 2016 elapsed 0 13:22:31 |
2、查看alert日志,发现错误如下:
Fri Nov 18 07:25:40 2016 DW00 terminating with fatal err=39079, pid=117, wid=1, job LTBAK.SYS_EXPORT_FULL_01 Fri Nov 18 07:26:16 2016 DW06 started with pid=56, OS id=13383, wid=3, job LTBAK.SYS_EXPORT_FULL_01 Fri Nov 18 07:27:00 2016 DW01 terminating with fatal err=39079, pid=52, wid=2, job LTBAK.SYS_EXPORT_FULL_01 |
3、查看ora-39097错误原因
[oracle@node2 ~]$ oerr ora 39079 39079, 00000, "unable to enqueue message %s" // *Cause: The Data Pump's communication layer was unable to send the // specified message on the control or status queue. Subsequent // messages will detail the problem. // *Action: Fix the problem if possible, or contact Oracle Customer Support. |
以上是从数据库上收集到的报错信息,究竟是什么原因导致expdp对数据库的全备份异常终止的呢?
以下内容来源于网络:
SYMPTOMS DataPump fails with errorstack similar to the following: ORA-39014: One or more workers have prematurely exited. The important errors here are the ORA-39014 and ORA-39079. The DataPump utility uses Streams in the background and if the Streams memory pool is not large enough, it can result in this error stack. col bytes format 999,999,999,999 If using auto-tuning in the SGA, you may find the memory manager is having difficulty moving memory to satisfy memory needs in the Streams Pool. set lines 200 Look for STATUS showing up as ERROR or DEFERRED. This can mean that SGA_TARGET is too small to meet all SGA memory needs. This can also indicate that minimum sizes (explicit settings) are not included in the spfile, so under stress the auto-tuner could get too aggressive moving memory inside the SGA. SOLUTION Increase the memory allocated in the streams_pool_size to resolve this issue. If using auto-tuning a higher value for streams_pool_size will act a higher minimum value and keep the memory tuner from shrinking the Streams Pool too small for workload. |
DataPump export on one certain RAC instance fails with errors: |
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(大小写均可),让其自由分配转储文件即可。 2:解决ORA-39097报错 该报错我并没有查找到根本的原因,去metalink上看到有解决办法,则是加大streams_pool_size即可,导出恢复正常 alter system set streams_pool_size = 48M; |
EXPDP/IMPDP进行Oracle数据迁移从高版本(11g)到底版本(10g)步骤 Oralce数据导入 可能产生的错误 ORA-39095: Dump file space has been exhausted: Unable to allocate 8192 bytes expdp时parallel不当也会引起ORA-39095 在expdp做导出的时候会有碰到ora-39095的错误,引起这个错误的原因有两种。一一说来 Oracle? Database Utilities |
根据expdp输出日志的分析和网络资料的分析,估计是跟内存或job相关的参数设置有关?那么我首先检查一下相关初始化参数吧!
SQL> show parameter sga NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 3008M sga_target big integer 3008M SQL> show parameter pga NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ pga_aggregate_target big integer 998M SQL> show parameter stream NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ streams_pool_size big integer 0 SQL> show parameter aq NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ aq_tm_processes integer 1 |
根据以上结果我们发现内存管理方式采用了自动管理,aq_tm_processes参数值大于0。更改必要参数:
SQL> create pfile='/u01/app/oracle/admin/ltdb/pfile/pfile161118.ora' from spfile; File created. SQL> alter system set aq_tm_processes=10 scope=both sid='*'; System altered. SQL> alter system set streams_pool_size=48m scope=spfile sid='*'; System altered. |
SQL> show parameter sga NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 3008M sga_target big integer 3008M SQL> show parameter pga NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ pga_aggregate_target big integer 998M SQL> show parameter aq NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ aq_tm_processes integer 10 SQL> show parameter streams NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ streams_pool_size big integer 48M |