Oracle Solaris-amd64 Error 22 Invalid Argument
Contents |
: Fixing the 'ORA-27102: out of memory' Error By Giri Mandalika on Nov 21, 2008 (Crossposting the 2+ year old blog entry from my other blog hosted on blogger. Source URL: http://technopark02.blogspot.com/2006/09/solaris-10oracle-fixing-ora-27102-out.html) Symptom: As part of a database tuning effort you increase
Ora-27102 Out Of Memory Solaris 11
the SGA/PGA sizes; and Oracle greets with an ORA-27102: out of memory error message. The ora-27102: out of memory svr4 error: 22: invalid argument system had enough free memory to serve the needs of Oracle. SQL> startup ORA-27102: out of memory SVR4 Error: 22: Invalid argument Diagnosis ora-27102: out of memory linux-x86_64 error: 28: no space left on device $ oerr ORA 27102 27102, 00000, "out of memory" // \*Cause: Out of memory // \*Action: Consult the trace file for details Not so helpful. Let's look the alert log for some clues. % tail -2 alert.log WARNING:
Project.max-shm-memory Solaris 10
EINVAL creating segment of size 0x000000028a006000 fix shm parameters in /etc/system or equivalent Oracle is trying to create a 10G shared memory segment (depends on SGA/PGA sizes), but operating system (Solaris in this example) responded with an invalid argument (EINVAL) error message. There is a little hint about setting shm parameters in /etc/system. Prior to Solaris 10, shmsys:shminfo_shmmax parameter has to be set in /etc/system with maximum memory segment value that can be created. 8M is
Ora-27102 Out Of Memory Linux-x86_64 Error 12
the default value on Solaris 9 and prior versions; where as 1/4th of the physical memory is the default on Solaris 10 and later. On a Solaris 10 (or later) system, it can be verified as shown below: % prtconf | grep Mem Memory size: 32760 Megabytes % id -p uid=59008(oracle) gid=10001(dba) projid=3(default) % prctl -n project.max-shm-memory -i project 3 project: 3: default NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT project.max-shm-memory privileged 7.84GB - deny - system 16.0EB max deny - Now it is clear that the system is using the default value of 8G in this scenario, where as the application (Oracle) is trying to create a memory segment (10G) larger than 8G. Hence the failure. So, the solution is to configure the system with a value large enough for the shared segment being created, so Oracle succeeds in starting up the database instance. On Solaris 9 and prior releases, it can be done by adding the following line to /etc/system, followed by a reboot for the system to pick up the new value. set shminfo_shmmax = 0x000000028a006000 However shminfo_shmmax parameter was obsoleted with the release of Solaris 10; and Sun doesn't recommend setting this parameter in /etc/system even though it works as expected. On Solaris 10 and later, this value can be changed dynamically on a per project basis with the help of resource control facilities .
Fundamentals Oracle Errors Performance Tuning ASM Datafiles & Tablespaces Exadata Database Startup On Solaris 10 Fails With Ora-27102 Out Of Memory I ora-27102 out of memory oracle 11g have Solaris 10 system with RMAN 16G size. I am
Project.max-shm-memory Solaris 11
starting database with 6G of SGA size but startup fails with the following errors. SQL> startup ORA-27102: increase the project.max-shm-memory on solaris 10 out of memory SVR4 Error: 22: Invalid argument And the alert log shows something similar to the following. WARNING: EINVAL creating segment of size 0x000000002a000000 fix shm https://blogs.oracle.com/mandalika/entry/oracle_on_solaris_10_fixing parameters in /etc/system or equivalent Cause:Solaris 10 sets the shared memory segments on projects, and it is suspected to be caused by projects not being setup correctly. Because of this,there is not sufficient SHMMAX available for Oracle to allocate the SGA, so startup fails. Solution:It is still permitted in Solaris 10 to set the limits http://www.dbas-oracle.com/2011/08/database-startup-on-solaris-10-fails.html in the /etc/system file, which willallow database startup in the interim, until canresolve the issues with projects settings. Log in using root user. For example, a sample /etc/system entry setting SHMMAX = 6GB. set shmsys:shminfo_shmmax=6442450944 set semsys:seminfo_semmni=1024 set semsys:seminfo_semmsl=1024 set shmsys:shminfo_shmmni=100 Database started with above settings ok, and missing project settings in this case were the following. 1 In case adding new Project: # projadd -c "Oracle" 'user.oracle' 2 In case modifying existing project: # projmod -s -K "project.max-shm-memory=(privileged,6GB,deny)" 'user.oracle'. I have applied both of the above ways but the issue still persists. At last I restart the database server and it works for me. Labels: ORA Error, Solaris No comments: Post a Comment Newer Post Older Post Home Blog Archive ► 2014 (1) ► March (1) ► 2013 (78) ► August (2) ► July (11) ► June (10) ► May (9) ► April (8) ► March (13) ► February (7) ► January (18) ► 2012 (23) ► December (3) ► November
adding a new instance to an already running installation, or tuning the SGA/PGA sizes on Solaris 10, and you find you get the following on starting that instance: On the https://lildude.co.uk/howto-fix-ora-27102-out-of-memory-error screen ... SQL> startup ORA-27102: out of memory SVR4 Error: 22: https://unitrends-support.force.com/UnitrendsBackup/s/article/000003169 Invalid argument ... and in the Oracle alert log ... Error : EINVAL creating segment of size 0x000000009f000000 fix shm parameters in /etc/system or equivalent ... DON'T call Oracle. You're likely to experience one or all of the following... You may be referred to Metalink Article 399895.1 and out of told to implement the workaround stated within. DON'T. This defeats the whole point of using projects as the workaround just changes things on a system wide basis instead of resolving the actual project configuration issue. There's also no guarantee this method will work in later updates of Solaris 10 as the functionality has technically been obsoleted by projects. You may out of memory be told this is a known bug, Oracle bug ID 5237047 - Incorrect system requirements for Solaris 10, and is actually a bug in Solaris 10. You'll probably be told to implement the changes in the above Metalink document. As above: DON'T. You may even be told this is a known limitation in Solaris 10 in that you can't have a shared memory segment of more than 6GB, and once again referred to the workaround in the above Metalink document. As above: DON'T. Believe it or not, I heard all three of these in one conference call this weekend and from what I can tell this is probably due to a complete misunderstanding of how projects work in Solaris 10 (ie a lack of knowledge) or due to some very bad documentation in Oracle's bug/call system. However, this post isn't all about what not to do, but rather how you go about resolving this issue. In short, you need to change the shared memory allocation for the particular project assigned to your Oracle user or group, depen