Wednesday, December 11, 2013

Target database memory exceed available shared memory

If you are using UNIX/Linux, before you consider using AMM you should check the current size of your shared memory file system. On Linux you do this by issuing the following command.
# df -k /dev/shm
Filesystem   1K-blocks      Used Available Use% Mounted on
tmpfs        1029884    350916    678968  35% /dev/shm
The shared memory file system should be big enough to accommodate the MEMORY_TARGET and MEMORY_MAX_TARGET values, or Oracle will throw the following error.
ORA-00845: MEMORY_TARGET not supported on this system
To adjust the shared memory file system size issue the following commands, specifying the required size of shared memory.
# umount tmpfs
# mount -t tmpfs shmfs -o size=1200m /dev/shm
Make the setting permanent by amending the "tmpfs" setting of the "/etc/fstab" file to look like this.
tmpfs       /dev/shm         tmpfs   size=1200m      0 0

OR:

MEMORY_TARGET needs /dev/shm filesystem with required size. By default /dev/shm size is half of the system memory. So you have to change line in /etc/fstab from:
tmpfs               /dev/shm                tmpfs   defaults          0 0
to something like:
tmpfs               /dev/shm                tmpfs   defaults,size=4G 0 0
df -h /dev/shm will show you tmpfs size. To avoid reboot after editing /etc/fstab you can do:
umount tmpfs 
mount -a 

No comments:

Post a Comment