I faced this error a few times so I though to write a quick note for an easy fix.
While you try to start DB, it gets this error. I know… this is 10g, but sometimes Clients do not want to upgrade and you have to deal with it…
bash-3.2$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.5.0 - Production on Tue May 10 21:10:13 2022
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> startup
ORA-27102: out of memory
SVR4 Error: 22: Invalid argument
SQL>
If you check alert log, you receive this:
Tue May 10 21:03:28 BST 2022
WARNING: EINVAL creating segment of size 0x0000000800012000
fix shm parameters in /etc/system or equivalent
Tue May 10 21:10:18 BST 2022
Starting ORACLE instance (normal)
Tue May 10 21:10:18 BST 2022
WARNING: EINVAL creating segment of size 0x0000000800012000
fix shm parameters in /etc/system or equivalent
Here the important value is “0x0000000800012000”. If you convert from hex to dec and then to gb, this value is just over 32Gb.
So what this error means, is DB tried to allocate over 32Gb but at OS level was not allowed. Why not? this case it is a Solaris server and if you check the limits, we see it has only 23.5G limit:
bash-3.2$ id -p
uid=5101(oracle) gid=5101(dba) projid=3(default)
bash-3.2$
bash-3.2$ prctl -n project.max-shm-memory -i project 3
project: 3: default
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 23.5GB - deny - <<----------
system 16.0EB max deny -
bash-3.2$
As a quick fix, you can execute this:
prctl -n project.max-shm-memory -r -v 33G -i project 3
New limit:
bash-3.2$ prctl -n project.max-shm-memory -i project 3
project: 3: default
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 33.0GB - deny - <<-----
system 16.0EB max deny -
bash-3.2$
After this, DB can start with no issues, but please be aware this is a temposary fix, once server is restarted, value will be back to the previous valur.
As a permanent fix, a new project need to be created, for that, please follow up Database Startup On Solaris 10 Fails With Ora-27102 Out Of Memory Error (Doc ID 399895.1)
Comments