作者:IT邦德
中國DBA聯盟(ACDU)成員,目前從事DBA及程式程式設計
(Web\java\Python)工作,主要服務于生産制造
現擁有 Oracle 11g OCP/OCM、
Mysql、Oceanbase(OBCA)認證
分布式TBase\TDSQL資料庫、國産達夢資料庫以及紅帽子認證
從業8年DBA工作,在資料庫領域有豐富的經驗
B站主播Oracle、Mysql、PG實戰課程,請搜尋:jeames007
微信:jem_db
QQ:2243967774
詳情關注公衆号:IT邦德
QQ群:168797397、587159446
前言
本文闡述了Oracle動态監聽及靜态監聽差別
一、靜态監聽
靜态注冊就是執行個體啟動時讀取listener.ora檔案的配置,将執行個體和服務注冊到監聽程式。
無論何時啟動一個資料庫,預設地都有
兩條資訊注冊到監聽器中:資料庫伺服器對應的執行個體和服務。
執行個體不必啟動,靜态監聽也能注冊
伺服器啟動靜态監聽後,可以遠端遠端啟庫
1.1 配置檔案
靜态注冊時
listener.ora中的GLOBAL_DBNAME向外提供服務名
listener.ora中的SID_NAME提供注冊的執行個體名
LISTENER2=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=MES)(PORT=1523))
)
)
SID_LIST_LISTENER2=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=PROD)
(ORACL_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME=PROD)
)
)
1.2 配置本地監聽位置
1.3 啟動監聽
[[email protected] ~]$ lsnrctl start LISTENER2
1.4 遠端連接配接啟庫
sqlplus sys/[email protected]:1523/PROD as sysdba
二、動态監聽
動态注冊是在instance啟動的時候PMON程序根據參數檔案中的instance_name,service_names
兩個參數将執行個體和服務動态注冊到listener中
2.1 配置檔案
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MES)(PORT = 1521))
)
)
動态注冊預設隻注冊到預設的監聽器上(名稱是LISTENER、端口是1521、協定是TCP),
如果需要向非預設監聽注冊,則需要配置local_listener參數!
[email protected]> alter system set local_listener = ''; --此時預設注冊到1521端口
2.2 啟動監聽
[[email protected] ~]$ lsnrctl start
[[email protected] ~]$ lsnrctl status