ORA-12520错误解决实例

2015-01-21 12:34:25 · 作者: · 浏览: 2

问题描述


今天突然发现连接数据库时报错,用pl/sql dev连接数据时,有时能连接上,有时连接时报:


ORA-12520: TNS: 监听程序无法找到需要的服务器类型的可用句柄


通过服务器登录数据库,报下面的报连接数错误:


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


请输入用户名:


ERROR:


ORA-01017: 用户名/口令无效; 登录被拒绝


……


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


总结


可能问题的原因很简单,但准确的定位和找出原因是需要经验和技巧的,和开发人员的沟通很重要,最终只要找出原因,解决起来可能就很简单了!