前景:业务人员发现数据库有些job不能自动执行,并且某些sql处于等待状态,于是上去检查数据库状态
数据库版本:19.10
操作系统版本: Red Hat Enterprise Linux Server release 7.8 (Maipo)
数据库登陆有些卡顿 但是可以登陆进去 直接查看当前等待事件
发现有些job在执行时,会等待数据库的一些递归sql
insert into sys.scheduler$_event_log (log_id, log_date, type#, name, owner, operation, status, user...
于是查看数据库日志发现异常信息
截取一部分内容:
ARC0 (PID:38279): Archived Log entry 8146 added for T-1.S-7158 ID 0x4f5fe1a8 LAD:1
2021-11-01T09:49:13.543323+08:00
Unable to allocate memory for new incident error in file /oracle/app/oracle/diag/rdbms/ngxsd/ngxsd1/trace/ngxsd1_j007_69329.trc:
ORA-04030: out of process memory when trying to allocate 248 bytes (ksipc pga chnk,ksm sseg osctx)
ORA-27300: OS system dependent operation:fallocate failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgm_mga_cr
2021-11-01T09:49:13.543607+08:00
Errors in file /oracle/app/oracle/diag/rdbms/ngxsd/ngxsd1/trace/ngxsd1_j007_69329.trc:
ORA-04030: out of process memory when trying to allocate 248 bytes (ksipc pga chnk,ksm sseg osctx)
发现数据库有PGA空间不足的问题,导致ORA-04030。
直接进数据库查看数据库内存分配情况
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit big integer 50G