Ora-27102 Out Of Memory Solaris-amd64 Error 22
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 the SGA/PGA
Ora-27102 Out Of Memory Solaris 11
sizes; and Oracle greets with an ORA-27102: out of memory error message. The system had ora-27102: out of memory svr4 error: 22: invalid argument enough free memory to serve the needs of Oracle. SQL> startup ORA-27102: out of memory SVR4 Error: 22: Invalid argument Diagnosis $ oerr ora-27102 out of memory linux 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: EINVAL creating segment
Ora-27102 Out Of Memory Linux-x86_64 Error 12
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 the default value on Solaris 9
Project.max-shm-memory Solaris 10
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 . This is how we do it on Solaris 10 and l
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 screen ... SQL> startup ORA-27102: out ora-27102 out of memory windows of memory SVR4 Error: 22: Invalid argument ... and in the Oracle alert
Ora-27102 Out Of Memory Oracle 11g
log ... Error : EINVAL creating segment of size 0x000000009f000000 fix shm parameters in /etc/system or equivalent ... DON'T project.max-shm-memory solaris 11 call Oracle. You're likely to experience one or all of the following... You may be referred to Metalink Article 399895.1 and told to implement the workaround stated within. DON'T. This defeats the whole https://blogs.oracle.com/mandalika/entry/oracle_on_solaris_10_fixing 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 be told this is a known bug, Oracle bug ID 5237047 - Incorrect system requirements for Solaris 10, https://lildude.co.uk/howto-fix-ora-27102-out-of-memory-error 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, depending on which you've chosen to implement. There is loads of information on setting up projects on docs.sun.com and Sunsolve, but if you're looking for information specific to Oracle and this error, then check out this po
Fundamentals Oracle Errors Performance Tuning ASM Datafiles & Tablespaces Exadata Database Startup On Solaris 10 Fails With Ora-27102 Out Of http://www.dbas-oracle.com/2011/08/database-startup-on-solaris-10-fails.html Memory I have Solaris 10 system with RMAN 16G size. I am starting database with 6G of SGA size but startup fails with the following errors. SQL> startup ORA-27102: out of memory SVR4 Error: 22: Invalid argument And the alert log shows something similar to the following. WARNING: EINVAL creating segment of size out of 0x000000002a000000 fix shm 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 out of memory 10 to set the limits 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) ► Janua