故障:ORA-00845: MEMORY_TARGET not supported on this system
Oracle 11g的Linux版本在修改了MEMORY_TARGET或者SGA_TARGET后启动可能会报错:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system
这个问题是由于设置SGA的大小超过了操作系统/dev/shm的大小:
[root@enterprice64 ~]# df -k /dev/shm
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 4089416 0 4089416 0% /dev/shm
Oracle在metalink的文档:Doc ID:Note:460506.1中进行了说明。解决这个问题只有两个方法,一种是修改初始化参数,使得初始化参数中SGA的设置小于/dev/shm的大小,另一种方法就是调整/dev/shm的大小。
修改/dev/shm的大小可以通过修改/etc/fstab来实现:
[root@db2 ~]# df -h /dev/shm //查看/dev/shm大小
tmpfs 1.0G 500M 500M 50% /dev/shm
[root@db2 ~]#vi /etc/fstab //更换/dev/shm默认大小为2G
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
#tmpfs /dev/shm tmpfs defaults 0 0
tmpfs /dev/shm tmpfs defaults,size=2048M 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-hda3 swap swap defaults 0 0
//注:本行defaults,size=10240M 中间无空格
[root@db2 ~]#
[root@db2 ~]# umount /dev/shm
[root@db2 ~]# mount /dev/shm
[root@db2 ~]# df -h
/dev/hda2 8.2G 4.1G 3.8G 53% /
/dev/hda1 92M 12M 75M 14% /boot
tmpfs 2.0G 240M 1.8G 12% /dev/shm
/dev/sda 7.9G 7.5G 39M 100% /array
修改/etc/fstab,重新mount /dev/shm,然后就可以启动数据库了。
[oracle@db2 ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.1.0 Production on Sat Jan 21 13:26:28 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 4743446528 bytes
Fixed Size 2143824 bytes
Variable Size 3892316592 bytes
Database Buffers 805306368 bytes
Redo Buffers 43679744 bytes
Database mounted.
Database opened