Oracle 11gR2 的RAC。 将MEMORY_TARGET内存设置为12G后,启动的时候报了错误:
ORA-00845: MEMORY_TARGET not supported on this system
00845, 00000, "MEMORY_TARGET not supported on this system"
// *Cause: The MEMORY_TARGET parameter was not supported on this operating system or /dev/shm was not sized correctly on Linux.
// *Action: Refer to documentation for a list of supported operating systems. Or, size /dev/shm to be at least the SGA_MAX_SIZE on each Oracle instance running on the system.
在Oracle 11g里,通过MEMORY_TARGET参数自动管理SGA和PGA。 但是在Oracle 11gR2 里如果MEMORY_TARGET参数值设定的过大,可能就会出现这个错误。
解决方法:增加/dev/shm, /dev/shm通常用做共享内存。
/dev/shm是一个临时文件系统(tmpfs) 。 从/etc/fstab中mount支持标准的参数"size",可以用size来增加或者减少在/dev/shm上的tmpfs大小.如果没有设置size,它的大小大于MEMORY_TARGET。
如果想立即生效,方法如下:
# umount tmpfs
# mount -t tmpfs shmfs -o size=14G /dev/shm
让以后每次重启OS 都自动mount,修改文件 /etc/fstab 将tmpfs 修改成以下值:
tmpfs /dev/shm tmpfs defaults,size=14G 0 0
如果直接修改/etc/fstab,通过重启OS 也可以让参数生效。
注意:这个size 的大小需要设置为整数。
df -h 在查查修改后的/dev/shm的大小
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg00-lv_root
20G 11G 7.7G 59% /
/dev/mapper/vg00-lv_home
97G 6.8G 86G 8% /home
/dev/sda1 97M 13M 80M 14% /boot
tmpfs 14G 0 14G 0% /dev/shm