oracle报V27的错误解决办法,oracle11g ora-27154 past/wait 错误解决方法
開啟oracle數據庫出現:
ORA-27154: post/wait create failed
ORA-27300: OS system dependent operation:semget failed with status: 28
這是由于/etc/sysctl.conf 中kernel.sem配置更改所致。
無法獲得操作系統的信號量。信號量相當于OS的內存鎖,類似于oracle中的latch,每個進程要獲取操作系統內存時(不是PGA或SGA),需要先獲取到信號量才能申請內存。為了能保證每個進程不被阻塞,所以最好每個進程能分配到2個信號量。由于我們修改了oracle的processes參數,oracle安裝建議這個參數一般設置為processes*2+15是比較保險的。檢查該參數發現為300多,調整該參數為set semsys:seminfo_semmns=1024,數據庫正常啟動。
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpcreates
診斷:由于processed過大造成信號量不夠
解決:
sem其實是semaphores的縮寫,查看當前設置
[oracle@ebsse oracle]$ cat /proc/sys/kernel/sem
250 32000 100 128
4個數據分別對應
SEMMSL SEMMNS SEMOPM SEMMNI
如當oracle DB初始化參數文件中PROCESSES參數設置較大時,需要調整SEMAPHORES設置
SEMMSL應該設置為服務器中各個實例中最大的PROCESSES參數+10,例如,當最大的PROCESSES參數為5000時,SEMMSL應設置為5010。
SEMMNS參數應設置為SEMMSL*SEMMNI,接上例SEMMSL為5010,SEMMNS參數應為(5010*128)=641280。
SEMOPM參數應設置與SEMMSL參數相同,接上例此處應設置為5010
更改當前SEMAPHORES參數設置:
[root@ebsse oracle]# echo "5010 641280 5010 128" > /proc/sys/kernel/sem
--echo "810 103680 810 128" > /proc/sys/kernel/sem
[root@ebsse oracle]# cat /proc/sys/kernel/sem
5010 641280 5010 128
如需啟動時自動應用,可在/etc/sysctl.conf增加:
kernel.sem =5010 641280 5010 128
sysctl -p
總結
以上是生活随笔為你收集整理的oracle报V27的错误解决办法,oracle11g ora-27154 past/wait 错误解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab矩阵初等变换矩阵,实验一
- 下一篇: oracle写入导出文件时出错,帮忙!E