ITPub博客

首页 > 数据库 > Oracle > stream_pool不足导致expdp失败案例分析

stream_pool不足导致expdp失败案例分析

原创 Oracle 作者:a960549548 时间:2024-04-17 15:28:44 0 删除 编辑

本次故障现象:

Expdp逻辑备份异常中断报错如下:

UDE-31623: operation generated ORACLE error 31623
ORA-31623: a job is not attached to this session via the specified handle
ORA-06512: at "SYS.DBMS_DATAPUMP", line 3326
ORA-06512: at "SYS.DBMS_DATAPUMP", line 4551
ORA-06512: at line 1

其中数据库alert报错如下:

Errors in file /oracle/diag/rdbms/wxboss/wxboss/trace/wxboss_ora_16385.trc  (incident=42273):
ORA-04031: unable to allocate 56 bytes of shared memory ("streams pool","unknown object","streams pool","fixed allocation callback")
Incident details in: /oracle/diag/rdbms/wxboss/wxboss/incident/incdir_42273/wxboss_ora_16385_i42273.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.

原因分析:

ORA-04031: unable to allocate 56 bytes of shared memory,一目了然的报错,stream pool 由于无法分配空间导致expdp导出报错,我们知道从expdp数据泵开始oracle通过Advanced Queue队列来控制其job作业的启动、停止和重启了,而streams pool的内存不能正常获取使得oracle的队列无法正常工作,所以导致expdp报错。


处理操作过程:

检查了v$sga_resize_ops情况

SQL>select COMPONENT,OPER_TYPE,OPER_MODE,INITIAL_SIZE,FINAL_SIZE,STATUS,START_TIME from v$sga_resize_ops
COMPONENT             OPER_TYPE  OPER_MODE INITIAL_SIZE FINAL_SIZE STATUS    START_TIE
--------------------  ---------- --------- ------------ ---------- --------- ---------
DEFAULT buffer cache  SHRINK     IMMEDIATE   2.6172E+10 2.6038E+10 ERROR     01-JUN-14

大量的buffer cache resize 失败的情况,导致stream pool无法正常GROW

原本来说这是一次很简单的处理过程,但是在调整过程中却发现无法正常的分配内存给

SQL> alter system set streams_pool_size=1G scope=both;
alter system set streams_pool_size=1G scope=both
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-04033: Insufficient memory to grow pool

修改参数需要重启后生效

在数据库无法重启的情况下处理如下:

业务空闲时段手工resize了db_cache_size的大小通过alter system set db_cache_size=28G 

将db_cache_size的最小值从之前的30Gresize到了28G

此时我们发现 expdp可以正常工作,检查v$sga_resize_ops:

SQL>select COMPONENT,OPER_TYPE,OPER_MODE,INITIAL_SIZE,FINAL_SIZE,STATUS,START_TIME from v$sga_resize_ops 
COMPONENT             OPER_TYPE  OPER_MODE INITIAL_SIZE FINAL_SIZE STATUS    START_TIE
--------------------  ---------- --------- ------------ ---------- --------- ---------
DEFAULT buffer cache  SHRINK     IMMEDIATE   2.6172E+10 2.6038E+10 ERROR     01-JUN-14
DEFAULT buffer cache  SHRINK     IMMEDIATE   2.6172E+10 2.6038E+10 ERROR     01-JUN-14
DEFAULT buffer cache  SHRINK     IMMEDIATE   2.6172E+10 2.6038E+10 ERROR     01-JUN-14
DEFAULT buffer cache  SHRINK     IMMEDIATE   2.6172E+10 2.6038E+10 ERROR     01-JUN-14
streams pool          GROW       IMMEDIATE    134217728  268435456 COMPLETE  10-JUL-14
DEFAULT buffer cache  SHRINK     IMMEDIATE   2.6038E+10 2.5904E+10 COMPLETE  10-JUL-14
DEFAULT buffer cache  SHRINK     IMMEDIATE   2.5904E+10 2.5770E+10 COMPLETE  10-JUL-14
shared pool           GROW       IMMEDIATE   1.3824E+10 1.3959E+10 COMPLETE  10-JUL-14


故障总结

1.从本次故障分析来看,主要是由于stream_pool不足导致expdp备份失败:

2.建议shared_pool共享池中预留部分空间给stream_pool




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70013625/viewspace-3012823/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE,MySQL 8.0 OCP,PMP,拥有OceanBase OBCP,TiDB PCTP,GoldenDB GDCP等多项认证,ITPUB认证专家,微信公众号:DBA之友。

注册时间:2022-02-08

  • 博文量
    132
  • 访问量
    171519