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
Oracle 官网的说明:
| ORA-00845 When Starting Up An 11g Instance With AMM Configured. [ID 460506.1] | ||
|
|
||
| Modified 18-FEB-2010 Type PROBLEM Status PUBLISHED | ||
Symptoms
Changes
Cause
Solution
References
Applies to:
Linux x86
Linux x86-64
Symptoms
On a Linux system, trying to start up an 11g instance could fail with the following error:
ORA-845: MEMORY_TARGET not supported on this system
In the alert log, you could or could not see the below messages:
ORA-04031 errors
OR
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
With available space less than this size.
Please fix this so that MEMORY_TARGET can work as expected.
Current available is
If ORA-04031 is seen in the alert log, sometimes you can not establish new connections due to this problem.
Changes
Cause
/dev/shm is either not mounted or is mounted with available space less than this size.
Explanation:
AMM (Automatic Memory Management) is a new feature in 11 which manages both SGA and PGA.
MEMORY_TARGET is used instead of SGA_TARGET and MEMORY_MAX_TARGET is used instead of SGA_MAX_SIZE (defaults to MEMORY_TARGET ).
It uses /dev/shm on Linux. If max_target set over /dev/shm size, you get the error messages.
Solution
the initialization parameter MEMORY_TARGET or MEMORY_MAX_TARGET, cannot be greater than the shared memory filesystem (/dev/shm) on