首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[Oracle故障处理]记一次PX msg pool 4031错误的处理

[Oracle故障处理]记一次PX msg pool 4031错误的处理

作者头像
bsbforever
发布2020-08-19 11:26:36
发布2020-08-19 11:26:36
73900
代码可运行
举报
运行总次数:0
代码可运行

这个专题讲一些日常运维的异常处理

今天讲一个ORA-4031错误的处理过程

1. 现象

今天执行一个表分析的语句

代码语言:javascript
代码运行次数:0
运行
复制
SQL> exec dbms_stats.gather_table_stats(ownname => 'username',tabname => 'tablename',estimate_percent=>dbms_stats.auto_sample_size, method_opt => 'for all columns size AUTO', degree =>3, cascade => true)

遇到了如下错误

代码语言:javascript
代码运行次数:0
运行
复制
ORA-04031: unable to allocate 4328 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","PX msg pool")

2. 原因查找

看到4031我们第一时间想到的是shared pool不够用了

我们可以查看shared pool的使用率,发现还有300多M

接下来我们看括号里面的内容 他提示的是PX msg pool这个池

从字面上看应该是并行相关的区域

我们知道并行相关的东西是应该放在large pool里面的

怎么会从shared pool中分配呢

这是我们展开搜索功能,找到一个网站

上面说的是这个特性是从10g开始的(待验证)

而我们这个数据库是9i的

3. 问题解决

既然找到了一个方向,接下里我们验证下,我们将degree 设为1 ,这样就不使用并行了

代码语言:javascript
代码运行次数:0
运行
复制
SQL> exec dbms_stats.gather_table_stats(ownname => 'usernmae',tabname => 'tabelname',estimate_percent=>dbms_stats.auto_sample_size, method_opt => 'for all columns size AUTO', degree =>1, cascade => true)

这时分析成功

PS:发现没有并行速度还更快了~

4.参考链接

http://dbakevin.blogspot.com/2012/06/04031-and-large-pool-parallel-and-px.html

http://www.zhaibibei.cn/oralce/oracle-parameter/large_pool_size/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 现象
  • 2. 原因查找
  • 3. 问题解决
  • 4.参考链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档