監聽日志文件過大,導致數據庫出錯,TNS-12541:無監聽程序


周五了,原本以為可以早早下班回家打游戲;誰知道突然一個電話過來告訴我有一個數據庫掛了,除了本地能登陸,其他所有的方式都無法連接上去;錯誤代碼提示:TNS-12541:無監聽程序。

最初的思路是檢查監聽服務以及配置文件,一路檢查下來就發現服務正常,配置文件也沒問題。這就老火了,到底是哪里出問題了呢,迷茫...

隨后去查看了alert_jxjg.log,發下大量如下錯誤:

Fatal NI connect error 12537, connecting to:
 (LOCAL=NO)

  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
  Time: 24-8月 -2018 15:23:34
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12537
    
TNS-12537: TNS: 連接關閉
    ns secondary err code: 12560
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0
opiodr aborting process unknown ospid (12972) as a result of ORA-609
Fri Aug 24 15:23:44 2018

看這個日志然后思路又跑到監聽配置啊,服務,上面去了。

好吧,就把原來的監聽刪除了重新建(在這過程我發現netmanager這個東西出奇的卡,卡的不要不要的,當時就很郁悶),弄好之后,再次去看日志發現還是一毛一樣的錯誤;人都要開始崩潰了。這時候開始做最壞的打算,從本地登陸吧數據庫備份出來,到另外一個平台去還原。就在准備換去做准備的工作的時候,去看了一下監聽服務狀態,不看不知道,一看嚇一跳,錯誤提示如下:

C:\Users\Administrator>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 24-08月-2018 20:1
8:32

Copyright (c) 1991, 2008, Oracle. All rights reserved.

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.136.7.66)(PORT=1521)))
TNS-12541: TNS: 無監聽程序
TNS-12560: TNS: 協議適配器錯誤
TNS-00511: 無監聽程序
64-bit Windows Error: 61: Unknown error
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

看到這個提示后,拿着死馬當活馬醫的心態,上網找資料。在一篇博客里面找到了這個錯誤的相關資料:

大致的意思就是該錯誤是由於windows平台的一個Bug導致的,只需將監聽服務停掉,然后刪除Listener.log日志文件,再重啟監聽服務就可以正常連接到數據了。

按照資料給的解決方法,最后是成功的。

原文地址,最后:治標的辦法就是關閉監聽日志寫入

LSNRCTL>set current_listener <listener_name>
LSNRCTL>set log_status OFF
LSNRCTL>save_config


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM