處理了一個“服務器能ping得通,但telnet連接失敗”導致數據庫登錄不了的問題


今天運維同事說重啟程序后數據庫連接不上,讓我幫忙看看。

其它機器連接數據庫是正常的,應該是網絡出現問題。

我上去后先試一下在應用服務器ping數據庫服務器,發現可以正常ping通。

再用telnet試一下應用服務器連接數據庫服務器端口是否通,發現telnet提示No route to host

本來以為是路由設置問題,但發現兩台機是在同一個局域網內,路由配置正常。

再檢查了一下數據庫服務器的防火牆和iptables,發現配置也沒問題,即使把防火牆關了也沒用。

能想到的網絡問題都排除了,網上也查不到有用的資料,只能暫時放棄。

為了解決問題,我想出了一個臨時解決方法:

從數據庫服務器上連接回應用服務器,做一個ssh轉發,把應用服務器本地的1521端口轉到遠程的1521端口

這樣應用程序就不需要連接數據庫服務器的端口,只要連接本地端口就行。

但實際操作時發現一個問題:從數據庫服務器ssh連接應用服務器時,提示密碼錯誤。

但使用SecureCRT直接連接應用服務器時,使用相同密碼卻能正常登錄。

當時我心里突然靈光一閃:“難道連接的不是同一台機?”

於是用ifconfig 檢查一下兩台服務器的ip設置,發現一個問題:

數據庫服務器有多個網卡,其中有一個網卡配置的ip地址與應用服務器的一樣!

咨詢了一下運費同事,這個配置有問題的網卡並沒有用。

於是讓他把這個網卡ip改了,然后再試了一下,發現這次應用服務器可以正常使用telnet連接數據庫服務器的端口了。

(中間有一個插曲,我使用ip down停了有問題的網卡后,發現連接還是有問題。看到網上說需要把網絡全停了,修改配置再啟動才有效。於是我就照着操作執行“ service network stop”時,突然發現有問題:SecureCRT所有窗口都斷開了。這時我才想起來,我現在是通過遠程連接操作服務器的,把網絡關了我啥都干不了-_-!。后來只能讓現場的運維同事幫忙到機房連接機器重新開啟網絡服務才行。遠程操作服務器時應該禁止執行關閉機器或者關閉網絡的命令,我安全操作意識還是太低了。

感概:要是有網絡問題檢查清單就好了,不用每次靠靈感去查問題。


免責聲明!

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



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