我們知道,數(shù)據(jù)庫是與操作系統(tǒng)緊密相關(guān)的軟件,所以很多數(shù)據(jù)庫功能的實現(xiàn)均需要操作系統(tǒng)支持,尤其是現(xiàn)在主流數(shù)據(jù)庫都在運行中創(chuàng)建大容量的緩沖內(nèi)存,提供數(shù)據(jù)庫的查詢或操作的命中率,那么操作系統(tǒng)的內(nèi)存無疑是一個很大的瓶頸,在此我們更多的是討論,在主流的unix平臺系統(tǒng)中主要是hp-ux和solaris安裝數(shù)據(jù)庫需要設(shè)置的共享內(nèi)存的內(nèi)核參數(shù)問題,適用于所有的RDBMS數(shù)據(jù)庫。
基本參數(shù)介紹:
shared memory:共享內(nèi)存段:
一個內(nèi)存區(qū)域,可以被不同的進(jìn)程讀取。
1. 使用單個共享內(nèi)存段。
2. 使用連續(xù)多個共享內(nèi)存段。
3. 使用多個不連續(xù)共享內(nèi)存段。
database優(yōu)先使用的一種方法,如果成功,則繼續(xù)初始化,不成功則使用第二種方法,再不成功則使用第三種方法。如果再不成功,則初始化失敗,database報告錯誤代碼。
Semaphore:
可以看作一個標(biāo)記。可以有On和Off兩種狀態(tài)。database使用semaphores來實現(xiàn)服務(wù)器進(jìn)程對共享緩沖內(nèi)存的存取控制。
Shared memory 和semaphore 是database在Unix上運行的重要資源。如果database實例得不到所需要的資源,實例啟動就會失敗。
其細(xì)化具體參數(shù)項的含義和字段解釋如下:
shmmax
含義:這個設(shè)置并不決定究竟database數(shù)據(jù)庫或者操作系統(tǒng)使用多少物理內(nèi)存,只決定了最多可以使用的內(nèi)存數(shù)目。這個設(shè)置也不影響操作系統(tǒng)的內(nèi)核資源。
設(shè)置方法:通常保證0.5*物理內(nèi)存,各unix平臺的參數(shù)名稱:
solaris:shminfo_shmmax
[size=3] [size=2]HP-UX[/size]:shnmax[/size]
shmmin
含義:共享內(nèi)存的最小大小。
設(shè)置方法:一般都設(shè)置成為1。
shmmni
含義:系統(tǒng)中共享內(nèi)存段的最大個數(shù)。
solaris : shminfo_shmmin
HP-UX:shmmin
shmseg
含義:每個用戶進(jìn)程可以使用的最多的共享內(nèi)存段的數(shù)目。
solaris:shminfo_shmseg
HP-UX:shmseg
semmni
含義:系統(tǒng)中semaphore identifierer的最大個數(shù)。
設(shè)置方法:把這個變量的值設(shè)置為這個系統(tǒng)上的所有database的實例的相關(guān)processes的那個值加10。
solaris: seminfo_semmni
HP-UX:semni (等于nproc)
semmns
含義:系統(tǒng)中emaphores的最大個數(shù)。
設(shè)置方法:這個值可以通過以下方式計算得到:各個database實例的的processes的值的總和(除去最大的 Processes參數(shù))+最大的那個Processes×2+10×database processes的個數(shù)。
solaris:seminfo_semmns
HP-UX:semmns
semmsl:
含義:一個set中semaphore的最大個數(shù)。
設(shè)置方法:設(shè)置成為10+所有database最大的Processes的值。
solaris:seminfo_semmsl
HP-UX:semmsl
至于具體的修改在solaris一般修改/etc/system文件,solaris 10版本或以上動態(tài)修改projmod,HP-UX可以通過/usr/sbin/kcweb -F[font=宋體][size=10.5pt]命令修改,也可以通過sam修改,但是修改后請記住需要重啟系統(tǒng)以讓修改生效。[/size][/font]
新聞熱點
疑難解答