错误:ORA-12537: TNS: 连接关闭

 

问题描述:

今天早上上班的时候,突然同事跟我说,昨天访问尚好的数据库现在无法正常连接。服务器上已连接的项目没有报连接失败,但是无法进行正常的数据访问。通过PL/SQL工具连接的时候,出现“错误:ORA-12537TNS 连接关闭”错误。

 

问题分析:

由于之前出现过由于数据库的监听突然挂掉,导致连接异常,虽然那时通过PL/SQL工具连接时报的异常不是这个,但是为了排除这方面的原因,还是检查了下数据库的监听情况。

通过命令lsnrctl status,查看到数据库的监听是正常的。

因为无法通过PL/SQL连接工具连接数据库,所有就想通过DBA系统用户,连接数据库,进行检查。在数据库服务器上,执行“sqlplus / as sysdba”命令后,出现如下图异常:

 wKioL1XeeKHTbgXgAADmmjMnc8k351.jpg

看到这个ERROR,才明白,是数据库的连接数被占用完了,导致连接关闭的错误了。

 

问题解决:

马上让开发那边的同事,关掉连接这个数据库测试用户,释放一些连接。然后通过PL/SQL工具,连接上数据库,查看当前数据库服务器所占用的连接数。

select username,count(username) ,machine from v$session group by username,machine

 wKiom1XedpqRSh1PAAD2Gpruo2E911.jpg

发现某个机器的连接数巨大,检查对应服务器的后台日志,发现这些连接数都是由于程序中没有及时释放导致。

联系开发人员,优化代码。

你可能感兴趣的:(oracle,连接关闭,ORA-12537:,TNS:)