本文来源:宁静致远 的《ORA-00845 MEMORY_TARGET not supported on this system 的解决》

oracle11g数据库在执行dbca或者调整sga后重启oracle的时候可能会出现ORA-00845 MEMORY_TARGET not supported on this system 错误。

究其原因就是Linux系统的shm的大小比SGA设置的小,造成的,距离来说,SGA设置4G,而shm可能只有1G

网上提供两种解决办法:
01、调整sga的大小,这个明显不是我们所希望的
02、调整shm的大小,这样相对简单,具体操作如下
vi /etc/fstab
修改如下行的设置
tmpfs /dev/shm tmpfs defaults 0 0
改成
tmpfs /dev/shm tmpfs defaults,size=6G 0 0
保存退出
重新mount下shm使其生效
mount -o remount /dev/shm
通过df可以查看下,没有问题就可以继续安装数据库或者启动数据库了!

说明:服务器上有两个不同数据库实例,启动一个实例的时候没问题。在启动第二个INSTANCE的时候报ORA-00845错误。该测试服务器仅8G内存。  tmpfs  默认是4G  4.0G  1.6G  2.4G  40% /dev/shm.  两个实例的使用内存应该超过了4G,所以安装网上这篇文章进行修改tmpfs,问题解决了。  但是新问题tmpfs 大小的限制如何确定呢?观察一下内存使用在说吧

SQL> show parameter memory

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 1G
memory_target big integer 1G
shared_memory_address integer 0
SQL> show parameter sga NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 1G
sga_target big integer 0
SQL> alter system set memory_target=500m; System altered. SQL> show parameter memory NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 1G
memory_target big integer 500M
shared_memory_address integer 0 SQL> alter system set memory_max_target=800m scope=spfile; System altered. SQL> show parameter memory; NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 1G
memory_target big integer 500M
shared_memory_address integer 0
 [oracle@BJRMANTS ~]$ su - root
Password:
[root@BJRMANTS ~]# vi /etc/fstab
[root@BJRMANTS ~]# df -g
df: invalid option -- 'g'
Try `df --help' for more information.
[root@BJRMANTS ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 20G 5.8G 13G 31% /
tmpfs 4.0G 1.6G 2.4G 40% /dev/shm
/dev/sda1 485M 51M 409M 12% /boot
/dev/sda6 197G 160G 28G 86% /orabak
/dev/sda8 20G 6.2G 13G 34% /oracle
/dev/sda5 690G 549G 106G 84% /oradata
/dev/sda7 187G 75G 104G 42% /oralog
[root@BJRMANTS ~]# mount -o remount /dev/shm
[root@BJRMANTS ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 20G 5.8G 13G 31% /
tmpfs 6.0G 1.6G 4.5G 26% /dev/shm
/dev/sda1 485M 51M 409M 12% /boot
/dev/sda6 197G 160G 28G 86% /orabak
/dev/sda8 20G 6.2G 13G 34% /oracle
/dev/sda5 690G 549G 106G 84% /oradata
/dev/sda7 187G 75G 104G 42% /oralog
[root@BJRMANTS ~]# [oracle@BJRMANTS ~]$ export ORACLE_SID=oelncbi
[oracle@BJRMANTS ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Wed Dec 5 10:48:51 2012 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL> startup;
ORA-00845: MEMORY_TARGET not supported on this system
SQL> exit
05-02 01:17