11gr2 alert日誌中報TNS-12535 TNS-00505原因及解決方法

煙花丶易冷發表於2018-05-16
前面新裝了11GR2 RAC,某天在做巡檢的時候發現alert日誌中存在如下報錯:
Fatal NI connect error 12170.


  VERSION INFORMATION:
        TNS for Solaris: Version 11.2.0.3.0 - Production
        Oracle Bequeath NT Protocol Adapter for Solaris: Version 11.2.0.3.0 - Production
        TCP/IP NT Protocol Adapter for Solaris: Version 11.2.0.3.0 - Production
  Time: 16-MAY-2013 04:57:41
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12535
    
TNS-12535: TNS:operation timed out
    ns secondary err code: 12560
    nt main err code: 505
    
TNS-00505: Operation timed out
    nt secondary err code: 145
    nt OS err code: 0
  Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=171.17.108.18)(PORT=55532))
Thu May 16 04:58:27 2013

觸發原因:
是由於程式異常斷開導致超時,11g R1如果出現如上的錯誤資訊會寫入到sqlnet.log,11g R2會寫入到alert.log,
其實出現此錯誤是正常的現象。

如果從深層次分析為什麼出現這些錯誤,詳細如下:
一個客戶端連線整個步驟:
1、客戶端發起一個connection連線監聽
2、監聽啟動一個專屬程式(伺服器程式,也就是我們通常說的LOCA=NO程式)用於接收這個connection
3、在專屬程式啟動之後,監聽會將這個connection傳遞給這個專屬程式
4、專屬程式透過這個connection來跟客戶端握手
5、專屬程式跟客戶端資訊交換需要建立一個session
6、session開啟


當在以上的第3步到第4步時客戶端關閉,所以當專屬程式嘗試跟客戶端聯絡時發現連線已關閉時,就會報出我們看到的錯誤!!

如果不想讓這些資訊列印在alert日誌中,設定如下:
在sqlnet.ora設定
DIAG_ADR_ENABLED = OFF
在listener.ora設定
DIAG_ADR_ENABLED_<listenername> = OFF
重啟監聽

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

相關文章