早上突然接到监控报警WARNING: inbound connection timed out (ORA-3136)。
ora-3136 连接超时在大部分情况下是可以忽略的,这个错误一般是由于客户端由于没有使用正确登录的密码,连接超时导致。
比如下面的例子:
oracle@rac1:/home/oracle>sqlplus yang/yan@yangdbstd
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 21 10:47:35 2011
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝
Enter user-name:
在备库中查看日志:
oracle@rac4:/home/oracle>tf
***********************************************************************
Fatal NI connect error 12170.
VERSION INFORMATION:
TNS for Linux: Version 11.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production
Time: 21-SEP-2011 10:48:36
Tracing not turned on.
Tns error struct:
ns main err code: 12535
TNS-12535: TNS:operation timed out
ns secondary err code: 12606
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.250.7.226)(PORT=61449))
WARNING: inbound connection timed out (ORA-3136)
sqlplus user/passwd@tnsname,这个passwd 是错误的,oracle提示:ORA-01017: 用户名/口令无效; 登录被拒绝,不做审核操作,把连接挂在那里,等带一会,就可以在服务端的数据库alert 日志中看到WARNING: inbound connection timed out (ORA-3136)
客户端使用错误的密码登录,但是之后又没有退出连接导致ORA-3136。查询ML文档《Troubleshooting ORA – 3136 WARNING Inbound Connection Timed Out [ID 465043.1]》,还有如下原因:
There can be three main reasons for this error -
1. Server gets a connection request from a malicious client which is not supposed to connect to the database , in which case the error thrown is the correct behavior. You can get the client address for which the error was thrown via sqlnet log file.
2. The server receives a valid client connection request but the client takes a long time to authenticate more than the default 60 seconds.
3. The DB server is heavily loaded due to which it cannot finish the client logon within the timeout specified.