Oracle RAC 中 lsnrctl 的定位与原则
常用 lsnrctl 命令与典型输出
lsnrctl status [listener_name]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 监听的端口与网络)srvctl modify listener -p 11521srvctl modify scan_listener -p 11521crsctl 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>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)
)
)
常见排错要点
$ORACLE_HOME 下的错误配置。lsnrctl status 检查监听是否运行、端口是否正确、服务是否注册到监听。lsnrctl services 检查实例是否 READY、是否生成了到各实例 VIP 的远程处理器。listener.ora(如新增静态注册),用 lsnrctl reload 使监听重读配置而不中断现有会话。