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!
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!
博客主要围绕Oracle系统参数展开,指出影响SGA分配的两个/etc/system参数shmmax和semmns,介绍通过ipcs -o命令查看共享内存段和信号量,查看并设置shmmax和semmns参数,还提到用sysdef命令检查系统内核设置,确保与/etc/system文件匹配。
673

被折叠的 条评论
为什么被折叠?



