oracle 11g rac修改監聽端口(遠程監聽和本地監聽)


oracle rac監聽和oracle單節點監聽不同,rac監聽分為遠程監聽和本地監聽:

  • 遠程監聽即remote_listener也是scan_listener

  • 本地監聽即local_listener也是listener

local_listener 默認不需要配置,默認配置指向1521端口,對於需要單實例連接rac數據庫實例且對端口有要求的情況,需要改變本地監聽端口指向tns里的連接字符串,而在rac配置中默認指向本節點的vip。

remote_listener指向的是scan監聽名,需要遠程監聽配置

1、修改遠程監聽端口

單節點執行

1.1 查看遠程監聽狀態

切換至grid賬號下


[grid@db1 ~]$ srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1521 #遠程監聽端口為1521


[grid@db1 ~]$ lsnrctl status LISTENER_SCAN1

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 11-MAR-2020 22:17:50

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_SCAN1
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                10-MAR-2020 22:02:49
Uptime                    1 days 0 hr. 15 min. 1 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/grid/11.2.0/network/admin/listener.ora
Listener Log File         /u01/app/grid/11.2.0/log/diag/tnslsnr/db1/listener_scan1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.242.124.205)(PORT=1521))) ## 遠程監聽端口為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

scan_listener如果不在節點1,則在另外一個節點查看

1.2 修改SCAN listener端口

在grid用戶下進行,命令格式如下


Modify SCAN listener port:

$GRID_HOME/bin/srvctl modify scan_listener -p 
Update 11gR2 database init.ora parameter: alter system set remote_listener=':' scope=both;


示例:

[grid@db1 ~]$ $GRID_HOME/bin/srvctl modify scan_listener -p 1525

1.3 為監聽注冊實例

切換到oracle節點執行


SQL> show parameter listener NAME TYPE VALUE

[root@db1 ~]# su - oracle
[oracle@db1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Mar 11 22:31:15 2020

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> show parameter listener NAME TYPE VALUE

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
listener_networks		     string
local_listener			     string	 (DESCRIPTION=(ADDRESS_LIST=(AD
						 DRESS=(PROTOCOL=TCP)(HOST=10.2
						 42.124.203)(PORT=1521))))
remote_listener 		     string	 dbscan:1521 ##遠程監聽端口為1521

SQL> alter system set remote_listener='dbscan:1525' scope=both;
 
System altered.

SQL> show parameter listener NAME TYPE VALUE

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
listener_networks		     string
local_listener			     string	 (DESCRIPTION=(ADDRESS_LIST=(AD
						 DRESS=(PROTOCOL=TCP)(HOST=10.2
						 42.124.203)(PORT=1521))))
remote_listener 		     string	 dbscan:1525 ##遠程監聽端口已經修改為1525

1.4 重啟遠端監聽scan listener生效新端口

切換至grid



[grid@db1 ~]# srvctl stop scan_listener
[grid@db1 ~]# srvctl start scan_listener

1.5 確認遠端監聽狀態


[grid@db1 ~]$ srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1525

[grid@db1 ~]$ lsnrctl status LISTENER_SCAN1

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 11-MAR-2020 22:40:51

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER_SCAN1
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                10-MAR-2020 22:02:49
Uptime                    1 days 0 hr. 38 min. 2 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/grid/11.2.0/network/admin/listener.ora
Listener Log File         /u01/app/grid/11.2.0/log/diag/tnslsnr/db1/listener_scan1/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.242.124.205)(PORT=1525))) #遠程節點端口已經修改為1525
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

發現rac集群遠端監聽端口已經修改完畢
使用sqlplus連接正常

2、修改本地監聽端口

雙節點都要執行

2.1 獲取本地監聽程序配置信息

切換到grid執行


[grid@db1 ~]$ srvctl config listener
Name: LISTENER
Network: 1, Owner: grid
Home: <CRS home>
End points: TCP:1521 #本地監聽端口為1521

[grid@db1 ~]$ lsnrctl status #查看監聽狀態

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 11-MAR-2020 23:11:02

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                10-MAR-2020 22:02:49
Uptime                    1 days 1 hr. 8 min. 13 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/grid/11.2.0/network/admin/listener.ora
Listener Log File         /u01/grid/diag/tnslsnr/db1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.242.124.201)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.242.124.203)(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



2.2 修改本地監聽端口

[grid@db1 ~]$ srvctl modify listener -l LISTENER -p "TCP:1525"

2.3 手工修改LOCAL_LISTENER參數注冊實例

切換到oracle用戶執行


[root@db1 ~]# su - oracle
[oracle@db1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Mar 11 22:59:39 2020

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> show parameter listener NAME TYPE VALUE

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
listener_networks		     string
local_listener			     string	 (DESCRIPTION=(ADDRESS_LIST=(AD
						 DRESS=(PROTOCOL=TCP)(HOST=10.2
						 42.124.203)(PORT=1521)))) #本地端口為1521
remote_listener 		     string	 dbscan:1525
SQL>alter  system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.2
					 42.124.203)(PORT=3521))))' scope=both sid='orcl1'  # 此處HOST為節點虛地址vip,sid為節點進程ID
System altered.
SQL>alter  system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.2
           42.124.204)(PORT=3521))))' scope=both sid='orcl1'  # 此處HOST為節點虛地址vip,sid為節點進程ID
System altered.
SQL> show parameter listener

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
listener_networks		     string
local_listener			     string	 (DESCRIPTION=(ADDRESS_LIST=(AD
						 DRESS=(PROTOCOL=TCP)(HOST=10.2
						 42.124.203)(PORT=1525))))
remote_listener 		     string	 dbscan:1525 #本地端口已經修改


2.4 重啟本地監聽

切換到grid用戶執行


[grid@db1 ~]# srvctl stop listener
[grid@db1 ~]# srvctl start listener

2.5 查看本地監聽狀態



[grid@db1 ~]$ lsnrctl status #查看監聽狀態

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 11-MAR-2020 23:11:02

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                10-MAR-2020 22:02:49
Uptime                    1 days 1 hr. 8 min. 13 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/grid/11.2.0/network/admin/listener.ora
Listener Log File         /u01/grid/diag/tnslsnr/db1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.242.124.201)(PORT=1525))) # 實地址端口已經改為1525
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.242.124.203)(PORT=1525))) # 虛地址端口已經改為1525
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

發現節點1得本地監聽端口已經修改完成,在節點2重復上述步驟,完成節點2本地監聽端口得修改即可

使用sqlplus連接正常


免責聲明!

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



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