实例启动时报ORA-00845的解决方法
idle> startup
ORA-00845: MEMORY_TARGET not supported on this system
因为我一个库里有两个实例,启动时/dev/shm就不够用了。
在
Oracle 11g中如果采用AMM内存管理,那么当MEMORY_TARGET的值大于/dev/shm的时候,就会报ORA-00845: MEMORY_TARGET not supported on this system错误,解决办法增加/dev/shm大小,在redhat系列
系统中,/dev/shm的默认值是系统总内存的一半
1、修改/dev/shm大小
[oracle@rtest ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 140G 57G 76G 43% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 3.9G 995M 3.0G 25% /dev/shm
[oracle@rtest ~]$ mount -o size=8G -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
mount: only root can do that
[oracle@rtest ~]$ su -
Password:
[root@rtest ~]# mount -o size=8G -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
[root@rtest ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 140G 57G 76G 43% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 8.0G 995M 7.1G 13% /dev/shm
2、 vi /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults,size=8G 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda2 swap swap defaults 0 0
3、启动
数据库验证:
[oracle@rtest ~]$ export ORACLE_SID=test0924
[oracle@rtest ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Mon Oct 28 14:41:13 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
idle> idle>
idle> conn /as sysdba
Connected to an idle instance.
idle> startup
ORACLE instance started.
Total System Global Area 3340451840 bytes
Fixed Size 2232960 bytes
Variable Size 3204451712 bytes
Database Buffers 117440512 bytes
Redo Buffers 16326656 bytes
Database mounted.
Database opened.
idle> conn /as sysdba
Connected.
sys@TEST0924> show parameter mem
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 3200M
memory_target big integer 0
shared_memory_address integer 0
4、官方解析
Starting with Oracle Database 11g, the Automatic Memory Management feature requires more shared memory (/dev/shm)and file descriptors. The size of the shared memory should be at least the greater of MEMORY_MAX_TARGET and MEMORY_TARGET for each Oracle instance on the computer. If MEMORY_MAX_TARGET or MEMORY_TARGET is set to a non zero value, and an incorrect size is assigned to the shared memory, it will result in an ORA-00845 error at startup.
5、解决问题建议
5.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 your operating system. To resolve the current error, increase the /dev/shm file size.
5.2. If configuring AMM is not possible due to lack of space on /dev/shm mount point, you can configure ASMM instead of AMM, i.e. set SGA_TARGET, SGA_MAX_SIZE and PGA_AGGREGATE_TARGET instead of MEMORY_TARGET.