您的位置:首页 > 其它

ALERT日志中常见监听相关报错之二:ORA-3136错误的排查

2015-07-17 14:30 561 查看
近期在多个大型系统中遇到此问题,一般来说如果客户端未反映异常的话可以忽略的。

如果是客户端登陆时遇到ORA-12170: TNS:Connect timeout occurred,可以参考 http://blog.csdn.net/haibusuanyun/article/details/14517211#t12
###############

参考MOS文档有:

Troubleshooting Guide for TNS-12535 or ORA-12535 or ORA-12170 Errors (文档 ID 119706.1)

Troubleshooting Guide ORA-609 : Opiodr aborting process unknown ospid (文档 ID 1121357.1)

Troubleshooting Guide ORA-3136: WARNING Inbound Connection Timed Out (文档 ID 465043.1)

Alert.log shows ORA-609 with TNS-12537: TNS:connection closed (文档 ID 1538717.1)

11g: ORA-609 TNS-12537 and TNS-12547 or TNS-12170 in 11g Alert.log (文档 ID 1116960.1)

Fatal NI Connect Error 12170, 'TNS-12535: TNS:operation timed out' Reported in 11g Alert Log (文档 ID 1286376.1)

Alert Log Errors: 12170 TNS-12535/TNS-00505: Operation Timed Out (文档 ID 1628949.1)

---------

对这些问题进行分类,大致如下:

------

ORA-3136: WARNING Inbound Connection Timed Out错误的排查步骤:

此错误是因为客户端无法在SQLNET.INBOUND_CONNECT_TIMEOUT.指定时间内完成用户验证

此时也可能有ORA-12170 or TNS-12535 in the sqlnet.log,同时包含客户端相关信息。

10.2.0.1开始SQLNET.INBOUND_CONNECT_TIMEOUT默认是 60 seconds,如果客户端不能在60秒内完成登陆认证,客户端连接被中止同时ALERT有此报错。

----这主要是为防止DoS攻击。

此错误可能原因为:

1.DoS攻击,大量恶意连接,此时报错并终止客户端连接是正确的。

2.正常连接,但是未在SQLNET.INBOUND_CONNECT_TIMEOUT值=60秒内完成登陆验证。

3.数据库服务器负载高,类似HANG住。

排查方法:

1.本地连接数据库,测试是否HANG住

2.DB是否有600/7445等内部错误导致此问题

3.网络问题

解决:

建议是sqlnet.ora--DATABASE值大于listener.ora--LISTENER.

例如:

sqlnet.ora

SQLNET.INBOUND_CONNECT_TIMEOUT = 120

listener.ora

INBOUND_CONNECT_TIMEOUT_LISTENER = 110  

验证:

LSNRCTL>show inbound_connect_timeout
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ORA-3136