代码改变世界

ORA-12516:TNS:listener could not find available handler with matching protocol stack

2014-05-13 16:22  潇湘隐者  阅读(38353)  评论(0编辑  收藏  举报

应用程序连接测试数据库时报ORA-12516:TNS:listener could not find available handler with matching protocol stack

检查监听日志文件,发现大量的TNS-12516错误

cd /u01/app/oracle/product/10.2.0/db_1/network/log

more listener.log

TNS-12516: TNS:listener could not find available handler with matching protocol stack
13-MAY-2014 14:49:35 * (CONNECT_DATA=(SERVICE_NAME=xxx)(CID=(PROGRAM=c:\windows\system32\inetsrv\w3wp.exe)(HOST=GET08C0058)(USER=SYSTEM))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.xxx.xxx)(PORT=4594)) * establish * xxx * 12516


登录数据库,检查参数session时,出现ORA-01012:not logged on

[oraescm@lnxtest ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 10.2.0.4.0 - Production on Tue May 13 14:29:57 2014
 
Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
 
Connected.
SQL> show parameter session;
 
ERROR at line 1:
ORA-01012: not logged on
 

治标治本的解决办法是修改processes参数值,但是此时数据库连接不上。可以通过下面方法解决:

1: 停止监听服务,等数据库访问连接数下降用户再登录。 
       
lsnrctl stop

2: sqlplus "/ as sysdba" 登陆后,修改processes值。


由于是测试数据库,可以折腾一下,如果不想修改processes的值,可以通过下面临时解决方法解决问题

1:重启监听服务

lsnrctl reload

2:  sqlplus "/ as sysdba" 登陆后
       shutdonwn abort

         startup

3: ps -ef|grep ora_dbw0_$Oracle_SID

   kill -9 pid ;

   startup --重启数据库

参考资料:

http://blog.csdn.net/kellyseeme/article/details/8935208
         http://blog.csdn.net/dingli312/article/details/11394753
   http://blog.csdn.net/newhappy2008/article/details/6557662