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.
ORA-39029: worker 1 with process name "DW01" prematurely terminated
ORA-31671: Worker process DW01 had an unhandled exception.
ORA-39079: unable to enqueue message DG,KUPC$C_1_20071030223003,KUPC$A_1_20071030223013,MCP,8473,Y
ORA-06512: at "SYS.KUPW$WORKER", line 1342
ORA-06512: at line 2
Job "SYS"."SYS_EXPORT_FULL_01" stopped due to fatal error at 00:44:51
ORA-39014: One or more workers have prematurely exited.
CAUSE

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.
Use a queries below to investigate memory usage and settings

col bytes format 999,999,999,999
select * from v$sgastat where pool='streams pool';select * from v$sgainfo;

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
col component format a20
col initial_size format 999,999,999,999
col finish_size format 999,999,999,999
col target_size format 999,999,999,999
select to_char(end_time, 'dd-MON-yyyy hh24:mi:ss') end_time,
component, initial_size, target_size,
final_size, status
from v$sga_resize_ops
order by end_time;

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:
ORA-39006: internal error
ORA-39065: unexpected master process exception in DISPATCH
ORA-39079: unable to enqueue message DG,KUPC$S_2_20090927001645,MCP, ,1,Y
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 86
ORA-06512: at "SYS.KUPC$QUE_INT", line 924
ORA-25306: Cannot connect to buffered queue's owner instance
The AQ_TM_PROCESSES instance parameter has been set to 0
Advanced Queueing is required by Datapump. As such the AQ_TM_PROCESSES parameter must have a value > 0 for EXPDP to succeed.

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
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

根据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

expdp全库备份rac数据库因错误终止的更多相关文章

  1. MySQL 採用Xtrabackup对数据库进行全库备份

    1,xtrabackup简单介绍 关于数据库备份以及备份工具.參考:http://blog.itpub.net/26230597/viewspace-1460065/,这里来介绍xtrabackup已 ...

  2. Percona备份mysql全库及指定数据库(完整备份与增量备份)

    Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份) Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对I ...

  3. MySQL 采用Xtrabackup对数据库进行全库备份

    1,xtrabackup简介 关于数据库备份以及备份工具,参考:http://blog.itpub.net/26230597/viewspace-1460065/,这里来介绍xtrabackup已经如 ...

  4. LINUX学习笔记——LINUX下EXP命令全库备份数据库文件

    LINUX下EXP命令全库备份数据库文件 1)建立备份目录,目录操作权限授权给Oracle用户 mkdir /backup  --创建backup文件夹 cd  /   --进入cd语句 ls  -l ...

  5. 通过Xtrabackup实现MySQL实例的全库备份与按需单库恢复

    在实际的生产环境中,为了管理方便,我们一般是通过 Xtrabackup实现实例的全库备份,即将实例上的所有数据库备份. 但是,考虑到快速恢复 我们常常面临的需求是快速还原单个数据库.针对初学者来说,网 ...

  6. MySQL用全库备份数据恢复单表数据

    备份数据库时,采用了全库备份,但是因为某些原因需要回滚一个表的数据到备份数据库上,如果回滚整个库就比较费时间,因为可能这个表只有几十M,但是其它表可能有十几上百G,这时候就需要将需要恢复的表提取出来了 ...

  7. 从MySQL全库备份中恢复某个库和某张表【转】

    从MySQL全库备份中恢复某个库和某张表 一.全库备份-A [root@mha2 backup]#mysqldump -uroot -p123456 --default-character-set=u ...

  8. 从MySQL全库备份中恢复某个库和某张表

    在Mysqldump官方工具中,如何只恢复某个库呢? 全库备份 [root@HE1 ~]# mysqldump -uroot -p --single-transaction -A --master-d ...

  9. 从mysql全库备份中恢复指定库和指定表

    需求:开发要求导入某天某个表的数据,而我们的数据是全库备份 例如:  从newbei_2017-08-31_402793782.tar.bz2中恢复表:bei_table 的数据 一.备份策略 备份全 ...

随机推荐

  1. 网络协议之socks---子网和公网的穿透

    http://www.cnblogs.com/imyijie/p/4595889.html

  2. xpath的数据和节点类型以及XPath中节点匹配的基本方法

    XPath数据类型  XPath可分为四种数据类型:  节点集(node-set)  节点集是通过路径匹配返回的符合条件的一组节点的集合.其它类型的数据不能转换为节点集.  布尔值(boolean)  ...

  3. ChemDraw 16最新版本发布 更效率科研的首选

    ChemDraw一直是全球领先的科学绘图软件,致力于为科学家.教师以及学生提供最新的智能应用程序.ChemDraw 16版本相较于15版本做出了较大的改进,大大缩短科研时间,提高科研效率.扩展Name ...

  4. VC++ 操作Windows快捷方式

    声明:本文是参考网友博文,然后自己实践整理所得,转载请注明出处! Windows的快捷方式实际上是一个带有扩展名LNK的数据文件,其中包含有用于访问Windows某一对象(即在资源管理器中所能浏览的所 ...

  5. WPF 跟踪命令和撤销命令(复原)

    WPF 命令模型缺少一个特性是复原命令.尽管提供了一个 ApplicationCommands.Undo 命令,但是该命令通常被用于编辑控件(如 TextBox 控件),以维护它们自己的 Undo 历 ...

  6. windows平台的游戏运行库

    每一个都在PC上玩过游戏的人,都知道要安装一些必备的游戏运行库,游戏才能运行,这里指的PC是特指Windows操作系统平台.一般来说最常见的运行库是DirectX.Microsoft Visual C ...

  7. GIS-007-Terrain跨域访问

    方法一: 在数据服务目录中添加一个Web.config文件,文件内容是: <?xml version="1.0" encoding="UTF-8"?> ...

  8. linux--解决oracle sqlplus 中上下左右backspace不能用

    1.  解决不能backspace 方法1: stty erase ^h 在oracle用户下:在用户环境配置文件.bash_profile中加入如下语句 stty erase ^h 方法2:在sec ...

  9. linux解压和压缩

    1.压缩命令: 命令格式:tar  -zcvf   压缩文件名.tar.gz   被压缩文件名 可先切换到当前目录下.压缩文件名和被压缩文件名都可加入路径. 2.解压缩命令: 命令格式:tar  -z ...

  10. js中replace()方法

    str.replace(/Microsoft/g, "W3School");//全局替换 str.replace(/Microsoft/, "W3School" ...