1、關於修改solaris10內核參數問題。。錯誤ORA-27102 "Out of Memory" 。。
之前在HP-UX和AIX系統上,安裝oracle時,都有提到過修改OS內核參數的問題。主要是增大內存需求。。oracle在安裝或啓動、運行時,應該都是比較耗內存的。。
但在solaris中卻沒有進行內核參數修改。。
問題描述及解決:在solaris2中已經正常運行orcl數據庫,想再建一個orcl1,供備份測試用,但用dbca剛執行建立,就會報out of memory錯誤,,忽略後直接ORA-1034 ORACLE not available,就終止操作了。。
然後就在solaris1中,建庫試試,solaris2和solaris1兩臺機器硬件配置及OS和oracle版本均完全相同。。solaris1中原來沒有庫,只是安裝了數據庫軟件,然後在solaris1中成功建立了orcl1庫,然後接着建立了orcl2庫,sga均是自動的,並設置爲最低值(爲OS內存的11%)【不過em沒有建成功,報錯,不知爲何,,先沒管。。見附圖。。】。。
最後在solaris2中,按照網上所說,用root用戶在/etc/system文件中加入下列內容:
set noexec_user_stack=1
set semsys:seminfo_semmni=100
set semsys:seminfo_semmns=25600
set semsys:seminfo_semmsl=256
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
然後重啓reboot,再次用oracle用戶建庫orcl1,dbca建庫成功!接着建立orcl2再次成功。(orcl1和orcl2均是採用的最新sga 11%)後來又把上述參數去掉了,重啓後再試試看。。結果,原先的orcl都不能啓動了(同樣報out of memory錯誤)。。且dbca也無法再建庫了。。但orcl1和orcl2都能成功啓動(應該是sga分配較小的緣故)。。
再次在/etc/system中加入上述參數設置,一切OK,問題解決。
結論證明:上述內核參數的修改是必須且重要的。否則默認的內存設置,已經有一個啓動的數據庫實例,且該實例sga較大的話,再進行dbca或者再打開另一個數據庫時,都會造成oracle內存不夠用,報錯out of memory。。在solaris1機器上做測試時沒有遇到out of memory錯誤是由於建立的測試庫所分配的sga都很小(下限值11%),,故沒有測出問題。。而solaris2中已運行的orcl庫貌似當初建庫時分配的sga內存空間較大。。。