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

前端之家收集整理的这篇文章主要介绍了oracle – 解析ORA-4031“无法分配x字节的共享内存”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要一些关于如何诊断和解决这个问题的指针。我不知道这是否是一个简单的服务器设置问题或应用程序设计问题(或两者)。

每几个月一次或两次,这个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。
原文链接:/oracle/205854.html

猜你在找的Oracle相关文章