靜态注冊:通過解析listene.ora檔案
動态注冊:由PMON程序動态注冊至監聽中
在沒有listener.ora配置檔案的情況下,如果啟動監聽,則監聽為動态注冊。用圖形化netca建立的監聽,預設也為動态注冊
1.靜态注冊
listener.ora檔案,監聽的配置檔案,靜态注冊讀取該檔案,動态注冊,不必要
可以通過netca工具建立,也可以手動編輯。典型的listener.ora檔案内容:
LISTENER_PHAMR =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = phamrdb1-vip)(PORT = 1521))
)
SID_LIST_LISTENER_PHALR =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = phalr)
(ORACLE_HOME = /oracle/product/11.2.0)
(SID_NAME = phalr)
)
listener.ora檔案兩大子產品:
LISTENER子產品:監聽名字、連接配接協定、監聽主機、監聽端口等基本配置資訊
SID_LIST_LISTENER子產品:配置監聽的靜态注冊特性,包含資料庫服務名、ORACLE_HOME、執行個體名等資訊。
注意:SID_NAME,就是資料庫執行個體名,在Linux環境大小寫敏感
GLOBAL_DBNAME就是資料庫服務名,可以省略,預設和SID_NAME保持一緻,也可以不一緻。
ORACLE_HOME,預設和$ORACLE_HOME環境變量保持一緻。Windows,該參數無效,取自系統資料庫。
靜态注冊,監聽不知道執行個體的具體狀态,是以監聽啟動之初檢視執行個體資訊,其狀态資訊顯示為UNKNOWN.例如:
oracle@phamrdb1: /home/oracle> lsnrctl status LISTENER_PHAMR
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-NOV-2016 17:17:37
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=phamrdb1-vip)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER_PHAMR
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 01-OCT-2016 14:12:51
Uptime 47 days 3 hr. 4 min. 45 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /oracle/product/11.2.0/network/admin/listener.ora
Listener Log File /oracle/diag/tnslsnr/phamrdb1/listener_phamr/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.178.1.64)(PORT=1521)))
Services Summary...
Service "phamr" has 1 instance(s). 監聽狀态中的服務名
Instance "phamr", status UNKNOWN, has 1 handler(s) for this service... 監聽狀态中的執行個體名
The command completed successfully
2,動态注冊
在動态注冊監聽的環境中,listener.ora檔案可以不包括目前資料庫的執行個體資訊,是以這個檔案不必要。
執行個體啟動時,會由Oracle PMON程序将資料庫執行個體資訊動态注冊至監聽上。
當Oracle執行個體關閉時,會再次由PMON程序自動從監聽裡面撤銷目前執行個體資訊。
是以,要實作動态注冊,資料庫的執行個體至少要處于nomount狀态
監聽動态注冊時的執行個體狀态:來自PMON程序動态注冊時的執行個體狀态,一般有3種狀态:READY、BLOCKED和RESTRICED
READY:表示資料庫執行個體已經處于mount或者open狀态,可以接受用戶端連接配接
BLOCKED:表示資料庫執行個體還處于nomount狀态或者該執行個體類型為ASM執行個體,不接受用戶端連接配接,如果這時候用戶端去連
接資料庫會報ora-12528錯誤
RESTRICED:表示資料庫處于RESTRICED模式,不接受普通權限的遠端用戶端連接配接,如果這時候用戶端去連接配接資料庫會報
ora-12526錯誤
oracle@fsdata: /oracle/product/11.2.0/network/admin> lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-NOV-2016 16:01:43
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
Alias LISTENER
Start Date 17-NOV-2016 15:57:23
Uptime 0 days 0 hr. 4 min. 19 sec
Listener Log File /oracle/diag/tnslsnr/fsdata/listener/alert/log.xml
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=fsdata)(PORT=1521)))
Service "FSDATA" has 1 instance(s).
Instance "FSDATA", status READY, has 1 handler(s) for this service...
Service "FSDATAXDB" has 1 instance(s).
Instance "FSDATA", status READY, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-NOV-2016 15:58:47
Uptime 0 days 0 hr. 1 min. 23 sec
Instance "FSDATA", status BLOCKED, has 1 handler(s) for this service...
執行個體既可以動态注冊,同時靜态注冊,狀态分别顯示為READY和UNKNOWN
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-NOV-2016 17:50:14
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=fsdata)(PORT=1521)))
Uptime 0 days 1 hr. 52 min. 50 sec
Service "FSDATA" has 2 instance(s).
Instance "FSDATA", status UNKNOWN, has 1 handler(s) for this service...
3.監聽的常用指令
lsnrctl start [listener_name]
lsnrctl stop [listener_name]
lsnrctl status [listener_name]
lsnrctl service [listener_name]
lsnrctl reload [listener_name]
4.監聽的别名
監聽預設名字是LISTENER,可以配置别名
oracle@fsdata: /dump> ps -ef | grep tnslsnr | grep -v grep
oracle 29598 1 0 15:57 ? 00:00:00 /oracle/product/11.2.0/bin/tnslsnr LISTENER -inherit
oracle@phamrdb1: /home/oracle> ps -ef | grep tnslsnr| grep -v grep
oracle 38300 1 0 Oct01 ? 06:21:54 /oracle/product/11.2.0/bin/tnslsnr LISTENER_PHAMR –inherit
文章可以轉載,必須以連結形式标明出處。
本文轉自 張沖andy 部落格園部落格,原文連結: http://www.cnblogs.com/andy6/p/7453395.html ,如需轉載請自行聯系原作者