Oracle 11gR2 RAC監聽器原理介紹


一、基本概念

oracle11gR2 RAC開始引入scan概念,一般通過dns服務器或gns服務器解析scan,也可以使用/etc/hosts文件解析scan,只不過oracle官方不建議這樣做,hosts文件只能解析一個scan ip;另一個方面監聽器前移到$GRID_HOME/network/admin/listener.ora文件,即11g rac監聽器由grid用戶管理,oracle用戶保留文件,但已經不起作用。客戶端文件tnsnames.ora依然在$ORACLE_HOME/network/admin/tnsnames.ora文件。scan的提出徹底做到了rac數據庫對用戶的透明管理,客戶端通過scan域名直接連接數據庫即可(首先客戶端可以解析scan域名),具體由DNS服務器解析域名,這里如果用dns解析scan,最多可以解析3個scan vip,通過scan域名訪問數據庫可以實現scan vip的failover和負載均衡,即只要3個scan vip中存活一個,客戶端應用既可以訪問數據庫。如果采用hosts文件解析scan,只能解析一個scan vip。

oracle 10g rac中監聽器由oracle用戶管理,每個節點上,只有一個監聽器,但是這個監聽器同時監聽public ip和vip,即oracle 10g rac中的監聽器同時承擔着路由選擇和建立連接的功能。10g rac客戶端通過vip連接數據庫。

oracle 11g rac中使用GRID_HOME下的監聽器而不采用ORACLE_HOME 下的監聽器,同時在oracle 11g rac中出現了多個監聽器,使用名稱區分。所以11g rac的監聽器使用grid用戶管理,而不能通過oracle用戶進行管理。11g rac監聽器分本地監聽器(建立連接)和scan監聽器(路由轉發)2種,另外,每一個scan vip都會有一個scan監聽器,並且運行在同一個節點上。即

rac中,每個節點上都運行一個本地監聽器,這個監聽器負責監聽本地的vip。

rac中,會有3個節點上運行scan監聽器。

rac中,scanvip和scan監聽器成對出現。

二、監聽器管理及故障處理

節點1 listener.ora配置:

[grid@node1 admin]$ pwd

/u01/app/11.2.0/grid/network/admin

[grid@node1 admin]$ cat listener.ora

# listener.ora.node1 Network Configuration File: /u01/app/11.2.0/grid/network/admin/listener.ora.node1

# Generated by Oracle configuration tools.

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN3 = ON

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN2 = ON

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1 = ON

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER1 = ON

LISTENER =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER))

)

)

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER = ON

LISTENER_SCAN3 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN3))

)

)

LISTENER_SCAN2 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN2))

)

)

LISTENER_SCAN1 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN1))

)

)

節點2 listener.ora配置:

[grid@node2 admin]$ pwd

/u01/app/11.2.0/grid/network/admin

[grid@node2 admin]$ cat listener.ora

# listener.ora.node2 Network Configuration File: /u01/app/11.2.0/grid/network/admin/listener.ora.node2

# Generated by Oracle configuration tools.

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN3 = ON

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN2 = ON

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1 = ON

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER1 = ON

SID_LIST_LISTENER1 =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = orcl)

(ORACLE_HOME = /u01/app/11.2.0/grid)

(SID_NAME = orcl2)

)

)

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER))

)

ADR_BASE_LISTENER = /u01/app/grid

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER = ON

LISTENER_SCAN3 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN3))

)

LISTENER_SCAN2 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN2))

)

LISTENER_SCAN1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN1))

)

ADR_BASE_LISTENER_SCAN3 = /u01/app/grid

ADR_BASE_LISTENER_SCAN2 = /u01/app/grid

ADR_BASE_LISTENER_SCAN1 = /u01/app/grid

1、查看scan vip配置

節點1:

[grid@node1 admin]$ srvctl config scan

SCAN name: scan-cluster, Network: 1/192.168.100.0/255.255.255.0/eth0

SCAN VIP name: scan1, IP: /scan-cluster/192.168.100.45

SCAN VIP name: scan2, IP: /scan-cluster/192.168.100.46

SCAN VIP name: scan3, IP: /scan-cluster/192.168.100.47

節點2:

[grid@node2 admin]$ srvctl config scan

SCAN name: scan-cluster, Network: 1/192.168.100.0/255.255.255.0/eth0

SCAN VIP name: scan1, IP: /scan-cluster/192.168.100.45

SCAN VIP name: scan2, IP: /scan-cluster/192.168.100.46

SCAN VIP name: scan3, IP: /scan-cluster/192.168.100.47

2、查看scan vip狀態(靜態)

節點1:

[grid@node1 admin]$ srvctl status scan

SCAN VIP scan1 is enabled

SCAN VIP scan1 is running on node node2

SCAN VIP scan2 is enabled

SCAN VIP scan2 is running on node node2

SCAN VIP scan3 is enabled

SCAN VIP scan3 is running on node node1

節點2:

[grid@node2 admin]$ srvctl status scan

SCAN VIP scan1 is enabled

SCAN VIP scan1 is running on node node2

SCAN VIP scan2 is enabled

SCAN VIP scan2 is running on node node2

SCAN VIP scan3 is enabled

SCAN VIP scan3 is running on node node1

3、查看scan vip狀態(動態)

節點1:

[oracle@node1 admin]$ srvctl status scan

SCAN VIP scan1 is enabled

SCAN VIP scan1 is running on node node2

