ITPub博客

首页 > 数据库 > Oracle > 记一次Oracle 19C RAC ORA-0430

记一次Oracle 19C RAC ORA-0430

原创 Oracle 作者:jason_yehua 时间:2025-03-05 14:54:29 0 删除 编辑

数据库 2025年3月4日21:30-22:30数据库几乎处于不可用状态 ,经 临时查杀会话切换服务后 恢复正常。  

问题排查:

数据库告警日志排查:

一节点:由于原业务集中在二节点上,一节点相对较为空闲, ALERT 告警日志 21 点 30 分至 22 点 30 分之间未出现严重的告警和报错信息

二节点:查看 ALERT 告警日志故障时间点出现大量内存分配不足的错误 ,ORA-04030: out of process memory when trying to allocate 248 bytes (KSIPC Top Loca,ksipc pga chnk) ,进程内存( PGA )分配失败,进一步确认此错误在上午 11 点 28分第一次 出现持续了 4 分钟,随后 14 点 26 分陆续出现同时伴随着后台进程中断以及派发失败的错误( Process J000/GCR1/MZ00 died , unable to spawn jobq slave process ), ORA-04030 错误频率过高,同时触发 Oracle 的日志抑制机制( DDE: Problem Key 'ORA 4030' was completely flood controlled )

2025-03-04T21:30:16.594587+08:00

WARNING: inbound connection timed out (ORA-3136)

2025-03-04T21:30:45.978497+08:00

kkjcre1p: unable to spawn jobq slave process 

2025-03-04T21:30:45.978550+08:00

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_cjq0_56974.trc:

2025-03-04T21:31:08.050594+08:00

Thread 2 advanced to log sequence 83353 (LGWR switch)

  Current log# 3 seq# 83353 mem# 0: +DATA/orcl/ONLINELOG/group_3.266.1091824805

2025-03-04T21:31:08.326745+08:00

ARC3 (PID:52999): Archived Log entry 187797 added for T-2.S-83352 ID 0xaf90c6eb LAD:1

2025-03-04T21:31:17.978170+08:00

Process MZ00 died, see its trace file

2025-03-04T21:31:23.076052+08:00

Thread 2 advanced to log sequence 83354 (LGWR switch)

  Current log# 8 seq# 83354 mem# 0: +DATA/orcl/ONLINELOG/group_8.322.1091824769

2025-03-04T21:31:23.105092+08:00

ARC0 (PID:52980): Archived Log entry 187798 added for T-2.S-83353 ID 0xaf90c6eb LAD:1

2025-03-04T21:31:49.681514+08:00

kkjcre1p: unable to spawn jobq slave process 

2025-03-04T21:31:49.681568+08:00

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_cjq0_56974.trc:

2025-03-04T21:32:21.362890+08:00

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_j000_19143.trc:

ORA-04030: out of process memory when trying to allocate 25784 bytes (KSIPC Top Loca,KSXP OSD LW CTX)

ORA-04030: out of process memory when trying to allocate 248 bytes (KSIPC Top Loca,ksipc pga chnk)

2025-03-04T21:32:21.506147+08:00

Process J000 died, see its trace file

2025-03-04T21:32:21.506234+08:00

kkjcre1p: unable to spawn jobq slave process 

2025-03-04T21:32:21.506279+08:00

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_cjq0_56974.trc:

2025-03-04T21:32:53.506189+08:00

Process PPA7 died, see its trace file

2025-03-04T21:33:24.976265+08:00

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_j000_68996.trc:

ORA-04030: out of process memory when trying to allocate 25784 bytes (KSIPC Top Loca,KSXP OSD LW CTX)

ORA-04030: out of process memory when trying to allocate 248 bytes (KSIPC Top Loca,ksipc pga chnk)

2025-03-04T21:33:25.102396+08:00

Process J000 died, see its trace file

2025-03-04T21:33:25.102484+08:00

kkjcre1p: unable to spawn jobq slave process 

2025-03-04T21:33:25.102528+08:00

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_cjq0_56974.trc:

2025-03-04T21:33:57.103192+08:00

Process PPA7 died, see its trace file

2025-03-04T21:34:29.145357+08:00

kkjcre1p: unable to spawn jobq slave process 

2025-03-04T21:34:29.145411+08:00

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_cjq0_56974.trc:

2025-03-04T21:35:01.145196+08:00

Process PPA7 died, see its trace file

2025-03-04T21:35:32.963592+08:00

kkjcre1p: unable to spawn jobq slave process 

2025-03-04T21:35:32.963658+08:00

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_cjq0_56974.trc:

2025-03-04T21:36:05.114190+08:00

Process PPA7 died, see its trace file

2025-03-04T21:36:36.599489+08:00

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_j000_55290.trc:

ORA-04030: out of process memory when trying to allocate 25784 bytes (KSIPC Top Loca,KSXP OSD LW CTX)

ORA-04030: out of process memory when trying to allocate 248 bytes (KSIPC Top Loca,ksipc pga chnk)

2025-03-04T21:36:36.660996+08:00

Process J000 died, see its trace file

2025-03-04T21:36:36.661095+08:00

kkjcre1p: unable to spawn jobq slave process 


进一步查看 trace 文件选取 /u01/app/oracle/diag/rdbms/orcl/ orcl2/trace/ orcl2_ora_36774.trc 为例:

MGA (Managed Global Area) allocation is failed  due to ORA-4030 though OS has enough free memories.

Trace file /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_ora_36774.trc

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

Build label:    RDBMS_19.3.0.0.0DBRU_LINUX.X64_190417

ORACLE_HOME:    /u01/app/oracle/product/19.0.0/dbhome_1

System name: Linux

Node name: dbn02

Release: 3.10.0-957.el7.x86_64

Version: #1 SMP Thu Oct 4 20:48:51 UTC 2018

Machine: x86_64

Instance name: orcl2

Redo thread mounted by this instance: 2

Oracle process number: 3421

Unix process pid: 36774, image: oracle@db02



*** 2025-03-04T11:28:15.590583+08:00

*** CLIENT ID:() 2025-03-04T11:28:15.590606+08:00

*** SERVICE NAME:() 2025-03-04T11:28:15.590610+08:00

*** MODULE NAME:() 2025-03-04T11:28:15.590613+08:00

*** ACTION NAME:() 2025-03-04T11:28:15.590617+08:00

*** CLIENT DRIVER:() 2025-03-04T11:28:15.590620+08:00

 

KSIPC MGA segment precreate succeeded: pga_aggr_limit 51539607552 IPC limit:40% curr allocation:5905580032 new allocation 6174015488 segsize 268435456 hdl 0x7fff37fe9a18


MGA heap extent alloc failed : req = 8388552, min = 8388552

Actual req size = 8388552, min size = 8388552, sctx = 0x3b42cd240, segsz = 268435456

----- Start Diag Diagnostic Dump -----

Diagnostic call stack dump is performed due to inability to allocate memory to generate a new incident during error handling.

 DDE is switched to protected mode during the diagnostic dump to prevent recursive errors in the error handling code.

Dump error and call stack for the diagnostic dump:


*** 2025-03-04T11:28:15.644177+08:00

dbkedDefDump(): Starting incident default dumps (flags=0x0, level=1, mask=0x0)

----- Error Stack Dump -----

<error barrier> at 0x7fff37fe9760 placed dbge.c@994

ORA-04030: out of process memory when trying to allocate 248 bytes (KSIPC Top Loca,ksipc pga chnk)

<error barrier> at 0x7fff37fea810 placed ksipc.c@13489

----- SQL Statement (None) -----

Current SQL information unavailable - no session.

匹配 Oracle 官方 MOS 文档 ORA-04030: out of process memory when trying to allocate n bytes (KSIPC Top Loca,ksipc pga chnk) (Doc ID 2853178.1)



出现以上问题主要原因有以下三点:
1. 当前 PGA_AGGREGATE_LIMIT 设置不足

2. 大量 PGA 内存的使用

3. 大量 MGA 内存的使用

 

解决办法:

增加 PGA_AGGREGATE_LIMIT 的限定值。

评估 PGA_AGGREGATE_LIMIT 的值

PGA_AGGREGATE_LIMIT = ((maximum aggregate PGA in use for the life of the instance) + ((maximum number of attached processes for the life the instance) * 5M)) * 1.1







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

请登录后发表评论 登录
全部评论

注册时间:2019-05-22

  • 博文量
    122
  • 访问量
    99636