There is only two /etc/system parameters that are going to keep you sga
from allocating: shmmax and semmns. In this case you're hitting
semphore issues. Do this:
# ipcs -o
This will list your shared memory segements and semaphores. You always
have at least one shared memory segment owned by root .... you are
interested in the stuff owned by oracle. With all databases on the
server down, you should not see anything owned by oracle. this is a
good place to start ... make sure you don't have any shared memory
segments or semaphores hanging around.
Next,
cat the /etc/system file and look at the lines that have semmns and
shmmax on them .... what are they set to? A good place to start with
shmmax is the default recommended in the install guide ... 4 GB ....
don't set this in hex .... it is impossible to calculate by mere mortals
and I've seen cases where it doesn't work. You can set semmns as high
as 64 K, but I've helped customers with F25Ks and no sane person usually
goes beyone 24,000 without a darned good technical reason .... start
with 1, 2 or 4 K and you should be fine.
Lastly,
# sysdef | grep -i shm
# sysdef | grep -i sem
This will print out what the system actually has set in the kernel ....
/etc/system had better match. Here's what I have:
* Oracle parameters
set noexec_user_stack=1
set semsys:seminfo_semmni=100
set semsys:seminfo_semmns=1024
set semsys:seminfo_semmsl=256
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
and it works fine on an E450 with 2 GB of RAM and 2 CPUs ... I have
9.2.0.6 and 10.1.0.2 running.
Thanks!