1. 程式人生 > >ALERT日誌中常見監聽相關報錯之二:ORA-3136錯誤的排查

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

hang gui tns -c 未在 fatal odr bound 問題

最近在多個大型系統中遇到此問題,一般來說假設client未反映異常的話能夠忽略的。


假設是client登陸時遇到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錯誤的排查步驟:


此錯誤是由於client無法在SQLNET.INBOUND_CONNECT_TIMEOUT.指定時間內完畢用戶驗證
此時也可能有ORA-12170 or TNS-12535 in the sqlnet.log。同一時候包括client相關信息。
10.2.0.1開始SQLNET.INBOUND_CONNECT_TIMEOUT默認是 60 seconds。假設client不能在60秒內完畢登陸認證,client連接被中止同一時候ALERT有此報錯。
----這主要是為防止DoS攻擊。




此錯誤可能原由於:
1.DoS攻擊。大量惡意連接,此時報錯並終止client連接是正確的。
2.正常連接。可是未在SQLNET.INBOUND_CONNECT_TIMEOUT值=60秒內完畢登陸驗證。
3.數據庫server負載高,相似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


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