添加SGA後啓動數據庫報ORA-27102: out of memory

centos6.2 X64    oracle10.2  內存24G

 

sql>alter system set sga_max_size=8192M scope=spfile;

sql>alter system set sga_target=8192M scope=spfile;

sql>shutdown immediate;

sql>startup

ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device

 

 

經查,發現是一個參數設置的不對/etc/sysctl.conf的shmall

shmall這個參數設置的值太小就會報ORA-27102: out of memory

對於32位系統,一頁=4k,也就是4096字節。
kernel.shmall = 2097152  就是 2097152*4k/1024/1024 = 8G 就是說可用共享內存一共 8G

設置的一般規律

kernel.shmall = 2097152    ---內存8G
kernel.shmall = 4194304    ---內存16G

kernel.shmall = 6291456 ---內存24G
kernel.shmall = 8388608    ---內存32G

我改的kernel.shmall = 41943040  ,結果好了,這樣可以會留下什麼後遺症


這裏,對每個參數值做個簡要的解釋和說明。
    (1)shmmax:該參數定義了共享內存段的最大尺寸(以字節爲單位)。缺省爲32M,對於oracle來說,該缺省值太低了,通常將其設置爲2G。
    (2)shmmni:這個內核參數用於設置系統範圍內共享內存段的最大數量。該參數的默認值是 4096 。通常不需要更改。
    (3)shmall:該參數表示系統一次可以使用的共享內存總量(以頁爲單位)。缺省值就是2097152,通常不需要修改。
    (4)sem:該參數表示設置的信號量。
    (5)file-max:該參數表示文件句柄的最大數量。文件句柄設置表示在linux系統中可以打開的文件數量。


    修改好內核以後,執行下面的命令使新的配置生效。
# /sbin/sysctl -p

發佈了46 篇原創文章 · 獲贊 7 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章