Oracle 監聽異常處理

kidking2010發表於2020-02-25

作業系統: windows2008

資料庫:oracle11g

64-bit Windows: Version 11.2.0.1.0 - Production

Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production

Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production


問題發生:一套正常跑了一年的應用系統,忽然無法連線上資料庫

資料庫伺服器端檢視:

使用 lsnrctl status 檢視監聽狀態卡住,10分鐘左右結果才會反饋。

plsql無法連線。

重啟監聽問題依舊。

alter日誌檔案中報錯:

<msg time='2020-02-24T18:13:09.309+08:00' org_id='oracle' comp_id='rdbms'

 type='UNKNOWN' level='16' host_id='WIN-N5BE4BP9FQS'

 host_addr='fe80::6925:8e87:23e0:9a12%18'>

 <txt>

  VERSION INFORMATION:

TNS for 64-bit Windows: Version 11.2.0.1.0 - Production

Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production

Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production

 </txt>

</msg>

<msg time='2020-02-24T18:13:09.309+08:00' org_id='oracle' comp_id='rdbms'

 type='UNKNOWN' level='16' host_id='WIN-N5BE4BP9FQS'

 host_addr='fe80::6925:8e87:23e0:9a12%18'>

 <txt>  Time: 24-2月 -2020 18:13:09

 </txt>

</msg>


<msg time='2020-02-24T18:13:59.981+08:00' org_id='oracle' comp_id='rdbms'

 type='UNKNOWN' level='16' host_id='WIN-N5BE4BP9FQS'

 host_addr='fe80::6925:8e87:23e0:9a12%18'>

 <txt>TNS-12547: TNS: 丟失連線

 </txt>

</msg>

<msg time='2020-02-24T18:13:59.981+08:00' org_id='oracle' comp_id='rdbms'


<txt>TNS-12560: TNS: 協議介面卡錯誤
TNS-00530: 協議介面卡錯誤
64-bit Windows Error: 53: Unknown error
TNS-12518: TNS: 監聽程式無法分發客戶機連線
TNS-12571: TNS: 包寫入程式失敗
TNS-12560: TNS: 協議介面卡錯誤
TNS-00530: 協議介面卡錯誤
64-bit Windows Error: 54: Unknown error
</txt>

 type='UNKNOWN' level='16' host_id='WIN-N5BE4BP9FQS'

 host_addr='fe80::6925:8e87:23e0:9a12%18'>

 <txt>    ns secondary err code: 12560

 </txt>

</msg>

<msg time='2020-02-24T18:13:59.981+08:00' org_id='oracle' comp_id='rdbms'

 type='UNKNOWN' level='16' host_id='WIN-N5BE4BP9FQS'

 host_addr='fe80::6925:8e87:23e0:9a12%18'>

 <txt>    nt main err code: 0

 </txt>

</msg>

<msg time='2020-02-24T18:13:59.981+08:00' org_id='oracle' comp_id='rdbms'

 type='UNKNOWN' level='16' host_id='WIN-N5BE4BP9FQS'

 host_addr='fe80::6925:8e87:23e0:9a12%18'>

 <txt>    nt secondary err code: 0

 </txt>

</msg>

<msg time='2020-02-24T18:13:59.981+08:00' org_id='oracle' comp_id='rdbms'

 type='UNKNOWN' level='16' host_id='WIN-N5BE4BP9FQS'

 host_addr='fe80::6925:8e87:23e0:9a12%18'>

 <txt>    nt OS err code: 0

 </txt>

</msg>

<msg time='2020-02-24T18:13:59.997+08:00' org_id='oracle' comp_id='rdbms'

 type='UNKNOWN' level='16' host_id='WIN-N5BE4BP9FQS'

 host_addr='fe80::6925:8e87:23e0:9a12%18' pid='39472'>

 <txt>opiodr aborting process unknown ospid (39472) as a result of ORA-609

 </txt>

</msg>


報錯 ora-12518 監聽無法分發客戶端連線。 但在oracle中使用 show parameter session 與select count(×) from v$session; 對比發現不是連線數限制問題。

使用tnsping IP 沒有反應。

後繼續檢視listener的log檔案 $ORACLE_HOME/network/trace  發現listener.log 檔案已經達到4G  無法再繼續寫入,最後寫入日期也在前兩天,於是清空該log檔案,重新啟動監聽,正常。

關閉監聽

lsnrctl stop

listener.log 所在目錄

用命令列清空listener.log

echo  > listener.log

lsnrctl reload

最終原因發現是log檔案寫滿,看來以後要定期清理這個檔案了。這麼小一個問題都使應用系統無法連線上,細節決定成敗。 此類檔案要見一個記錄一個 同時在同類系統中排查。





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

相關文章