oracle4030,ora-4030小结

news/2025/2/12 5:26:32/

出现原因:

当oracle进程向OS请求内存而无法满足时,会报出ora-4030错误,该错误表明oracle进程需要更多PGA或者UGA内存(MTS中UGA位于SGA中);

大致的诱导原因有以下几种:

1 OS的物理内存或者swap不够;过大的SGA设置或者进程太多导致内存枯竭都可引发此类问题

2 OS用户的limit设置太小(仅限UNIX)

3 Oracle bug导致的内存泄漏

解决方法

1

查看OS中是否有足够多的内存,

UNIX:使用top检查物理内存和swap使用情况;使用vmstat检查空闲的物理内存数目;swapon –s检查swap分区使用情况;

如果使用了hugepage,不合理的设置也会导致内存过度使用grep Huge /proc/meminfo

Windows:使用任务管理器检查内存使用情况

2

查看OS上是否有limit设置

UNIX:使用limit/ulimit命令查看(有时候unlimited实际上代表的是2G,最好设置成具体的数值)

Windows:每个进程的可寻址内存为2G(包含stack/PGA/UGA),可以设置增大为3G或更高

3

查看ORACLE上是否有limit设置

_PGA_MAX_SIZE:设置了一个进程可使用的PGA大小,默认为200M

通过该sql查看pga的内存数量

select sum(value)/1024/1024 Mb from v$sesstat s, v$statname n where n.STATISTIC# = s.STATISTIC# and name = 'session pga memory';

注:当系统升级至11.2后,_PGA_MAX_SIZE和PGA_AGGREGATE_TARGET都设置大于4G时,仍然可能会有ora-4030发生,由OS或者ORACLE设置的limit触发,导致map entry消耗完毕;

OS:调大vm.max_map_count值,可通过sysctl动态设置,sysctl -w vm.max_map_count=200000

ORACLE:调整realfree heap pagesize大小,默认值为64KB(65536)占有4G,可调整为256KB(262144)即16G

此问题由Bug 11852492引起

4

如果PGA使用manual方式管理,可以减小workarea的大小,比如SORT_AREA_SIZE,当进程需要更多的内存排序时则会用到temp segment,以降低性能为代价减少内存的使用。

而workarea_size_policy为AUTO时,则可通过自动调整PGA来减少ora-4030的发生

找出占有内存最多的进程

select sid,name,value from v$statname n,v$sesstat s

where n.STATISTIC# = s.STATISTIC# and name like 'session%memory%'

order by 3 asc;

可以查询v$pgastat查询目前PGA的总体使用情况

若系统中频繁出现4030错误,则可使用ALTER SYSTEM SET EVENTS '4030 trace name heapdump level 536870917;name errorstack level 3';,待到该错误再次触发时生成的dump文件包含很多信息,可以找出内存过度使用的原因。

Why does my code give ORA-4030 when run through listener connection, but not local connection?

On most unix/linux OS, for local connections, the shadow processes spawned on the database server inherit the ulimits of the OS user that starts the database.

For processes spawned through a listener connection, it is the ulimits of the OS user that starts the listener that are inherited.

Need to verify that memory related resource limits as listed by ulimit -a are set large enough to prevent the ORA-4030.

See below discussion on ulimits.

Restart the listener as OS user that has the higher ulimits in place or adjust the ulimits for the OS user that starts the listener.


http://www.ppmy.cn/news/291572.html

相关文章

oracle4030,Oracle错误 ORA-4030 解析

这个错误原因是Oracle服务器进程不能从操作系统上分配出更多内存。含有PGA(程序全局区)的进程其内存的分配取决于服务器的设置。对于dedicated服务器进程,其包含了stack堆栈和UGA(用户全局区), 保存有用户会话信息、游标信息和数据分类排序区。在多线程模式配置(sha…

oracle4030,Oracle技巧:ORA-4030 报错

这个错误原因是 Oracle 服务器进程不能从操作系统上分配出更多内存。含有PGA(程序全局区)的进程其内存的分配取决于服务器的设置。对于 dedicated 服务器进程,其包含了 stack 堆栈和 UGA(用户全局区), 保存有用户会话信息、游标信息和数据分类排序区。在多线程模式配…

分析和解决ora-4030错误 [操作系统,内存分配机制]

分析和解决ora-4030错误 ORA-4030意味着什么? 这个错误意味着oracle服务器进程不能从操作系统获得更多的内存。这里的内存指的是PGA(程序全局区)以及由配置决定的它的子项。对于专用的服务器进程,内存包括堆栈区、UGA(用户全局区&#xff09…

一次ORA-4030问题诊断及解决【解决思路不错,说明了对象的统计信息与优化器的优化操作(即选择执行一个SQL语句在该优化参数环境下最佳的执行计划)间的关系】

在报表数据库的后台alert文件中发现了这个错误,简单记录一下问题的诊断和解决过程。数据库版本9204 for Solaris sparc64。   错误信息如下:   Errors in file /u1/oracle/admin/repdb01/bdump/repdb01_j000_9888.trc:   ORA-12012: error on auto…

《Kali渗透基础》06. 主动信息收集(三)

kali渗透 1:服务识别1.1:NetCat1.2:Socket1.3:dmitry1.4:nmap 2:操作系统识别2.1:Scapy2.2:nmap2.3:p0f 3:SNMP 扫描3.1:onesixtyone3.2&#xff…

基于“三维六类”干扰分析模型进行FDD900干扰规避优化指导

1.概述 随着网络发展,鉴于900M覆盖上的优势,为增强深度覆盖及竞对提升,当前FDD 900M已在加快部署,但随之也带来了干扰问题。当前,干扰排查成为FDD 900M部署过程中大量存在的难题。由于干扰排查难度大,且排…

【Python】Python 中类的定义以及 self 是谁?

文章目录 一、类的定义二、更复杂的属性和方法2.1 实例属性和实例方法2.2 类属性和类方法2.3 继承 三、Python里面的self,是谁? 一、类的定义 在Python中,你可以使用关键字 class 来定义一个类。类提供了一种创建对象的蓝图,它定…

什么是个性化推荐

个性化推荐是指个人信息控制者利用用户数据和算法推送新闻信息、商业广告等向个人信息主体提供的一种。个人信息控制者不得以提供个性化推荐为由,误导个人信息主体同意其收集个人信息。 个人信息控制者在提供个性化推荐时,应当以明显方式标明“个性化推荐…