rac修改监听端口
一、背景与目标
在生产环境中,为了安全考虑,通常需要修改Oracle RAC监听的默认端口号。本技术方案旨在详细说明如何在Oracle RAC环境中修改监听端口,包括SCAN listener端口和Listener Ports,以确保数据库的安全性和稳定性。
二、环境准备
Oracle RAC集群环境已搭建并正常运行。
拥有足够的权限(如grid用户和oracle用户)来执行相关操作。
一、环境说明
数据库版本:
Version 19.3.0.0.0
系统版本:
[grid@rac1 ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
IP相关信息:
# public
192.168.56.111 rac1
192.168.56.112 rac2
# private
10.10.10.1 rac1-priv
10.10.10.2 rac2-priv
# virtual
192.168.56.113 rac1-vip
192.168.56.114 rac2-vip
# scan-ip
192.168.56.115 rac-scan
需要注意的是如果某个应用要通过 SCAN IP 访问数据库,开通网络访问关系时除了开通 SCAN IP 端口外,还需要开通各个 VIP 监听端口,
因为SCAN IP 是把连接请求发送转发给 local listener,后续应用和 local listener 之间通讯的过程,
需要通过 VIP 来访问故也需要开通 VIP 监听端口,连接建立完成后,和 SCAN IP 就没有关系了
1.查看当前的本地监听和scan监听配置
[grid@rac1 ~]$ srvctl config scan_listener
SCAN Listeners for network 1:
Registration invited nodes:
Registration invited subnets:
Endpoints: TCP:1521
SCAN Listener LISTENER_SCAN1 exists
SCAN Listener is enabled.
[grid@rac1 ~]$ srvctl config scan
SCAN name: rac-scan, Network: 1
Subnet IPv4: 192.168.56.0/255.255.255.0/enp0s3, static
Subnet IPv6:
SCAN 1 IPv4 VIP: 192.168.56.115
SCAN VIP is enabled.
[grid@rac1 ~]$ srvctl config listener -l listener
Name: LISTENER
Type: Database Listener
Network: 1, Owner: grid
Home: <CRS home>
End points: TCP:1521
Listener is enabled.
Listener is individually enabled on nodes:
Listener is individually disabled on nodes:
2 查看监听状态
[grid@rac1 ~]$ lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 08-NOV-2024 01:01:42
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 07-NOV-2024 05:00:14
Uptime 0 days 20 hr. 1 min. 28 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/19.9.0/grid/network/admin/listener.ora
Listener Log File /u01/app/grid/diag/tnslsnr/rac1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.111)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.113)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_OCR" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "86b637b62fdf7a65e053f706e80a27ca" has 1 instance(s).
Instance "orcl1", 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
[grid@rac1 ~]$ lsnrctl status LISTENER_SCAN1
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 08-NOV-2024 01:01:55
Copyright (c) 1991, 2019, 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 19.0.0.0.0 - Production
Start Date 07-NOV-2024 04:59:22
Uptime 0 days 20 hr. 2 min. 33 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/19.9.0/grid/network/admin/listener.ora
Listener Log File /u01/app/grid/diag/tnslsnr/rac1/listener_scan1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.115)(PORT=1521)))
Services Summary...
Service "86b637b62fdf7a65e053f706e80a27ca" 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 "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
3 修改监听端口
[grid@rac1 ~]$ srvctl modify listener -l LISTENER -p "TCP:11521"
[grid@rac1 ~]$
[grid@rac1 ~]$ srvctl modify scan_listener -p 11521
再次查看状态
[grid@rac1 ~]$ lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 08-NOV-2024 01:03:20
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 07-NOV-2024 05:00:14
Uptime 0 days 20 hr. 3 min. 6 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/19.9.0/grid/network/admin/listener.ora
Listener Log File /u01/app/grid/diag/tnslsnr/rac1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.111)(PORT=11521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.113)(PORT=11521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_DATA" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "+ASM_OCR" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "86b637b62fdf7a65e053f706e80a27ca" has 1 instance(s).
Instance "orcl1", 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
[grid@rac1 ~]$ lsnrctl status LISTENER_SCAN1
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 08-NOV-2024 01:03:30
Copyright (c) 1991, 2019, 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 19.0.0.0.0 - Production
Start Date 07-NOV-2024 04:59:22
Uptime 0 days 20 hr. 4 min. 8 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/19.9.0/grid/network/admin/listener.ora
Listener Log File /u01/app/grid/diag/tnslsnr/rac1/listener_scan1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER_SCAN1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.115)(PORT=11521)))
Services Summary...
Service "86b637b62fdf7a65e053f706e80a27ca" 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 "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
可以看到监听端口应该修改
检查发现监听已经正常启动,端口号也改变为正确的端口,无需单独重启。
如有需要重启动监听,(正常情况下不需要重启,数据库会自动应用新的端口)
仅在节点 1 上执行。
[grid@rac01 ]$ srvctl stop listener -l listener
[grid@rac01 ]$ srvctl stop scan_listener
[grid@rac01 ]$ srvctl start listener -l listener
[grid@rac01 ]$ srvctl start scan_listener
4.监听检查状态
在 scan 所在的节点执行
[grid@rac02 ~]$ lsnrctl status LISTENER_SCAN1
节点 1 和节点 2 都检查执行
[grid@rac02 ~]$ lsnrctl status
5.检查asm监听信息。
local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=
192.168.56.114)(PORT=11521))
6.查看数据库的监听信息
SQL> show parameter list
forward_listener string
listener_networks string
local_listener string (ADDRESS=(PROTOCOL=TCP)(HOST=
192.168.56.113)(PORT=11521))
remote_listener string rac-scan:11521
如果没有自动修改则登录数据库实例,仅在其中一个实例执行。
alter system set remote_listener='rac-scan:11521' scope=both;
修改 LOCAL_LISTENER 仅仅在一个主机上执行。
alter system set local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.113)(PORT=11521))' scope=both sid='orcl1';
alter system set local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.114)(PORT=11521))' scope=both sid='orcl2';
7.修改 tnsnames.ora 配置文件
记得修改各个客户端以及 tnsnames.ora 配置文件中监听端口的配置。
vim /u01/app/oracle/product/19.0.0/dbhome_1/network/admin/tnsnames.ora
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69924215/viewspace-3047477/ ,如需转载,请注明出处,否则将追究法律责任。