April 3, 2010

ORA-27102: out of memory

Recently tried starting up a newly create 9i (9.2.0.5) database instance and encountered the following:
oracle@ebs:/u01/oracle/devdb/9.2.0> sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.5.0 – Production on Wed Feb 17 16:53:32 2010

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-27102: out of memory
Linux Error: 22: Invalid argument
This was installed on Red Hat Linux AS 4 U4 x86 with 8GB of RAM.

The solution was simply to adjust the SHMMAX kernel parameters. Basically, edit /etc/sysctl.conf and modify the following:
OLD: kernel.shmmax = 4294967296
NEW: kernel.shmmax = 2147483648
SHMMAX defines the maximum size (in bytes) of a single shared memory segment that a Linux process can allocate in its virtual address space. 32-bit Red Hat Enterprise Linux supports shared memory segments up to 4GB.

Per the Red Hat Knowledgebase:
If SHMMAX is set to a value larger then or equal to 4294967296 bytes (4 GB) on a 32-bit system, SHMMAX will be set to 0 bytes since it wraps around the 4 GB value. This means that SHMMAX should not exceed 4294967295 (one byte below 4 GB) on a 32-bit system.

4 comments: