手机版
你好,游客 登录 注册
背景:
阅读新闻

解决Oracle XE报错ORA-12516(Oracle回话数超出限制)

[日期:2019-07-26] 来源:Linux社区  作者:nietzsche2019 [字体: ]

本地安装的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

更多Oracle相关信息见Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12

 

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

 

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-07/159590.htm

linux
相关资讯       ORA-12516 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款