最近新建了好几个测试库,有一个库在过了一段时间之后,出现了很奇怪的问题,有时候能够登录,有时候又登不上。 通过sqlplus登录,报错如下:
>sqlplus n1/n1@testhost1
SQL*Plus: Release 11.2.0.2.0 Production on Wed May 14 15:04:35 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-12537: TNS:connection closed
但是通过tnsping来判断,可以ping通,而且查看listener也是起来的。
> tnsping testhost1
TNS Ping Utility for Linux: Version 11.2.0.2.0 - Production on 14-MAY-2014 15:07:41
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dbhostspt1)(PORT = 1559))) (CONNECT_DATA = (SERVICE_NAME = testhost1)))
OK (0 msec)
通过直连来试试,错误还是一样。
> sqlplus n1/n1@dbhostspt1:1559/testhost1
SQL*Plus: Release 11.2.0.2.0 Production on Wed May 14 15:04:35 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-12537: TNS:connection closed
查看alert日志也没有发现相关的的错误。
在反复尝试之后,尝试使用sysdba来登录。终于报了一个ora错误。
> sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Wed May 14 15:06:14 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
ERROR:
ORA-00020: maximum number of processes (150) exceeded
有了这个错误,就有了查找问题的方向。
查看processes的参数和sessions,显示只有150个,当前session有146个左右。
但是记得当时把这些类型的参数都调整了,但是现在又有问题了。查看原来是把spfile的功能没有启用。之后有过一次重启库的操作,结果变更都刷掉了。
现在所要做的就是调高processes,sessions
这两个变更需要重启数据库。