加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle – 解析ORA-4031“无法分配x字节的共享内存”

发布时间:2020-12-12 13:54:03 所属栏目:百科 来源:网络整理
导读:我需要一些关于如何诊断和解决这个问题的指针。我不知道这是否是一个简单的服务器设置问题或应用程序设计问题(或两者)。 每几个月一次或两次,这个Oracle XE数据库会报告ORA-4031错误。它并没有指向sga的任何特定部分。最近的一个例子是: ORA-04031:无法分
我需要一些关于如何诊断和解决这个问题的指针。我不知道这是否是一个简单的服务器设置问题或应用程序设计问题(或两者)。

每几个月一次或两次,这个Oracle XE数据库会报告ORA-4031错误。它并没有指向sga的任何特定部分。最近的一个例子是:

ORA-04031:无法分配8208字节的共享内存(“大型池”,“未知对象”,“排序子图”,“排序键”)

当这个错误出现时,如果用户保持刷新,点击不同的链接,他们通常会在不同的时间获得更多的这些错误,然后很快他们会得到“404未找到”页面错误。

重新启动数据库通常会解决问题一段时间,然后一个月左右再次出现,但很少在程序中的相同位置(即它似乎没有链接到任何特定部分的代码)(上面的例子错误是从一个从表中排序5000行的Apex页面引起的)。

我已经尝试将sga_max_size从140M增加到256M,并希望这将有助于事情。当然,我不知道这是否有帮助,因为我不得不重新启动数据库来更改设置:)

我在具有512MB RAM的Oracle Enterprise Linux 5盒上运行Oracle XE 10.2.0.1.0。服务器只运行数据库Oracle Apex(v3.1.2)和Apache Web服务器。我安装了几乎所有的默认参数,它一直运行相当好一年左右。大多数问题我已经能够通过调整应用程序代码来解决自己;它没有被广泛使用,而不是一个关键的业务系统。

这些是我认为可能相关的一些当前设置:

pga_aggregate_target        41,943,040
sga_max_size              268,435,456
sga_target                146,800,640
shared_pool_reserved_size   5,452,595
shared_pool_size          104,857,600

如果这里有任何帮助,目前的SGA尺寸:

Total System Global Area  268435456 bytes
Fixed Size                  1258392 bytes
Variable Size             251661416 bytes
Database Buffers           12582912 bytes
Redo Buffers                2932736 bytes
即使您使用ASMM,您可以为大型池设置最小大小(MMAN不会将其缩小到低于该值)。 您还可以尝试固定一些对象并增加SGA_TARGET。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读