更新時間:2018-07-06 來源:黑馬程序員JavaEE培訓學院 瀏覽量:
在單機環境下,只啟動數據庫不會拉起listener。
一般先啟動listener(lsnrctl start),再啟動數據庫(startup)數據庫會自動將服務注冊到監聽
若現啟動數據庫,再啟動監聽,lsnrctl status 時可能沒有服務,過幾分鐘等pmon自己注冊監聽或者 手動alter system register都可以
若是等待數據庫自己注冊,但過幾分鐘,監聽還是沒有服務,就要看看端口號是不是1521,oracle默認注冊 1521端口。此時手動注冊即可
如果想讓數據庫注冊非1521端口,需要修改parameter 中local_listener的值
alter system set local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.xxx)(PORT = 1522))' sid='orcl';
說到local_listener,與之下相關的是remote_listener.官方文檔對remote_listener這樣解釋
REMOTE_LISTENER specifies a network name that resolves to an address or address list of Oracle Net remote listeners (that is, listeners that are not running on the same machine as this instance). The address or address list is specified in the TNSNAMES.ORA file or other address repository as configured for your system.
實際上就是說,采用remote_listener參數可以實現數據庫和listener的分離。不過我不知道這種分離有什么用,出于安全還是負載均衡。
單機環境的remote_listener 一般為空。
rac環境下,listener是跟隨集群crs啟動的。而且數據庫 rdbms的啟動要依賴asm實例的資源,所以不存在啟動數據庫后,listener沒啟動,當然出現故障除外。
rac下也有local_listener和remote_listener.
local_listener是該節點的listener信息
remote_listener一般是如下的信息
SQL> show parameter remote_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_listener string scan:1521
在這里remote_listener應該是作為負載均衡來使用的。
本文版權歸黑馬程序員JavaEE學院所有,歡迎轉載,轉載請注明作者出處。謝謝!