怎麼改變AIX上使用oracle的一些限制

paulyibinyi發表於2009-04-26

怎麼改變AIX上使用oracle的一些限制

1、需要修改使用者能開啟的最大程式數目

預設每個使用者最大隻能開啟128個程式數目,而oracle使用者一般需要開啟上千個程式。

#chdev -l sys0 -a maxuproc=’2000′

sys0 changed

以上修改,可以透過如下命令來檢視

#lsattr -El sys0

2、修改使用者限制

主要是Oracle使用者,可以透過如下命令檢視當前限制

$ulimit -a

time(seconds)        unlimited
file(blocks)         4194302
data(kbytes)         unlimited
stack(kbytes)        4194304
memory(kbytes)       unlimited
coredump(blocks)     4194302
nofiles(descriptors)   4000

具體資訊可以參考如下檔案

#more /etc/security/limits

……
default:
        fsize = 2097151
        core = 2097151
        cpu = -1
        data = 262144
        rss = 65536
        stack = 65536
        nofiles = 2000
……
oracle:
        fsize = 4194302
        core = 4194302
        data = -1
        rss = -1
        stack = -1
        nofiles=4000

注意,-1是無限制

要修改如上限制,可以採用命令如

#chuser data=’-1′ rss=’-1′ stack=’-1′ oracle

#chuser nofiles=4000 oracle

或者是smit chuser來操作

3、修改系統引數

主要是效能需要記憶體管理

#vmo -p -o v_pinshm=1 #Oracle需要,pinSGA的需要

#vmo -p -o minperm%=5 #百分比% ,檔案系統cache最小記憶體使用

#vmo -p -o maxclient%=20 #百分比% jfs2nfs最大檔案系統cache使用

#vmo -p -o maxperm%=20 #百分比% ,普通檔案系統最大檔案系統cache使用

#vmo -p -o minfree=1200 #120*cpu個數 ,記憶體空閒

#vmo -p -o maxfree=1280 #128*cpu個數 ,記憶體空閒

記憶體管理可選

#vmo -p -o strict_maxperm=0 #預設是0,建議不要改到11為硬限制,可能會觸發bug

#vmo -p -o strict_maxclient=0 #預設1,可以改為0,一般不改

檔案系統

#ioo -p -o j2_nBufferPerPagerDevice=512

ha的需求,HA情況下建議修改,但也不是強行要求

#no -p -o routerevalidate=1

#no -p -o tcp_finwait2=240

#no -p -o tcp_recvspace=262144

#no -p -o tcp_sendspace=262144

#no -p -o rfc1323=1

其中,-p表示修改對當前與重新啟動生效,如果只能重新啟動或者重新連線生效的,將提示重起或者重新連線後生效,如果是-r引數,則表示只是重新啟動後生效。修改結果可以參考檔案

#more /etc/tunables/nextboot

# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.

# bos520 src/bos/usr/sbin/perf/tune/nextboot 1.1

# Licensed Materials - Property of IBM

# (C) COPYRIGHT International Business Machines Corp. 2002
# All Rights Reserved

#
US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

# IBM_PROLOG_END_TAG
vmo:
        minfree = "1440″
        maxfree = "1536″
        maxperm% = "20″
        maxclient% = "20″
        minperm% = "5″
        v_pinshm = "1″
ioo:
        j2_nBufferPerPagerDevice = "512″
no:
        routerevalidate = "1″
        tcp_finwait2 = "240″
        tcp_recvspace = "262144″
        tcp_sendspace = "262144″
        rfc1323 = "1″

4、設定AIXTHREAD_SCOPE=S

控制爭用作用域。P 意味著基於程式的爭用作用域(M:N)。S 意味著基於系統的爭用作用域(1:1)。

echo $AIXTHREAD_SCOPE(這是由內部開啟的,因此初始的預設值不可以由命令 echo 看到)

AIXTHREAD_SCOPE={P|S},用命令export AIXTHREAD_SCOPE = {P|S} 更改會在 shell 中立即生效。在退出這個 shell 之前一直有效。當加上命令 AIXTHREAD_SCOPE={P|S} 到檔案 /etc/environment 時會產生持久的變化

ORACLE 9i+Aix 4.3 or Aix 5.1的環境下,設定該變數可以大幅度的減少程式記憶體的使用量,在Aix 5.2以上,請參考另外一種方法,IY49415+Oracle patch p3028673,詳細資訊參考oracle bug 3028673

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

相關文章