Oracle 11g Database Startup Failed: /dev/shm and ORA-00845: MEMORY_TARGET not supported on this system



The Eucharistic Miracles of the World

Error Description:
I have modified or increased the value for the parameter MEMORY_TARGET and then Oracle 11g database startup failed with following error.

SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system

Database alert log shows below mentioned entry.

Starting ORACLE instance (normal)
WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires the /dev/shm file system to be mounted for at least 4294967296 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 3221225472 and used is 0 bytes. Ensure that the mount point is /dev/shm for this directory.
memory_target needs larger /dev/shm

Let’s Discuss about the Relation Between AMM, MEMORY_TARGET, MEMORY_MAX_TARGET and /dev/shm

In Oracle 11g onwards Automatic Memory Management (AMM) is configured by using following parameters.
MEMORY_TARGET: It is a dynamic parameter which decides the amount of shared memory provided for oracle to use for dynamically controlled SGA and PGA.
MEMEORY_MAX_TARGET: is the parameter to limit the value for the above parameter MEMORY_TARGET.

If your database is running on Linux/Unix OS, you have to relate or consider these parameters to the OS shared memory. Because both of these oracle parameters are using the OS shared memory.

$ df -h /dev/shm
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 3.0G  1.1G  2.0G  35% /dev/shm

You can set the maximum value for oracle MEMORY_TARGET parameter is less than or equal to /dev/shm size. In above example you can set up to 3GB for MEMORY_TARGET. In case if you wanted to increase the MEMORY_TARGET parameter value, you need increase the /dev/shm parameter value using following methods.

Method 1:

          Login as root
# umount tmpfs
# mount -t tmpfs shmfs -o size=4g /dev/shm
Bounce the server
# init 6  or reboot

Method 2:
          Login as root
          Open /etc/fstab file :
# vi /etc/fstab
          Modify the current tmpfs entry with following entry
tmpfs /dev/shm tmpfs size=4g 0 0
Bounce the server
# init 6  or reboot
Next database startup will be proper.


Website Stats


Post a Comment


Oracle (629) Script (86) General (77) Unix (47) Blog (23) Technology (19) gadget (6) games (6) Business (3) OCI (3) SQL* Loader (3) Datapump (2) Copyright 2011-23 All Rights Reserved | Site Map | Contact | Disclaimer