TNS-12537報錯解決方法

梓沐發表於2016-02-15
今天公司因為伺服器遷移,需要將資料庫暫時關閉,等遷移完後,啟動伺服器,開啟資料庫正常,但是使用客戶端連線資料庫時,
總是提示TNS-12537:連線關閉,首先想到的是使用tnsping,測試一下資料庫的連通狀況,結果連不上,
首先想到的是去伺服器查一下log日誌,結果如下

***********************************************************************
Fatal NI connect error 12537, connecting to:
 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521))(CONNECT_DATA=(SID=dd)(CID=(PROGRAM=emagent)(HOST=oracle)(USER=oracle))))

  VERSION INFORMATION:
TNS for Linux: Version 11.2.0.4.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production
  Time: 28-NOV-2015 10:55:51
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12537
    TNS-12537: TNS:connection closed
    ns secondary err code: 12560
    nt main err code: 507
    TNS-00507: Connection closed
    nt secondary err code: 0

大概搜尋了下,發現大多數的影響因素都被排除,但是問題都沒解決。
無意中檢查了一下hostname,發現hostname被修改了,
發現問題後,解決起來就很簡單了,直接hostname oracle ,然後再/etc/sysconfig/network中修改主機名為oracle即可,重新啟動oracle和監聽以後,一切正常。
造成的原因很簡單因為在廠商安裝伺服器系統時,系統的主機名為localhost.domain,而安裝資料庫時直接hostname oracle修改,並沒有在/etc/sysconfig/network中修改,從而導致伺服器重啟後,伺服器的主機名直接被還原。

總結:錯誤解決很簡單,但是造成原因很難捕捉到,當然TNS-12537錯誤還是有很多其他原因,這裡只提供一種解決的場景,僅供參考。


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

相關文章