程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle和SUN Solaris內核參數

Oracle和SUN Solaris內核參數

編輯:Oracle數據庫基礎

本文描述了Sun Solaris上運行Oracle數據庫所需要設置的一些內核參數。

一些預備知識

shared memory:共享內存段:

一個內存區域,可以被不同的進程讀取。Oracle使用它來構成SGA。Oracle使用以下三種方法來創建一個SGA區:

1.使用單個共享內存段。

2.使用連續多個共享內存段。

3.使用多個不連續共享內存段。

Oracle優先使用的第一種方法,如果成功,則繼續初始化,不成功則使用第二種方法,再不成功則使用第三種方法。如果再不成功,則初始化失敗,Oracle報告錯誤代碼。

Semaphore:(信號量)

可以看作一個標記。可以有On和Off兩種狀態。Oracle使用semaphores來實現服務器進程對SGA區的存取控制。

Shared memory 和semaphore 是Oracle在Unix上運行的重要資源。如果Oracle 實例得不到所需要的資源,實例啟動就會失敗。

參數:

對於運行一個Oracle實例的Solaris系統,改變/etc/system文件中的一些關於共享內存的參數,以使Oracle實例可以正常運行。如果有多個實例的話,還需根據下面方法重新計算某些值。

共享內存:

shmmax

含義:這個設置並不決定究竟Oracle數據庫或者操作系統使用多少物理內存,只決定了最多可以使用的內存數目。這個設置也不影響操作系統的內核資源。max shared memory segment size (SHMMAX) bytes

設置方法:0.5*物理內存

例子:Set shmsys:shminfo_shmmax=10485760

shmmin

含義:共享內存的最小大小。

設置方法:一般都設置成為1。

例子:Set shmsys:shminfo_shmmin=1:

shmmni

含義:系統中共享內存段的最大個數。

例子:Set shmsys:shminfo_shmmni=100

shmseg

含義:每個用戶進程可以使用的最多的共享內存段的數目。

例子:Set shmsys:shminfo_shmseg=20:

信號量:

semmni

含義:系統范圍內設置信號量集的最大數目. UNIX將信號量分配到個信號量集.分配的信號量數目的范圍為1到semmsl參數所設置的值.

設置方法:固定

例子:Set semsys:seminfo_semmni=100

semmsl:

含義:一個set中semaphore的最大個數。系統范圍內信號量集中信號量的數目.

設置方法:設置成為10+所有Oracle實例的InitSID.ora中最大的Processes的值。

例子:Set semsys:seminfo_semmsl=200

semmns

含義:系統中semaphores的最大個數。

設置方法:這個值可以通過以下方式計算得到:各個Oracle實例的initSID.ora裡邊的processes的值的總和(除去最大的Processes參數)+最大的那個Processes×2+10×Oracle實例的個數。

例子:Set semsys:seminfo_semmns=200

semopm

set semsys:seminfo_semopm=100

semvmx

set semsys:seminfo_semvmx=32767

改變了/etc/system裡邊以上參數以後,重新啟動計算機:

$reboot

然後檢查當前的參數:

$sysdef -I

如果系統參數仍舊沒有改變得話,使用以下命令:

$modload /kernel/sys/shmsys。"

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved