Oracle Listener的動態註冊

來源:互聯網
上載者:User

在有Oracle Listener的動態註冊之前,採用的是靜態註冊,所謂靜態註冊是指Oracle執行個體在啟動時,讀取listener.ora裡的配置,然後註冊到Listener,它主要有兩個缺點:

1. Listener不知道Oracle執行個體的即時狀態

2. listener.ora裡的配置比較麻煩,常需要手動修改。

動態註冊

所謂動態註冊是指Oracle執行個體啟動後,會通過pmon進程即時的把執行個體狀態和參數(instance_name,service_name)同步給Listener,其中參數instance_name如果為空白,則預設為SID,參數service_name如果為空白,則預設為db_name.db_domain

有了動態註冊之後,我們甚至不需要listener.ora,這時命令lsnrctl start將啟動預設的Listener(TCP協議、1521連接埠,Service和Instance分別來自參數service_name和instance_name。

這裡有一個小tip:pmon並不是真正即時同步Oracle執行個體至Listener,而是隔幾十秒,但你可以通過alter system register命令手動同步。

下面我們來看一個例子:

在這個例子裡,我們沒有配置listener.ora,listener.ora啟動後的狀態如下:

STATUS of the LISTENER
------------------------
Alias                    LISTENER
Version                  TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                18-SEP-2013 16:58:01
Uptime                    0 days 0 hr. 12 min. 54 sec
Trace Level              off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Log File        /opt/oracle/diag/tnslsnr/data/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.15)(PORT=1521)))
Services Summary...
Service "orcl.localdomain" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

instance_name和service_names參數配置如下:

SQL>show parameter instance_name

NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      orcl
SQL>show parameter service_name

NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      orcl.localdomain

從上面我們可以發現:Listener裡的Service、Instance是和instance_name、service_names參數相對應。這裡需要特別說明的是:參數service_names可以指定多個service_name,它們之間用逗號隔開。

在用戶端tnsnames.ora裡我們可以設定SID等於instance_name:

test =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.15)(PORT = 1521))
)
(CONNECT_DATA =
(sid = orcl)
)
)

也可以設定service_name等於services_names中的任意一個:

test =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.15)(PORT = 1521))
)
(CONNECT_DATA =
(service_name = orcl.localdomain)
)
)

Oracle監聽的動態註冊和靜態註冊

Oracle DBA之監聽的靜態註冊與動態註冊

Oracle Listener 動態註冊 與 靜態註冊

Linux/Unix shell 監控Oracle監聽器(monitor Listener) 

Oracle一個執行個體配置多個Listener或多個連接埠

  • 1
  • 2
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.