问题实验环境

操作系统:Red Hat Enterprise Linux Server release 5.7 (Tikanga)

数据库  :Oracle Database 10g Release 10.2.0.4.0 - Production

错误再现分析

在使用数据泵导数据时,遇到下面错误:

[oracle@gsp db_expd_bak]$ expdp system/xxxx   directory=dump_dir dumpfile=dm.dmp tablespaces=dm content=all;

Export: Release 10.2.0.4.0 - Production on Thursday, 29 August, 2013 21:38:44

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Release 10.2.0.4.0 - Production

ORA-31626: job does not exist

ORA-31637: cannot create job SYS_EXPORT_TABLESPACE_01 for user SYSTEM

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95

ORA-06512: at "SYS.KUPV$FT_INT", line 600

ORA-39080: failed to create queues "KUPC$C_1_20130829213845" and "KUPC$S_1_20130829213845" for Data Pump job

ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95

ORA-06512: at "SYS.KUPC$QUE_INT", line 1606

ORA-00832: no streams pool created and cannot automatically create one

造成ORA-00832:no streams pool created and cannot automatically create one错误的原因一般是streams_pool_size太小或没有定义streams_pool_size

A database feature which needs STREAMS SGA was being used, however, the streams_pool_size parameter was not defined and the value of db_cache_size was too small to permit an automatic transfer of SGA to the streams pool from the buffer cache.

Action: Please set the parameter streams_pool_size or set sga_target

SQL> show parameter streams_pool_size

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

streams_pool_size                    big integer 0

SQL>

由于STREAMS_POOL_SIZE一般在ASSM中是动态分配的,所以参数streams_pool_size一直为0,要查看streams_pool_size的真实大小就必须通过下面脚本来查询:

Code Snippet
  1. epps> col name for a36;
  2. epps> col value for a10;
  3. epps> col idfefault for a10;
  4. epps> col ismod for a10;
  5. epps> col isadj for a10;
  6. epps>SELECT X.ksppinm      name       ,
  7. 2         Y.ksppstvl     value      ,
  8. 3         Y.ksppstdf     idfefault  ,
  9. 4         DECODE(bitand(Y.ksppstvf,7), 1, 'MODIFIED', 4, 'SYSTEM_MOD', 'FALSE')  ismod,
  10. 5         DECODE(bitand(Y.ksppstvf,2), 2, 'TRUE', 'FALSE')  isadj
  11. 6  FROM sys.x$ksppi  X,
  12. 7       sys.x$ksppcv Y
  13. 8  WHERE X.inst_id = userenv('Instance') AND
  14. 9        Y.inst_id = userenv('Instance') AND
  15. 10        X.indx    = Y.indx              AND
  16. 11        X.ksppinm LIKE '%_streams%'
  17. 12  ORDER BY translate(X.ksppinm, '_', '');
  18. NAME                                 VALUE      IDFEFAULT  ISMODISADJ
  19. ------------------------------------ ---------- ---------- ---------- ----------
  20. __streams_pool_size                  0          TRUE       FALSEFALSE
  21. _memory_broker_shrink_streams_pool   900        TRUE       FALSEFALSE
  22. _disable_streams_pool_auto_tuning    FALSE      TRUE       FALSEFALSE
  23. _streams_pool_max_size               0          TRUE       FALSEFALSE

epps> show parameter sga

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

lock_sga                             boolean     TRUE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 3424M

sga_target                           big integer 0

epps>

查看streams_pool_size的实际大小,发现其大小为0,更让我吃惊的却在后面:sga_target 为0,也就是说数据库没有启动自动共享内存管理(Automatic Shared Memory Management ASMM)。真是绕了一大圈。所以必须手动调整streams_pool_size的大小:

epps> alter system set streams_pool_size=100M scope=memory;

alter system set streams_pool_size=100M scope=memory

*

ERROR at line 1:

ORA-02097: parameter cannot be modified because specified value is invalid

ORA-04033: Insufficient memory to grow pool

epps> alter system set streams_pool_size=1M scope=memory;

alter system set streams_pool_size=1M scope=memory

*

ERROR at line 1:

ORA-02097: parameter cannot be modified because specified value is invalid

ORA-04033: Insufficient memory to grow pool

因为SGA采用老的分配方式,没有采用ASSM管理SGA,需要从其它内存中释放一些内存出来分配给streams_pool_size,结合分析,最后从

shared_pool_size中分配32M出来给streams_pool_size。问题解决,另外一个解决方法就是讲sga_target设为非零。让SGA动态给streams_pool_size分配内存。

参考资料:

https://forums.oracle.com/thread/1062498?start=0&tstart=0

http://blog.itpub.net/post/2333/409664

http://blog.csdn.net/xiaofan23z/article/details/6767396

Expdp 导数错误 ORA-00832的更多相关文章

  1. EXPDP导数报ORA-00942案例

    使用数据泵(expdp)导数时遇到了ORA-31626 & ORA-00942 错误,数据库版本为Oracle Database 10g Release 10.2.0.5.0,具体错误如下所示 ...

  2. expdp报错ora 39126

    11.2.0.2,expdp报错: ORA-39126: Worker unexpected fatal error in KUPW$WORKER.GET_TABLE_DATA_OBJECTS []O ...

  3. expdp impdp 错误: ORA-39064: 无法写入日志文件 ORA-29285: 文件写入错误(解决方案)

    windows: 运行 -> regedit ->查找 键值 NLS_LANG 将字符集 SIMPLIFIED CHINESE_CHINA.ZHS16GBK 修改为AMERICAN_AME ...

  4. expdp错误案例

    转自:https://www.cnblogs.com/kerrycode/p/3960328.html Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一 ...

  5. Oracle数据泵(Data Dump)错误汇集

    Oracle数据泵(Data Dump)使用过程当中经常会遇到一些奇奇怪怪的错误案例,下面总结一些自己使用数据泵(Data Dump)过程当中遇到的问题以及解决方法.都是在使用过程中遇到的问题,以后陆 ...

  6. DataPump遭遇ORA-06512&ORA-39080&ORA-01403错误案例

    最近使用数据泵(DataPump)比较多,遇到了奇奇怪怪的问题,似乎Apply了补丁PSU 10.2.0.5.180717后,DataPump的问题就格外多.如下所示: expdp system/xx ...

  7. ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information

    这篇文章是上篇文章”Expdp 导数错误 ORA-00832”的延续,前几天工作比较忙.累,直到今天才整理发出来.这个数据库实例的参数设置比较诡异其实是有原因的,由于这台数据库服务器系统是32位,数据 ...

  8. ORACLE 博客文章目录(2015-05-27更新)

    从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理 ...

  9. ORACLE 博客文章目录(2015

    从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理 ...

随机推荐

  1. 【HBase】HBase Getting Started(HBase 入门指南)

    入门指南 1. 简介 Quickstart 会让你启动和运行一个单节点单机HBase. 2. 快速启动 – 单点HBase 这部分描述单节点单机HBase的配置.一个单例拥有所有的HBase守护线程- ...

  2. Excel基础

    一.基础 一个Excel文档称为工作簿(workbook).一个工作簿中可以包含多个工作表(sheet) ctrl+向右箭头  查看最后一列 ctrl+向下箭头 查看最后一行 二.合并单元格 三.等高 ...

  3. Linux:Ubuntu16.04下创建Wifi热点

    Linux:Ubuntu16.04下创建Wifi热点 说明: 1.Ubuntu16.04里面可以直接创建热点,而不用像以前的版本,还要其他辅助工具. 2.本篇文章转载自编程人生 具体步骤如下: 1.  ...

  4. 5分钟学会使用Less预编译器

    5分钟学会使用Less预编译器 Less是什么? LESS CSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法为CSS赋予了动态语言的特性,如变量.继承.运算.函数等,更方便 ...

  5. Spinner控件

    首先在XML文件中声明一个Spinner控件: <Spinner android:id="@+id/spinnerId" android:layout_width=" ...

  6. c++之字符型中的特殊字符回车符

    1.字符型的应用之强制类型转换: #include<iostream> using namespace std; int main() { ;i<;i++) { cout<&l ...

  7. .net 实现Office文件预览 Word PPT Excel 2015-01-23 08:47 63人阅读 评论(0) 收藏

    先打个广告: .Net交流群:252713569 本人QQ :524808775 欢迎技术探讨, 近期公司要求上传的PPT和Word都需要可以在线预览.. 小弟我是从来没有接触过这一块的东西 感觉很棘 ...

  8. using语法糖详解 2015-01-06 17:45 50人阅读 评论(0) 收藏

    前段事件在using外套try catch 突然想到,如果出现异常 会不会执行释放,不执行的话那服务器很可能导致崩溃... 特意上了CSDN问了大神..得到了答案.. Using相等于try catc ...

  9. Linux中解析json---jq

    遇到要在Linux上处理json的请求,换了熟悉的环境就抓瞎了,需要用心学习基础知识. jq官网:https://stedolan.github.io/jq   1.install   yum ins ...

  10. C#图片加水印实例与代码

    本文要提供的类可以为图片加文字水印,以及判断是否是图片文件.经过测试可运行,例子请下载:http://hovertree.com/h/bjaf/5qc5eh6y.htm 例子效果图: 以下是Hover ...