oracle内存溢出问题out of buffers
问题:oracle内存溢出问题
1、登录表现:
[oracle@garkzyk1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on 8 14:08:18 2022
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected.
2、 日志错误
skgxpvfynet: mtype: 61 process 179907 failed because of a resource problem in the OS. The OS has most likely run out of buffers (rval: 4)
opiodr aborting process unknown ospid (179907) as a result of ORA-603
3、启动错误
通过grid重启db服务
[grid@garkzyk1 ~]$ srvctl stop database -d garkzyk
[grid@garkzyk1 ~]$ srvctl start database -d garkzyk
PRCR-1079 : Failed to start resource ora.garkzyk.db
CRS-5017: The resource action "ora.garkzyk.db start" encountered the following error:
ORA-00845: MEMORY_TARGET not supported on this system
. For details refer to "(:CLSN00107:)" in "/opt/oracle_grid/log/garkzyk1/agent/crsd/oraagent_oracle//oraagent_oracle.log".
CRS-2674: Start of 'ora.garkzyk.db' on 'garkzyk1' failed
CRS-2632: There are no more servers to try to place resource 'ora.garkzyk.db' on that would satisfy its placement policy
4、启动日志报错
查看启动失败的节点日志错误如下:
Starting ORACLE instance (normal)
WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires the /dev/shm file system to be mounted for at least 26977763328 bytes. /dev/shm is either not mounted or is mounted with available space less than this size. Please fix this so that MEMORY_TARGET can work as expected. Current available is 16374849536 and used is 17302753280 bytes. Ensure that the mount point is /dev/shm for this directory.
memory_target needs larger /dev/shm
解决方法:
官方解释原因:MEMORY_MAX_TARGET 的设置不能超过/dev/shm的大小。
/dev/shm 安装后默认为主机内存的一半。
1、重新设置大点shm
mount -o remount,size=40G tmpfs /dev/shm
2、启动日志还是报错
skgxpvfynet: mtype: 61 process 200180 failed because of a resource problem in the OS. The OS has most likely run out of buffers (rval: 4)
Errors in file /opt/oracle/diag/rdbms/garkzyk/garkzyk1/trace/garkzyk1_rms0_200180.trc (incident=50170):
ORA-00603: ORACLE server session terminated by fatal error
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:sendmsg failed with status: 105
ORA-27301: OS failure message: No buffer space available
ORA-27302: failure occurred at: sskgxpsnd2
3、添加vm参数
调整/usr/lib/sysctl.d/00-system.conf或/etc/sysctl.conf
增加 vm.min_free_kbytes 参数,值为物理内存的0.4%。(例如62G内存 vm.min_free_kbytes=2662879972)
使用sysctl -p 生效
4、启动数据库 正常
[grid@garkzyk1 ~]$ srvctl start instance -d garkzyk -i garkzyk1
[grid@garkzyk1 ~]$ crsctl stat res -t
ora.garkzyk.db
1 ONLINE ONLINE garkzyk1 Open
2 ONLINE ONLINE garkzyk2 Open