ALERT日誌中常見監聽相關報錯之二:ORA-3136錯誤的排查

流浪的野狼發表於2015-10-22
原文:http://blog.csdn.net/haibusuanyun/article/details/46926973
近期在多個大型系統中遇到此問題,一般來說如果客戶端未反映異常的話可以忽略的。

如果是客戶端登陸時遇到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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28612416/viewspace-1815529/,如需轉載,請註明出處,否則將追究法律責任。

相關文章