解决ORA-00845: MEMORY_TARGET not supported on this system

在11gR2才会出现的错误。

 

oracle的文档对这个错误的描述是

 

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.

 

 

MEMORY_TARGET是11g才加入的新的内存参数,他是10g的ASMM的扩展,大家还记得10g里的SGA_TARGET和SGA_MAX_SIZE吧,这是一个自动管理的特性。当我们配置了SGA_TARGET后,实例会根据自己收集的信息,对SGA组件进行自动调整,调整的目标就是这个TARGET,在11g里,ASMM改进为AMM,也就是把shared取消了,Automatic Shared Memory Managemnet变成了Automatic  Memory Managemnet,这样不仅仅是SGA在玩了,把PGA也加进来一起玩了。通过MEMORY_TARGET进行类似的控制。

 

这里的错误就是和这个TARGET有关。这里的TARGET的配置已经超过了我们的物理上的/dev/shm的大小。

 

修改的方法两种,

 

1. 增加/dev/shm, /dev/shm通常用做共享内存。  /dev/shm是一个临时文件系统(tmpfs) 从/etc/fstab中mount支持标准的参数"size",可以用size来增加或者减少在/dev/shm上的tmpfs大小.如果没有设置size,它的大小是系统RAM的一半。

修改/etc/fstab文件

 

/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults,size=1024M         0 0

 

umount /dev/shm

mount /dev/shm

df -h 在查查修改后的/dev/shm的大小

 

2.  修改实例的MEMORY_TARGET参数。

这个方法用alter system set memory_target=200M;

 

比较一下,如果是物理条件允许的话,很明显方法一要好的多。

 

 

Oracle技术论坛  http://www.oraforum.net

你可能感兴趣的:(oracle,ext,System,action,each,documentation)