SCAN VIP scan2 is enabled

SCAN VIP scan2 is running on node node2

SCAN VIP scan3 is enabled

SCAN VIP scan3 is running on node node1

節點2:

[oracle@node2 admin]$ srvctl status scan

SCAN VIP scan1 is enabled

SCAN VIP scan1 is running on node node2

SCAN VIP scan2 is enabled

SCAN VIP scan2 is running on node node2

SCAN VIP scan3 is enabled

SCAN VIP scan3 is running on node node1

4、查看scan listener配置

節點1:

[grid@node1 admin]$ srvctl config scan_listener

SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521

SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1521

SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1521

節點2:

[grid@node2 admin]$ srvctl config scan_listener

SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521

SCAN Listener LISTENER_SCAN2 exists. Port: TCP:1521

SCAN Listener LISTENER_SCAN3 exists. Port: TCP:1521

5、查看scan listener狀態

節點1:

[grid@node1 admin]$ srvctl status scan_listener

SCAN Listener LISTENER_SCAN1 is enabled

SCAN listener LISTENER_SCAN1 is running on node node2

SCAN Listener LISTENER_SCAN2 is enabled

SCAN listener LISTENER_SCAN2 is running on node node2

SCAN Listener LISTENER_SCAN3 is enabled

SCAN listener LISTENER_SCAN3 is running on node node1

節點2:

[grid@node2 admin]$ srvctl status scan_listener

SCAN Listener LISTENER_SCAN1 is enabled

SCAN listener LISTENER_SCAN1 is running on node node2

SCAN Listener LISTENER_SCAN2 is enabled

SCAN listener LISTENER_SCAN2 is running on node node2

SCAN Listener LISTENER_SCAN3 is enabled

SCAN listener LISTENER_SCAN3 is running on node node1

lsnrct命令查看scan vip狀態:

節點1:

[grid@node1 admin]$ lsnrctl status LISTENER_SCAN3

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 25-MAR-2016 16:09:39

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

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

STATUS of the LISTENER

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

Alias LISTENER_SCAN3

Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date 25-MAR-2016 11:24:15

Uptime 0 days 4 hr. 45 min. 23 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/app/11.2.0/grid/network/admin/listener.ora

Listener Log File /u01/app/11.2.0/grid/log/diag/tnslsnr/node1/listener_scan3/alert/log.xml

Listening Endpoints Summary...

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.47)(PORT=1521)))

Services Summary...

Service "orcl" has 2 instance(s).

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

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

Service "orclXDB" has 2 instance(s).

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

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

The command completed successfully

6、查看本地監聽器配置

節點1:

[grid@node1 admin]$ srvctl config listener

Name: LISTENER

Network: 1, Owner: grid

Home: <CRS home>

End points: TCP:1521

節點2:

[grid@node2 admin]$ srvctl config listener

Name: LISTENER

Network: 1, Owner: grid

Home: <CRS home>

End points: TCP:1521

7、查看本地監聽器狀態

節點1:

[grid@node1 admin]$ srvctl status listener

Listener LISTENER is enabled

Listener LISTENER is running on node(s): node2,node1

節點2:

[grid@node2 admin]$ srvctl status listener

Listener LISTENER is enabled

Listener LISTENER is running on node(s): node2,node1

lsnrctl查看本地監聽器狀態:

節點1:

[grid@node1 admin]$ lsnrctl status listener

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 25-MAR-2016 16:08:03

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

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

STATUS of the LISTENER

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

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production

Start Date 25-MAR-2016 11:24:17

Uptime 0 days 4 hr. 43 min. 46 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/app/11.2.0/grid/network/admin/listener.ora

Listener Log File /u01/app/grid/diag/tnslsnr/node1/listener/alert/log.xml

Listening Endpoints Summary...

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.41)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.100.42)(PORT=1521)))

Services Summary...

Service "+ASM" has 1 instance(s).

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

Service "orcl" has 1 instance(s).

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

Service "orclXDB" has 1 instance(s).

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

The command completed successfully

8、查看本地運行的監聽器

節點1:

[grid@node1 admin]$ ps -ef|grep lsnr

grid 6290 8174 0 16:12 pts/1 00:00:00 grep lsnr

grid 23796 1 0 11:24 ? 00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN3 -inherit

grid 23859 1 0 11:24 ? 00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit

節點2:

[grid@node2 admin]$ ps -ef|grep lsnr

grid 8649 1 0 11:44 ? 00:00:00 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN2 -inherit

grid 10591 1 0 Mar24 ? 00:00:01 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit

grid 18776 6639 0 16:13 pts/1 00:00:00 grep lsnr

grid 24334 1 0 Mar24 ? 00:00:02 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN1 -inherit

9、查看數據庫服務的狀態

[grid@node1 admin]$ lsnrctl service

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 25-MAR-2016 16:19:54

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

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

Services Summary...

Service "+ASM" has 1 instance(s).

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

Handler(s):

"DEDICATED" established:0 refused:0 state:ready

LOCAL SERVER

Service "orcl" has 1 instance(s).

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

Handler(s):

"DEDICATED" established:3 refused:0 state:ready

LOCAL SERVER

Service "orclXDB" has 1 instance(s).

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

Handler(s):

"D000" established:0 refused:0 current:0 max:1022 state:ready

DISPATCHER <machine: node1, pid: 11849>

(ADDRESS=(PROTOCOL=tcp)(HOST=node1)(PORT=43836))

The command completed successfully


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM