1. 程式人生 > >關於監聽的總結(監聽配置裡的host部分只能使用主機名嗎,用IP地址或localhost不能正確啟動監聽程式嗎?)

關於監聽的總結(監聽配置裡的host部分只能使用主機名嗎,用IP地址或localhost不能正確啟動監聽程式嗎?)

第一部分:

lsnrctl工具下的三個命令,分別是status、stop、start。

我們從三個命令執行後在螢幕上顯示的結果來看,可以發現一個共性,就是都有“正在連線到”這句話 。

而且status和start兩個命令在“正在連線到”這句話 之後的要顯示的內容(基本)是一樣的。

還有start執行後在螢幕上顯示的結果的開頭部分有“啟動tnsctl。。。。。監聽:”的字樣,說明它先是(如果該監聽程式原先不存在的話,就會先建立再)啟動一個監聽程式。

由此,可以看出三個命令裡都是分步執行的。

status 監聽名A(指的是程式 ,這裡)   :是先連線到“正在連線到”後面的監聽配置所對應的監聽程式上,之後再顯示(status)該監聽程式的狀態資訊。

stop  監聽名B   :是先連線到“正在連線到”後面的監聽配置所對應的監聽程式上,之後再停止(stop)該監聽程式。

提示:如果所連線的監聽程式未啟動,則這兩個命令的執行結果就會提示“無監聽程式”。

start 監聽名C   :是先檢查是否已經有叫“監聽名C”的監聽程式啟動了,啟動了,該命令就會再往下執行,並提示“已有監聽名C的監聽程式啟動”。如果未啟動,則再啟動監聽名C的監聽程式。最後,在連線到該監聽名C的監聽程式(也就是“正在連線到”後面的監聽配置所對應的監聽程式)上,執行和status最後一步一樣的步驟,即顯示該監聽程式的狀態資訊。

在進入lsnrctl工具環境時,lsnrctl工具

會一次性讀取listener.ora檔案上的所有內容到記憶體上,在未退出lsnrctl工具環境前,執行任何命令(start命令除外),都不會再次讀取listener.ora檔案上的內容,所以在未退出lsnrctl工具環境前,無論listener.ora檔案上的內容是否有改變或是乾脆將listener.ora檔案刪除或是移走,都不會影響lsnrctl工具裡命令的執行結果。

除非,例如在進入lsnrctl工具環境後,start監聽名A,再status監聽名A。之後,退出lsnrctl工具環境。然後,修改監聽名為A的監聽配置。之後,再重新進入lsnrctl工具環境,status監聽名A,則提示“無監聽程式”,因為此時執行status時連線到的修改配置後的監聽程式,而該程式未啟動。未修改前的配置的監聽程式仍是處於啟動狀態的。這樣,就會影響lsnrctl工具

裡命令的執行結果。會影響命令執行結果。