oracle 10g for solaris 10(x86),dbca建庫out of memory處理

wisdomone1發表於2009-04-05

Out of Memory Problems on Oracle 10 / Solaris 10 ---修改核心引數

上一篇 / 下一篇  2008-12-19 16:13:43 / 個人分類:經驗 & 總結

    在solaris上安裝之前,我們都會設定系統的核心引數,在solaris 9及之前,我們都是透過修改/etc/system檔案來進行修改的,但是從solaris 10開始,這些核心引數稱為“resource controle",是需要透過prctl命令進行更改,有些朋友可能還是按照solaris 9的方式進行更改,當使用的記憶體較大時,由於沒有正確設定,可能會引起"out of memory"的錯誤。
Dnt'|Q I"`*h;W0
ITPUB個人空間+o*y/COScT4u T9hD

    從solaris 10開始,對sem,shm的配置無法透過/etc/system檔案來進行修改,更改方式如下:ITPUB個人空間&k3m.XFrc
1) 設定max-shm-memory的值為4GB:
0p"v't?/R N(fX0#projadd -U oracle –K "project.max-shm-memory=(priv,4096MB,deny)" user.oracleITPUB個人空間/JBTS9k+D7v tJ'\
檢視設定是否生效:ITPUB個人空間bCs\1M\]
# cat /etc/project
0X4A'vB;Si-O.xrs0在project檔案的末尾能夠看到新增加的一行ITPUB個人空間X WM-Z D
user.oracle:100::oracle::project.max-shm-memory
H&@W I)nH0=(priv, 4294967296,deny)ITPUB個人空間9QO"o[1B,s

ITPUB個人空間0n#p7I"Y&j K X;a

2) 修改引數max-sem-idsITPUB個人空間s(Qb4uy2Gm
# projmod -s -K "project.max-sem-ids=(priv,256,deny)"  user.oracle


8K*`Y(h j0

檢查修改是是否生效

檢視是否生效ITPUB個人空間bl1G/m+^*_
# su - oracleITPUB個人空間b:^y8pC tM
$ prctl –i project user.oracle
n6\'e'H)\0project: 100: user.oracleITPUB個人空間4du i$YdL:|C
NAME    PRIVILEGE       VALUE    FLAG   ACTION RECIPIENTITPUB個人空間 `+L1Y"Ni(|;W
。。。。。。
.Ps0jpZe2oc0ITPUB個人空間c2K-d'm5v
project.max-shm-memory
p0[sLT0        privileged     4.00GB      -   deny           -ITPUB個人空間!L:Y.d4V eyq/n Du
        system          16.0EB    max   deny           -
1o.] \^f0project.max-shm-idsITPUB個人空間cPlUyfi(~|iE
        privileged        128       -   deny           -ITPUB個人空間;m;T+Z oz
        system          16.8M     max   deny           -
u'@kV0l0project.max-msg-ids
W Kc T5A,{&z0}~S(T0        privileged        128       -   deny           -
+a4e's8A_0        system          16.8M     max   deny           -
,?7U6k6k2?EU:vK0project.max-sem-ids
+{,f`"Z U&I"G0        privileged       256       -   deny           -ITPUB個人空間'z%`;d z~M1w2h
        system          16.8M     max   deny           -
J?y0]A6Y~+r0
gp4M)p/C2I0。。。。。。
kKQ O#Nm0
T5bB;lk0除了設定sem,shm引數外,還需要在/etc/system中增加noexec_user_stack引數ITPUB個人空間3w,z%rbf1s Sf
# cp /etc/system  /etc/system.orig
7@&A}9Lm%D X0Vi  /etc/systemITPUB個人空間ne poo
set noexec_user_stack=1
'y1f,w#b!r5[0set shmsys:shminfo_shmmax=4294967296ITPUB個人空間B9nm X#eWT
ITPUB個人空間.YFkhE}
經驗:
p!|u p ZO.a s01. 在solaris 10上安裝10g 時,曾經碰到當SGA設定過大時,導致重其後,有一些資源需要手工啟動,因此,oracle官方建議把shmmax的引數也加到/etc/system檔案下(可見Doc id : 399895.1 from metalink)ITPUB個人空間y!` P,QV5bny
set noexec_user_stack=1
G9x C-m d^z9L0set shmsys:shminfo_shmmax=4294967295

2. oracle metalink上曾經有兩份文件,一份設定shmmax為4g,另一個設定shmmax為6g,最後,oracle還是建議設定4g較適合

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-584667/,如需轉載,請註明出處,否則將追究法律責任。

相關文章