问题描写叙述:
今天突然发现连接数据库时报错,用pl/sql dev连接数据时,有时能连接上,有时连接时报:
ORA-12520: TNS: 监听程序无法找到须要的server类型的可用句柄
通过server登录数据库。报以下的报连接数错误:
[oracle@dbserver22 ~]$ sqlplus"/as sysdba"
SQL*Plus: Release 11.2.0.3.0Production on 星期五 11月 14 10:23:23 2014
Copyright (c) 1982, 2011,Oracle. All rights reserved.
ERROR:
ORA-00020: maximum number ofprocesses (150) exceeded
请输入username:
ERROR:
ORA-01017: username/口令无效; 登录被拒绝
……
SP2-0157: 在 3 次尝试之后无法连接到ORACLE, 退出 SQL*Plus
[oracle@dbserver22 ~]$
和开发沟通了解后。是由于在昨天晚上有新业务上线,业务量增大,导致连接数上升。
解决的方法:
添加进程连接数
--停掉监听
[oracle@dbserver22 ~]$ lsnrctl stop
--杀掉连接进程
[oracle@dbserver22 ~]$ ps -ef |grep LOCAL=NO | cut -c 10-15 | xargs kill -9
--添加连接数
SQL> alter system set processes=650 scope=spfile;
系统已更改。
--重新启动数据库
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area1.7103E+10 bytes
Fixed Size 2245480 bytes
Variable Size 6744444056 bytes
Database Buffers 1.0335E+10 bytes
Redo Buffers 21708800 bytes
数据库装载完成。
数据库已经打开。
SQL> exit
--启动监听
[oracle@dbserver22 ~]$ lsnrctl start
总结:
可能问题的解决办法非常easy。但准确的定位和找出原因是须要经验和技巧的。和开发者的沟通非常重要,终于仅仅要找出原因,解决起来可能就非常easy了。