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.
No comments:
Post a Comment