安裝ORACLE時在Linux上設定核心參數的含義

來源:互聯網
上載者:User

標籤:

轉自:http://www.blogjava.net/tbwshc/archive/2012/09/13/387652.html
http://blog.csdn.net/wuweilong/article/details/7420310

安裝Oracle之前,除了檢查作業系統的硬體和軟體是否滿足安裝需要之外,一個重點就是修改核心參數,其中最主要的是和記憶體相關的參數設定。
SHMMAX參數:Linux進程可以分配的單獨共用記憶體段的最大值。一般設定為記憶體總大小的一半。這個值的設定應該大於SGA_MAX_TARGET或MEMORY_MAX_TARGET的值,因此對於安裝Oracle資料庫的系統,shmmax的值應該比記憶體的二分之一大一些。
# grep MemTotal /proc/meminfo
# cat /proc/sys/kernel/shmmax
上面的命令是檢查系統記憶體的大小,以及當前shmmax的設定。
# echo 21474836480 > /proc/sys/kernetbl/shmmax
# sysctl -w kernel.shmmax=21474836480
# echo "kernel.shmmax=21474836480" >> /etc/sysctl.conf
這是設定shmmax參數的幾種方法,這三種方式都可以將shmmax設定為20G。這個參數的修改可以不重啟資料庫。個人推薦使用第二種sysctl命令的方式。採用第三種方式需要執行sysctl –t操作或重啟,但是為了確保下次重啟後設定值仍然生效,第三種方式是必不可少的。前兩種方式類似alter system set scope = memory,而第三種方式則類似alter system set scope = spfile。
SHMMNI參數:設定系統級最大共用記憶體段數量。Oracle10g推薦最小值為4096,可以適當比4096增加一些。
# cat /proc/sys/kernel/shmmni
# echo 4096 > /proc/sys/kernel/shmmni
# sysctl -w kernel.shmmni=4096
# echo "kernel.shmmni=4096" >> /etc/sysctl.conf
檢查和設定方法如上,這和shmmax的修改方式沒有區別,不在贅述。
SHMALL參數:設定共用記憶體總頁數。這個值太小有可能導致資料庫啟動報錯。很多人調整系統核心參數的時候只關注SHMMAX參數,而忽略了SHMALL參數的設定。這個值推薦設定為實體記憶體大小除以分頁大小。
# getconf PAGE_SIZE
通過getconf擷取分頁的大小,用來計算SHMALL的合理設定值:
SQL> select 32*1024*1024*1024/4096 from dual;
32*1024*1024*1024/4096
----------------------
              8388608
對於32G的記憶體,4K分頁大小的系統而言,SHMALL的值應該設定為8388608。
# cat /proc/sys/kernel/shmall
# echo 8388608 > /proc/sys/kernel/shmall
# sysctl -w kernel.shmall=8388608
# echo " kernel.shmall=8388608" >> /etc/sysctl.conf
查詢和設定方法如上。
號誌semaphores是進程或線程間訪問共用記憶體時提供同步的計數器。
SEMMSL參數:設定每個號誌組中號誌最大數量,推薦的最小值是250。對於系統中存在大量並發串連的系統,推薦將這個值設定為PROCESSES初始化參數加10。
SEMMNI參數:設定系統中號誌組的最大數量。Oracle10g和11g的推薦值為142。
SEMMNS參數:設定系統中號誌的最大數量。作業系統在分配號誌時不會超過LEAST(SEMMNS,SEMMSL*SEMMNI)。事實上,如果SEMMNS的值超過了SEMMSL*SEMMNI是非法的,因此推薦SEMMNS的值就設定為SEMMSL*SEMMNI。Oracle推薦SEMMNS的設定不小於32000,假如資料庫的PROCESSES參數設定為600,則SEMMNS的設定應為:
SQL> select (600+10)*142 from dual;
(600+10)*142
------------
      86620
SEMOPM參數:設定每次系統調用可以同時執行的最大號誌操作的數量。由於一個號誌組最多擁有SEMMSL個號誌,因此有推薦將SEMOPM設定為SEMMSL的值。Oracle驗證的10.2和11.1的SEMOPM的配置為100。
通過下面的命令可以檢查號誌相關配置:
# cat /proc/sys/kernel/sem
250 32000 100 128
對應的4個值從左至右分別為SEMMSL、SEMMNS、SEMOPM和SEMMNI。修改方法為:
# echo 610 86620 100 142 > /proc/sys/kernel/sem
# sysctl -w kernel.sem="610 86620 100 142"
# echo "kernel.sem=610 86620 100 142" >> /etc/sysctl.conf

 

(1)kernel.shmmax:該參數定義了共用記憶體段的最大尺寸(以位元組為單位)。Linux 2.4/2.6預設為32M,對於oracle來說,該預設值太低了,通常將其設定為和實際記憶體一樣大即可。
(2)kernel.shmmni:這個核心參數用於設定系統範圍內共用記憶體段的最大數量。該參數的預設值是 4096 。通常不需要更改。
(3)kernel.shmall:該參數表示系統一次可以使用的共用記憶體總量(以頁為單位)。預設值就是2097152,通常不需要修改。
(4)kernel.sem:該參數表示設定的訊號量。
(5)fs.file-max:該參數表示檔案控制代碼的最大數量。檔案控制代碼設定表示在linux系統中可以開啟的檔案數量。
(6)net.ipv4.ip_local_port_range: 表示連接埠的範圍,為指定的內容。
(7)net.core.rmem_default: 表示接收通訊端緩衝區大小的預設值(以位元組為單位)。         
(8)net.core.rmem_max: 表示接收通訊端緩衝區大小的最大值(以位元組為單位)            
(9)net.core.wmem_default: 表示發送通訊端緩衝區大小的預設值(以位元組為單位)。
(10)net.core.wmem_max: 表示發送通訊端緩衝區大小的最大值(以位元組為單位)。
 
修改好核心以後,執行sysctl -p命令使新的配置生效。
 
注意:
 對於32位系統,一頁=4k,也就是4096位元組
 kernel.shmall = 4096  就是 4096*4k/1024/1024 = 15M 就是說可用共用記憶體一共 15M,資料庫當然會起不來啦。
 原值為 kernel.shmall = 4096
 
設定的一般規律
 
kernel.shmall = 2097152    ---記憶體8G
 kernel.shmall = 4194304    ---記憶體16G
 kernel.shmall = 8388608    ---記憶體32G
 kernel.shmall = 10485760    ---記憶體40G
 kernel.shmall = 12582912    ---記憶體48G
 kernel.shmall = 14680064    ---記憶體56G
 kernel.shmall = 16777216    ---記憶體64G
 kernel.shmall = 20971520    ---記憶體80G
 kernel.shmall = 25165824    ---記憶體96G
 kernel.shmall = 33554432    ---記憶體128G
 kernel.shmall = 50331648    ---記憶體192G
 kernel.shmall = 67108864    ---記憶體256G
 

安裝ORACLE時在Linux上設定核心參數的含義

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.