实例启动时报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.

你可能感兴趣的:(实例启动时报ORA-00845的解决方法)