首页主机资讯lsnrctl如何配合Oracle RAC使用

lsnrctl如何配合Oracle RAC使用

时间2025-12-01 13:41:04发布访客分类主机资讯浏览1120
导读:Oracle RAC 中 lsnrctl 的定位与原则 在 Oracle 11gR2 及以后的 RAC 中,监听由 Grid Infrastructure 托管,节点本地监听和网络端点通常由 SCAN 与 endpoints_listen...

Oracle RAC 中 lsnrctl 的定位与原则

  • Oracle 11gR2 及以后的 RAC 中,监听由 Grid Infrastructure 托管,节点本地监听和网络端点通常由 SCANendpoints_listener.ora 管理。日常对监听的生命周期与端口变更应使用 srvctl/crsctllsnrctl 主要用于在本机查看监听状态、服务注册与动态参数调整。直接使用 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(查看 LISTENERLISTENER_SCAN1 状态)
    • 命令:srvctl config listenersrvctl config scan_listener(确认监听与 SCAN 监听的端口与网络)
  • 变更监听端口(示例:由 1521 改为 11521
    • 修改本地监听端口:srvctl modify listener -p 11521
    • 修改 SCAN 监听端口:srvctl modify scan_listener -p 11521
    • 说明:LISTENER 在每个节点存在,SCAN_LISTENER 只在一个节点上运行;变更后用 crsctl stat res -tsrvctl config ... 复核。
  • 新增自定义监听(可选)
    • 添加监听:srvctl add listener -l < lsnr_name> -p < port> -k < net_num> -o < GI_HOME>
    • 启动监听:srvctl start listener -l < lsnr_name>
    • 说明:新增后会在 listener.oraendpoints_listener.ora 生成条目;如需静态注册,可在相应 SID_LIST_ 段添加实例信息。
  • 客户端连接串建议(配合 SCAN 与 VIP 负载均衡/故障转移)
    • 示例要点:在 tnsnames.ora 中使用 SCAN 名称多个节点 VIP 的多地址条目,开启 LOAD_BALANCE=ONFAILOVER=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 下的错误配置。
  • 使用 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
ubuntu syslog怎么归档 C++ Linux下如何进行日志记录

游客 回复需填写必要信息