應用程序連接測試數據庫時報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 --重啟數據庫
參考資料: