/Dev/shm should set how large the Oracle instance is to be started before reporting ORA-00845
/Dev/shm should set how large the Oracle instance is to be started before reporting ORA-00845
Source: ORA-00845-Which value for/dev/shm is needed to startup database without ORA-00845 (Document ID 1399209.1)
Applicable:
Oracle Database-Standard Edition-Version 11.1.0.6 and later
Information in this document applies to any platform.
* ** Checked for relevance on 17-Jul-2015 ***
Objectives:
Starting from Oracle database 11g, the Automatic Memory Management (AMM) features require more shared memory (/dev/shm) and file descriptors.
The size of Shared memory must be at least greater than the value of MEMORY_MAX_TARGET and MEMORY_TARGET of each Oracle Instance on the host.
If the MEMORY_MAX_TARGET parameter or MEMORY_TARGET parameter is set to a non-zero value and an incorrect value is assigned to shared memory, this causes Oracle instance startup failure: A ORA-00845 error is reported.
In Linux, if the/dev/shm mount size of the operating system is too small compared to the Oracle SGA and PGA, you will encounter the following error:
ORA-00845: MEMORY_TARGET not supported on this system.
This error is caused by insufficient/dev/shm allocation. The total memory size of SGA and PGA, that is, the MEMORY_TARGET or MEMORY_MAX_TARGET set in the initialization parameter cannot be larger than the shared memory file system (/dev/shm) Size on your operating system.
Details
The alert log will provide the expected value for/dev/shm.
WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires the /dev/shm file system to be mounted for at least 1073741824 bytes. /dev/shm is either not mounted or is mounted with available space less than this size. Please fix this so that MEMORY_TARGET can work as expected. Current available is 1049145344 and used is 430080 bytes. Ensure that the mount point is /dev/shm for this directory. memory_target needs larger /dev/shm
Here the alert log confirms:
current size : 1049145344 bytesexpected size: 1073741824 bytes (at least)
The current size of/dev/shm is also confirmed by the 'df 'command -- Current value
# df -k /dev/shmFilesystem 1K-blocks Used Available Use% Mounted ontmpfs 1024976 420 1024556 1% /dev/shm
To fix the current issue the solution wocould be to allocate at least 1073741824 bytes for/dev/shm.
# mount -t tmpfs shmfs -o size=1073741824 /dev/shm # df -k /dev/shmFilesystem 1K-blocks Used Available Use% Mounted onshmfs 1048576 0 1048576 0% /dev/shm
To retain the value when SS machine startups, make sure that the/etc/fstab mount database contains a reference to this new value, like in:
shmfs /dev/shm tmpfs size=1073741824 0