本文来源:宁静致远 的《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
1 [oracle@BJRMANTS ~]$ su - root 2 Password: 3 [root@BJRMANTS ~]# vi /etc/fstab 4 [root@BJRMANTS ~]# df -g 5 df: invalid option -- 'g' 6 Try `df --help' for more information. 7 [root@BJRMANTS ~]# df -h 8 Filesystem Size Used Avail Use% Mounted on 9 /dev/sda2 20G 5.8G 13G 31% / 10 tmpfs 4.0G 1.6G 2.4G 40% /dev/shm 11 /dev/sda1 485M 51M 409M 12% /boot 12 /dev/sda6 197G 160G 28G 86% /orabak 13 /dev/sda8 20G 6.2G 13G 34% /oracle 14 /dev/sda5 690G 549G 106G 84% /oradata 15 /dev/sda7 187G 75G 104G 42% /oralog 16 [root@BJRMANTS ~]# mount -o remount /dev/shm 17 [root@BJRMANTS ~]# df -h 18 Filesystem Size Used Avail Use% Mounted on 19 /dev/sda2 20G 5.8G 13G 31% / 20 tmpfs 6.0G 1.6G 4.5G 26% /dev/shm 21 /dev/sda1 485M 51M 409M 12% /boot 22 /dev/sda6 197G 160G 28G 86% /orabak 23 /dev/sda8 20G 6.2G 13G 34% /oracle 24 /dev/sda5 690G 549G 106G 84% /oradata 25 /dev/sda7 187G 75G 104G 42% /oralog 26 [root@BJRMANTS ~]# 27 28 29 30 [oracle@BJRMANTS ~]$ export ORACLE_SID=oelncbi 31 [oracle@BJRMANTS ~]$ sqlplus / as sysdba 32 33 SQL*Plus: Release 11.2.0.3.0 Production on Wed Dec 5 10:48:51 2012 34 35 Copyright (c) 1982, 2011, Oracle. All rights reserved. 36 37 Connected to an idle instance. 38 39 SQL> startup; 40 ORA-00845: MEMORY_TARGET not supported on this system 41 SQL> exit