解決Oracle XE報錯ORA-12516(oracle回話數超出限制)


本地安裝的oracleXEUniv—oracle特別版,免費用戶可以自由使用,但有連接數量和存儲限制。

最近遇到一個問題,當我的SSM項目連接本地數據庫oracleXE后,我的navicat再連接時就會報錯ORA-12516,就是oracle的會話數超出了限制,一般都是由於多次connect建立多個連接會話引起的,最后導致oracle無法響應新的請求,從而出現ora-12516錯誤。於是上網查找解決辦法,下面方面親測成功。

select count(*) from v$process;  --取得數據庫目前的進程數
select value from v$parameter where name = 'processes';  --取得進程數的上限
alter system set session_cached_cursors=200 scope=spfile; alter system set session_max_open_files=200 scope=spfile; alter system set sessions=20 scope=spfile; alter system set license_max_sessions=200 scope=spfile; alter system set license_sessions_warning=200 scope=spfile; alter system set processes=200 scope=spfile; 

select count(*) from v$process;  --取得數據庫目前的進程數

開始執行時,結果為21

連接數量:select value from v$parameter where name = 'processes';  --取得進程數的上限

開始執行上述語句后,結果為40

執行上述修改后,重啟oracle實例:

1. 如安裝於 Windows 上,先運行 net stop oracleservicexe,再運行 net start oracleservicexe 即可。也可通過“服務”管理控制台重啟 OracleServiceXE 服務。
2. 如安裝於 Linux 上,先運行 /etc/init.d/oracle-xe start,再運行 /etc/init.d/oracle-xe stop 即可。

執行select value from v$parameter where name = 'processes';的結果為200,並且不會再報ORA-12516,成功連接,連接后再執行select count(*) from v$process;結果為41


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM