ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程序


Oracle连接数太多报错-ORA-12516错误,PL/SQL连接时错误如下图:

1,使用sqlplus提示“ MAXIMUM NUMBER OF PROCESSES(500) EXCEEDED”


2,使用ulimit -a 查看系统会话设置,MAX USER PROCESSES 不超过 16384就可以



3,重启服务器

4,查看进程和会话连接数量
SQL> select count(*) from v$session;
SQL> select count(*) from v$process;

5,查看processes设置
SQL> show parameter processes
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                              integer     0
db_writer_processes                          integer     2
gcs_server_processes                       integer     0
global_txn_processes                        integer     1
job_queue_processes                        integer     1000
log_archive_max_processes             integer     4
processes                                          integer     500

6,查看session设置
SQL> show parameter sessions

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size            integer     0
java_soft_sessionspace_limit             integer     0
license_max_sessions                        integer     0
license_sessions_warning                  integer     0
sessions                                              integer     780
shared_server_sessions                     integer

7,修改processes和sessions值(这两个值根据自己的需要调整)

SQL> alter system set processes=1500 scope=spfile; 系统已更改。
SQL> alter system set sessions=2280 scope=spfile; 系统已更改。


8,重启数据库,使更改生效

9,再次查看session,process两个值
查看processes设置
SQL> show parameter processes
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                                integer     0
db_writer_processes                           integer     2
gcs_server_processes                        integer     0
global_txn_processes                         integer     1
job_queue_processes                         integer     1000
log_archive_max_processes              integer     4
processes                                           integer     1500

查看session设置
SQL> show parameter sessions

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size               integer     0
java_soft_sessionspace_limit                integer     0
license_max_sessions                           integer     0
license_sessions_warning                     integer     0
sessions                                                 integer     2280
shared_server_sessions                        integer



解决这个问题的方法:
1,列出ORACLE进程,使用“kill -9 sid” 杀掉进程,再登录数据库修改process,session参数并重启库。 
[oracle@dba /]$ ps -ef |grep oracle

2, 因为连接会话太多并被占满,没有时间去一个个杀进程,所以重启服务器这种方法暂时问题得到缓解,然后再修改ORACLE sesssion和process参数并重启库。


其他:
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
=================================================================================

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任! 谢谢合作!

QQ: 164798858@qq.com
Sina: weibo.com/kaijunfeng
Yahoo: fffygapl@yahoo.com.cn



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值