Oracle 11gR2 RAC ORA-00845 MEMORY_TARGET not supported on this system 解决方法(一)

2014-11-24 09:11:52 · 作者: · 浏览: 1
公司刚上线一套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





Oracle 官网的说明:


ORA-00845 When Starting Up An 11g Instance With AMM Configured. [ID 460506.1]

Modified 18-FEB-2010 Type PROBLEM Status PUBLISHED
In this Document
Symptoms
Changes
Cause
Solution
References

Applies to:

Oracle Server - Enterprise Edition - Version: 11.1.0.6 to 11.2.0.2.0 - Release: 11.1 to 11.2
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 bytes.The /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 and used is bytes.memory_target needs larger /dev/shm

If ORA-04031 is seen in the alert log, sometimes you can not establish new connections due to this problem.

Changes

Installed 11g, or created a new database on 11g and is starting to use the AMM (Automatic Memory Management) feature.

Cause

This feature requires the /dev/shm file system to be mounted for at least %llu bytes.
/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

1. If you are installing Oracle 11g on a Linux system, note that Memory Size (SGA and PGA), which sets
the initialization parameter MEMORY_TARGET or MEMORY_MAX_TARGET, cannot be greater than the shared memory filesystem (/dev/shm) on