oracle靜態與動態監聽

來源:互聯網
上載者:User

標籤:des   style   blog   http   io   color   ar   os   sp   

在運行lsnrctl命令的status時,常會看到如下傳回值:

服務“test”包含1個常式。   常式"mydata",狀態 UNKOWN,包含此服務的一個處理常式。。。服務"a"包含1個常式。   常式"mydata",狀態 READY,包含此服務的一個處理常式。。。

這裡的,狀態UNKOWN即表明為靜態註冊(手動填寫參數);

狀態為READY的記錄,表明為動態註冊(listener.ora參數由PMON進程自動從參數檔案擷取);  一、靜態註冊 

監聽配置中,資料庫服務中的全域資料庫名,可以寫任意內容,與資料庫無關,只要保證SID正確即可連上資料庫。
由於靜態註冊,參數是手動靜態添加,與資料庫無關。資料庫無法確認監聽是否正確配置。因此,lsnrctl中的status顯示狀態為unkown。即不保證能連通資料庫。
注意:靜態註冊監聽,用戶端在配置tnsnames.ora服務命名時,“(Oracle 8i或更高版本)服務名”裡填寫內容要與服務端靜態註冊監聽器時的全域資料庫名一致。否則,無法連通。

lsnrctl中顯示如下
服務“test”包含1個常式。   常式“mydata”,狀態UNKOWN,包含此服務的一個處理常式。。。
test即從監聽配置過程,資料庫服務中的“全域資料庫名”讀到的值(即設定檔中GLOBAL_DBNAME的值),“mydata”是從監聽配置中,資料庫服務中SID讀到的值(即SID_NAME的值)。
SID_LIST_LISTENER = (SID_LIST =    (SID_DESC =      (GLOBAL_DBNAME = test)      (ORACLE_HOME = /orahome/oracle/product/10.2.0/db_1)      (SID_NAME = mydata)    )  )
 用戶端在配置tnsname時,服務名(SERVICE_NAME)即為test。否則,串連不到資料庫。
ABC =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.23)(PORT = 1521))    )    (CONNECT_DATA =      (SERVICE_NAME =
test)    )  )
這裡的ABC,為服務命名。可以為任意值,在用戶端串連伺服器時,填寫的主機字串,即為此服務命名ABC。  二、動態註冊
1、預設的動態註冊

pmon在資料庫啟動到mount或open時,動態從參數檔案中讀取service_names值。service_names可以為多個值。
service_names預設為dbca建立資料庫時的全域資料庫名。
設定參數service_names為‘a,b,c‘,命令如下:
alter system set service_names=‘a,b,c‘;
則:

lsnrctl狀態如下:
服務“test”包含1個常式。   常式"mydata",狀態 UNKOWN,包含此服務的一個處理常式。。。服務"a"包含1個常式。   常式"mydata",狀態 READY,包含此服務的一個處理常式。。。服務"b"包含1個常式。   常式"mydata",狀態 READY,包含此服務的一個處理常式。。。服務"c"包含1個常式。   常式"mydata",狀態 READY,包含此服務的一個處理常式。。。服務 "mydata.ccddt.cn" 包含一個常式。   常式"mydata",狀態 READY, 包含此服務的一個處理常式。。。


以上服務名a, b, c, mydata.ccddt.cn都為READY,為動態註冊。
這裡多了最後一條"mydata.ccddt.cn",是PMON預設動態註冊到監聽器內的。
注意:不管參數service_names為何值,pmon都會自動以全域資料庫名(這裡為mydata.ccddt.cn)為服務名,動態註冊一個監聽。
預設情況下,若啟用動態註冊監聽,連接埠號碼必須為1521。若啟用其他連接埠的動態監聽註冊,必須要做相關配置。

通過查看v$session,狀態為SYS$USERS的串連為通過靜態註冊監聽串連到伺服器。

2、自訂連接埠的動態監聽註冊
若要啟用非預設連接埠1521的動態監聽註冊,預設狀態,Oracle不會進行動態註冊。要啟用動態註冊,必須設定local_listener參數。並在服務端配置tnsnames.ora指定監聽參數,或者直接通過修改local_listener指定監聽參數。步驟如下:
1)服務端
netmgr,配置監聽程式,監聽連接埠為1525(非預設連接埠)

儲存配置

        2)、指定監聽參數

     (1)法1:直接通過修改local_listener參數指定

 
    SQL>alter system set LOCAL_LISTENER=‘(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.23)(PORT=1525))‘;
    System altered

  SQL>alter system register

  System altered            (2)法2:在Oracle伺服器端建立$ORACLE_HOME/network/admin/tnsnames.ora。解析檔案,位置並填入如下內容
mytest =(DESCRIPTION =
    (ADDRESS_LIST =
        (ADDRESS=(PROTOCOL=TCP)(HOST = 192.168.1.23)(PORT = 1525))
    )
)
 這裡的mytest也可以根據自己需要,修改為其他字串。如a或b等。設定參數,指定通過tnsnames.ora內的資訊指定監聽參數SQL>alter system set local_listener=mytest;
System alteredSQL>alter system register;

3、查看監聽器狀態

LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.23)(PORT=1525)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                15-MAR-2011 10:43:47
Uptime                    0 days 0 hr. 0 min. 56 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /orahome/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /orahome/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraserver)(PORT=1525)))
Services Summary...
Service "a" has 1 instance(s).
  Instance "mydata", status READY, has 1 handler(s) for this service...
Service "b" has 1 instance(s).
  Instance "mydata", status READY, has 1 handler(s) for this service...
Service "c" has 1 instance(s).
  Instance "mydata", status READY, has 1 handler(s) for this service...
Service "mydata" has 1 instance(s).
  Instance "mydata", status READY, has 1 handler(s) for this service...
Service "mydataXDB" has 1 instance(s).
  Instance "mydata", status READY, has 1 handler(s) for this service...
Service "mydata_XPT" has 1 instance(s).
  Instance "mydata", status READY, has 1 handler(s) for this service...
The command completed successfully

 

oracle靜態與動態監聽

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.