admin管理员组

文章数量:1530355

         今天监控的同事打电话来说有个数据库有段时间无法连接。检查节点服务状态正常,监听状态正常,alert日志没有值得注意的信息。但是在今天日志里面发现了如下报错:

TNS-12519: TNS:no appropriate service handler found

11-JUL-2011 10:05:35 * (CONNECT_DATA=(SID=sczh1)(SERVER=DEDICATED)(CID=(PROGRAM=D:\在逃\EscapeCollector.exe)(HOST=TXK-YJYPXT03)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.35.50.20)(PORT=2719)) * establish * sczh1 * 12519

         此错误在oracle文档如下解释:

TNS-12519: TNS:no appropriate service handler found

Cause: The listener could not find any available service handlers that are appropriate for the client connection.

Action: Run "lsnrctl services" to ensure that the instance(s) have registered with the listener, and are accepting connections.

        之前检查了数据库锦亭等一切正常,唯一的问题就是当前数据库的process十分接近参数processes的值:

SQL> show parameter process

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

aq_tm_processes                      integer     0

db_writer_processes                  integer     2

gcs_server_processes                 integer     3

job_queue_processes                  integer     20

log_archive_max_processes            integer     2

processes                            integer     500

SQL> select count(*) from v$process;

COUNT(*)

--------

493

        怀疑此问题是由于当前数据库process值到达了processes的限制导致。由于目前processes参数设置已经足够大,通过查询v$session视图,确定哪些用户发起了大量的会话导致process过大:

发现有大量INACTIVE的session存在,而且主要个别的用户引起的:

SQL> select username,count(*) from v$session where status='INACTIVE' group by username;

USERNAME                         COUNT(*)

------------------------------ ----------

USER1                                  247

USER2                               206

        问题到这一步就基本明朗了,剩下的就是沟通,处理了。

本文标签: ORAtnshandlerService