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)

Last modified: 11 May 2022

Author

Comments

Write a Reply or Comment

Your email address will not be published.