lsnrctl如何配合Oracle RAC使用
导读:Oracle RAC 中 lsnrctl 的定位与原则 在 Oracle 11gR2 及以后的 RAC 中,监听由 Grid Infrastructure 托管,节点本地监听和网络端点通常由 SCAN 与 endpoints_listen...
Oracle RAC 中 lsnrctl 的定位与原则
- 在 Oracle 11gR2 及以后的 RAC 中,监听由 Grid Infrastructure 托管,节点本地监听和网络端点通常由 SCAN 与 endpoints_listener.ora 管理。日常对监听的生命周期与端口变更应使用 srvctl/crsctl;lsnrctl 主要用于在本机查看监听状态、服务注册与动态参数调整。直接使用 lsnrctl 启停由集群管理的监听,可能被集群覆盖或与 endpoints 信息不一致,应避免。
常用 lsnrctl 命令与典型输出
- 查看监听状态与注册服务
- 命令:
lsnrctl status [listener_name] - 要点:关注监听的 版本、启动时间、监听地址/端口、已注册服务与实例状态。在 RAC 中,你会看到类似 “Service “< db_service> ” has N instance(s)” 的汇总,以及每个实例的 REMOTE SERVER 指向各自 VIP。
- 命令:
- 查看服务与连接统计
- 命令:
lsnrctl services [listener_name] - 要点:可查看 专用/共享服务器 的处理器状态、已建立/拒绝连接数,用于快速判断实例是否向监听正常注册与负载情况。
- 命令:
- 动态重载与在线调整
- 命令:
lsnrctl reload [listener_name](不中断现有连接,重新读取配置) - 命令:
lsnrctl set < 参数> < 值>/lsnrctl show < 参数>(在线查看/设置日志级别、跟踪等) - 命令:
lsnrctl trace < level>(开启跟踪,定位复杂连通性问题) - 命令:
lsnrctl version(查看监听软件版本)
- 命令:
RAC 场景下的标准操作流程
- 查看与确认监听资源
- 命令:
crsctl stat res -t | grep -i listener(查看 LISTENER 与 LISTENER_SCAN1 状态) - 命令:
srvctl config listener、srvctl config scan_listener(确认监听与 SCAN 监听的端口与网络)
- 命令:
- 变更监听端口(示例:由 1521 改为 11521)
- 修改本地监听端口:
srvctl modify listener -p 11521 - 修改 SCAN 监听端口:
srvctl modify scan_listener -p 11521 - 说明:LISTENER 在每个节点存在,SCAN_LISTENER 只在一个节点上运行;变更后用
crsctl stat res -t与srvctl config ...复核。
- 修改本地监听端口:
- 新增自定义监听(可选)
- 添加监听:
srvctl add listener -l < lsnr_name> -p < port> -k < net_num> -o < GI_HOME> - 启动监听:
srvctl start listener -l < lsnr_name> - 说明:新增后会在 listener.ora 与 endpoints_listener.ora 生成条目;如需静态注册,可在相应 SID_LIST_ 段添加实例信息。
- 添加监听:
- 客户端连接串建议(配合 SCAN 与 VIP 负载均衡/故障转移)
- 示例要点:在
tnsnames.ora中使用 SCAN 名称 或 多个节点 VIP 的多地址条目,开启 LOAD_BALANCE=ON 与 FAILOVER=ON,服务名使用 SERVICE_NAME(而非 SID)。示例:RACDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521)) (LOAD_BALANCE = ON) (FAILOVER = ON) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = your_service) ) ) - 说明:RAC 的“连接负载均衡”主要由客户端连接串与 SCAN 分发实现,lsnrctl 不直接提供负载均衡功能。
- 示例要点:在
常见排错要点
- 确认环境变量与身份
- 在 RAC 上执行监听操作建议以 grid 用户、GI 的 $ORACLE_HOME/network/admin 为基准,避免读取到数据库
$ORACLE_HOME下的错误配置。
- 在 RAC 上执行监听操作建议以 grid 用户、GI 的 $ORACLE_HOME/network/admin 为基准,避免读取到数据库
- 使用 endpoints_listener.ora 时的管理边界
- 当目录中存在 endpoints_listener.ora(11gR2 常见),监听地址/端口由 Oraagent 维护,优先用 srvctl/crsctl 管理;直接用 lsnrctl 启停或变更,可能出现地址不一致或监听未覆盖必要端点的现象。
- 快速定位注册与连通
- 用
lsnrctl status检查监听是否运行、端口是否正确、服务是否注册到监听。 - 用
lsnrctl services检查实例是否 READY、是否生成了到各实例 VIP 的远程处理器。 - 若修改了
listener.ora(如新增静态注册),用lsnrctl reload使监听重读配置而不中断现有会话。
- 用
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: lsnrctl如何配合Oracle RAC使用
本文地址: https://pptw.com/jishu/760053.html
