天天看點

oracle rac下添加靜态注冊監聽器listener

通過設定不同的listener,可以在一台伺服器多執行個體c環境下實作業務的隔離,友善業務起停和管理。添加的方法除了netca外,比較簡單的方式是使用srvctl指令,具體用法如下

[[email protected] ~]$ srvctl add listener -h

Adds a listener configuration to the Oracle Clusterware.

Usage: srvctl add listener [-l <lsnr_name>] [-s] [-p "[TCP:]<port>[, ...][/IPC:<key>][/NMP:<pipe_name>][/TCPS:<s_port>] [/SDP:<port>]"] [-o <oracle_home>] [-k <net_num>]

-l <lsnr_name> Listener name (default name is LISTENER)

-o <oracle_home> ORACLE_HOME path (default value is CRS_HOME)

-k <net_num> network number (default number is 1)

-s Skip the checking of ports

-p "[TCP:]<port>[, ...][/IPC:<key>][/NMP:<pipe_name>][/TCPS:<s_port>] [/SDP:<port>]" Comma separated tcp ports or listener endpoints

-h Print usage

具體過程如下,資料庫是oracle 11gr2版本

1,開始添加 ,使用grid使用者

[[email protected] admin]$ srvctl add listener -l listener_epm -p 1522 -o $ORACLE_HOME

2,啟動

srvctl start listener -l listener_epm

啟動後相關檔案才發生變化

[[email protected] admin]$ cat listener.ora

LISTENER_EPM=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_EPM)))) # line added by Agent

LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent

LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) # line added by Agent

#LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_EPM=ON # line added by Agent

[[email protected] admin]$

[[email protected] admin]$

[[email protected] admin]$

[[email protected] admin]$ cat endpoints_listener.ora

LISTENER_EPM_DTYDB5=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dtydb5-vip)(PORT=1522))(ADDRESS=(PROTOCOL=TCP)(HOST=10.4.124.235)(PORT=1522)(IP=FIRST)))) # line added by Agent

LISTENER_DTYDB5=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=dtydb5-vip)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.4.124.235)(PORT=1521)(IP=FIRST)))) # line added by Agent

3,檢視資源的狀态online

ora.LISTENER_EPM.lsnr

ONLINE ONLINE dtydb3

ONLINE ONLINE dtydb4

ONLINE ONLINE dtydb5

[[email protected] admin]$ lsnrctl status listener_epm

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 13-SEP-2012 10:16:48

Copyright (c) 1991, 2010, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_EPM)))

STATUS of the LISTENER

------------------------

Alias LISTENER_EPM

Version TNSLSNR for Linux: Version 11.2.0.2.0 - Production

Start Date 13-SEP-2012 10:14:17

Uptime 0 days 0 hr. 2 min. 32 sec

Trace Level off

Security ON: Local OS Authentication

SNMP ON

Listener Parameter File /oracle/11.2.0/grid/network/admin/listener.ora

Listener Log File /oracle/11.2.0/grid/log/diag/tnslsnr/dtydb5/listener_epm/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_EPM)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.4.124.235)(PORT=1522)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.4.124.245)(PORT=1522)))

The listener supports no services

The command completed successfully

4,vi listener.ora 添加以下資訊,主要要修改三個節點的資訊(後來證明,本步驟可以省略,可能因為靜态監聽資訊已在endpoints_listener.ora檔案中了)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = epmdb)

(ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db_1)

(SID_NAME = epmdb3)

)

)

5, 重新開機listener

[[email protected] admin]$ srvctl stop listener -l listener_epm

[[email protected] admin]$ srvctl start listener -l listener_epm

這時服務還是沒有注冊上來

[[email protected] admin]$ lsnrctl status listener_epm

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 13-SEP-2012 10:27:15

Copyright (c) 1991, 2010, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_EPM)))

STATUS of the LISTENER

------------------------

Alias LISTENER_EPM

Version TNSLSNR for Linux: Version 11.2.0.2.0 - Production

Start Date 13-SEP-2012 10:26:35

Uptime 0 days 0 hr. 0 min. 40 sec

Trace Level off

Security ON: Local OS Authentication

SNMP ON

Listener Parameter File /oracle/11.2.0/grid/network/admin/listener.ora

Listener Log File /oracle/11.2.0/grid/log/diag/tnslsnr/dtydb5/listener_epm/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_EPM)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.4.124.235)(PORT=1522)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.4.124.245)(PORT=1522)))

The listener supports no services

The command completed successfully

6,什麼原因?應該是local_listener設定問題,還需要修改該參數

[email protected](dtydb5)> show parameter local

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

local_listener string (DESCRIPTION=(ADDRESS_LIST=(AD

DRESS=(PROTOCOL=TCP)(HOST=10.4

.124.245)(PORT=1521))))

[email protected](dtydb5)> alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.4.124.245)(PORT=1522))))' scope=both sid='*';

系統已更改。

alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.4.124.243)(PORT=1522))))' scope=both sid='epmdb1';

alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.4.124.244)(PORT=1522))))' scope=both sid='epmdb2';

alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.4.124.245)(PORT=1522))))' scope=both sid='epmdb3';

7,已成功注冊

[[email protected] admin]$ lsnrctl status LISTENER_EPM

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 13-SEP-2012 10:40:47

Copyright (c) 1991, 2010, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_EPM)))

STATUS of the LISTENER

------------------------

Alias LISTENER_EPM

Version TNSLSNR for Linux: Version 11.2.0.2.0 - Production

Start Date 13-SEP-2012 10:26:35

Uptime 0 days 0 hr. 14 min. 12 sec

Trace Level off

Security ON: Local OS Authentication

SNMP ON

Listener Parameter File /oracle/11.2.0/grid/network/admin/listener.ora

Listener Log File /oracle/11.2.0/grid/log/diag/tnslsnr/dtydb5/listener_epm/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_EPM)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.4.124.235)(PORT=1522)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.4.124.245)(PORT=1522)))

Services Summary...

Service "epmdb" has 1 instance(s).

Instance "epmdb3", status READY, has 1 handler(s) for this service...

The command completed successfully

參考資料:

http://www.askmaclean.com/archives/11gr2-rac-add-listener-static-register.html