Oracle和SUN Solaris核心引數(轉)

BSDLite發表於2007-08-12
Oracle和SUN Solaris核心引數(轉)[@more@]一些預備知識

  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資料庫或者作業系統使用多少實體記憶體,只決定了最多可以使用的記憶體數目。這個設定也不影響作業系統的核心資源。
  設定方法: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
  含義:系統中semaphore identifierer的最大個數。
  設定方法:把這個變數的值設定為這個系統上的所有Oracle的例項的init.ora中的最大的那個processes的那個值加10。
  例子:Set semsys:seminfo_semmni=100

  semmns
  含義:系統中emaphores的最大個數。
  設定方法:這個值可以透過以下方式計算得到:各個Oracle例項的initSID.ora裡邊的processes的值的總和(除去最大的Processes引數)+最大的那個Processes×2+10×Oracle例項的個數。
  例子:Set semsys:seminfo_semmns=200

  semmsl:
  含義:一個set中semaphore的最大個數。
  設定方法:設定成為10+所有Oracle例項的InitSID.ora中最大的Processes的值。
  例子:Set semsys:seminfo_semmsl=-200

  改變了/etc/system裡邊以上引數以後,重新啟動計算機:
  $reboot
  然後檢查當前的引數:
  $sysdef -I
  如果系統引數仍舊沒有改變得話,使用以下命令:
  $modload /kernel/sys/shmsys。

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

相關文章