ORA-27102: out of memory Linux-X86_64

一、描述
目前生產環境用X86服務器的是越來越多了,非核心繫統基本不會用小型機了。
客戶服務器擴內存,想修改SGA大小,但是提示報告內存溢出。原有物理內存8G,擴容到32G,SGA和PGA都需要進行調整才能起到優化的效果。

二、報錯信息如下
SQL> startup nomount
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
第一感覺好像是物理內存不夠用了,我們設置SGA+PGA=物理內存的60%左右,結果就是報錯,這裏提醒大家,修改參數之前,一定要備份參數文件。

三、分析
我們要知道安裝數據庫的時候其實修改了一個文件/etc/sysctl.conf,這個文件裏的內容大家要知道是什麼意思才行,切勿複製粘貼。原因在這裏:
SHMALL is the total amount of shared memory, in pages, that the system can use at one time.

四、解決方法
Set SHMALL equal to the sum of all the SGAs on the system, divided by the page size.

The page size can be determined using the following command:

$ getconf PAGE_SIZE
4096
For example, if the sum of all the SGAs on the system is 16Gb and the result of '$ getconf PAGE_SIZE' is 4096 (4Kb) then set shmall to 4194304 pages

As the root user set the SHMALL to 4194304 in the /etc/sysctl.conf file:

kernel.shmall = 4194304

then run the following command:

$ sysctl -p
$ cat /proc/sys/kernel/shmall
4194304

五、總結
對於/etc/sysctl.conf這個文件不瞭解的同學,需要補課了。喜歡的朋友可以轉發,歡迎技術交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章