現場(環境): CentOS 6.9 套件: lsnctrl
原因:
前幾天進行了資料庫移機作業,
有關於監聽器的設定值都有跟著做移轉(tnsname.ora & listener.ora),
但是卻發現要啟用監聽器的時候完全無法啟動。
[oracle@db1 ~]$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 30-AUG-2017 09:55:01
Copyright (c) 1991, 2013, Oracle. All rights reserved.
TNS-01106: Listener using listener name LISTENER has already been started
用 ss –tnlp 去檢查時,發現監聽器的TCP 1521 沒有啟用!!
問題發生在哪裡??
處理方式:
[oracle@db1 ~]$ lsnrctl stop
再關閉監聽器的時候發現,它有找不到file&資料夾的錯誤訊息。
表示我的監聽器的檔案設定一定有問題。
tnsname.ora 設定DB LINK的檔案 (問題不會在這)
listener.ora 出問題的檔案。
這檔案,我連入的時候去看了一下,我是用IP位址去設定。
乍看之下沒有問題,但問了DBA之後,他說建議使用Hostname去進行設定。
因為是本機的監聽器,修改成hostname,也是要依/etc/hosts為主。
而這次修改完成後,會如下圖所示。
再次重啟監聽器
[oracle@db1 ~]$ lsnrctl stop
[oracle@db1 ~]$ lsnrctl start
服務就運作正常了!!!
TCP-1521 PORT正常運作。
也有看到其他人分享說,
如果你listener.ora原本就是設定成DomainName,
但要進行lsnrctl start失敗的話。
先做關閉監聽器的服務,再重新打開。
這樣子很有可能就會恢復正常了!
(本篇完)