這是我們為大家提供的一篇介紹ORA-12500錯誤的解決實例的文章,接下來就讓我們一起來了解一下吧!
上星期天晚上10點,同事打電話到家了,反映數據庫的TNS時通時斷,嚴重影響生產。判斷應該是內存用完造成用戶無發連接造成。可是我在星期天上午才將內存由1.5G增加到4G。無論如何沒辦法在家解決,只好告訴上夜班的同事每半小時將網卡中斷一次,以便讓產線可以使用。
星期一上班,打開boot.ini,發現在內存增加後沒有加 /3G開關。加上/3G參數,重新啟動電腦,過了約半小時,產線反應問題復現---Ora-012500錯誤。看來沒有徹底解決。在網上查找異常原因,發現原因是雖然內存有4G,但Oracle能用的只有2G(需要做一些修改才能超越此限制,但時間不允許),而我的SGA用了1.5G, 在獨占模式下,每一個session將單獨分配2M左右的內存,300個Session需要600M,顯然,內存已經不夠用了。
根據以上分析,解決方法當然有3種,一是修改系統參數,讓Oracle能夠使用超過2G的內存,這需要在測試環境測過才可在正式環境進行,解決問題優先,這個以後再試。第二是減小為每一個會話分配的內存大小,以能連接更多的用戶。三是減小SGA的大小。第二個方法其實很簡單,先停止oracle服務和TNS服務,再運行以上命令
C:\oracle\ora81\bin>orastack oracle.exe 500000
Dump of file oracle.exe
Current Reserved Memory per Thread = 1048576
Current Committed Memory per Thread = 4096
New Reserved Memory per Thread = 500000
C:\oracle\ora81\bin>orastack tnslsnr.exe 500000
Dump of file tnslsnr.exe
Current Reserved Memory per Thread = 1048576
Current Committed Memory per Thread = 4096
New Reserved Memory per Thread = 500000
重新啟動oracle服務和TNS服務,打開數據庫。不過這個也沒做過,需要測試。看來降低SGA最簡單。打開init.ora文件,將SGA降低到1G,Shutdown Database,再Startup,問題解決。
以上就是我們為大家提供的介紹 ORA-12500錯誤的解決實例的文章,希望對大家有所幫助!