0

0

如何配置RAC环境下的多监听器_本地Listener与SCAN Listener协同

P粉602998670

P粉602998670

发布时间:2026-03-16 15:31:36

|

373人浏览过

|

来源于php中文网

原创

SCAN Listener是集群级入口,负责接收SCAN IP请求并负载转发;本地LISTENER仅处理本机实例注册和连接,二者分工协作而非并列,需确保LOCAL_LISTENER指向本机真实地址、REMOTE_LISTENER设为可解析的SCAN名称,并手动触发ALTER SYSTEM REGISTER生效。

SCAN Listener 和本地 LISTENER 不是并列关系,而是分工协作

很多人以为要“手动配两个监听器”,其实 oracle rac 中 scan listener 是集群级入口,负责接收客户端通过 scan ip 发来的连接请求;而每个节点上的本地 listener(默认名 listener)只管本机实例注册和本地连接。它们不抢端口、不互斥,但必须注册一致——否则客户端连 scan 能通,却分配不到实例。

关键点在于:实例只向本地 LISTENER 注册;SCAN Listener 本身不直连实例,它靠 OCR 中的集群服务信息做负载转发。所以你改本地监听配置,不影响 SCAN 行为;但改错本地监听的 LOCAL_LISTENER 参数,SCAN 就找不到你这台实例了。

  • LOCAL_LISTENER 参数必须指向本机真实监听地址(如 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1-vip)(PORT=1521)))),不能写成 localhost127.0.0.1
  • REMOTE_LISTENER 必须设为 SCAN 名称(如 rac-scan:1521),且该名称要在所有节点的 /etc/hosts 或 DNS 中可解析
  • 检查是否生效:lsnrctl status LISTENER 看有没有显示 “Service “your_db” has 1 instance(s)”;再用 srvctl config listener 确认 SCAN Listener 端口和网络绑定正确

修改 LOCAL_LISTENER 后必须手工 reload 实例注册

改完 LOCAL_LISTENER 参数(无论是 ALTER SYSTEM SET 还是改 spfile),实例不会自动重新向监听器注册。这时候 lsnrctl status 里可能还挂着旧地址,SCAN 也就继续忽略你这个节点。

常见错误现象:节点重启后实例没注册进本地监听,SELECT inst_name FROM v$active_instances 看不到自己,但 crsctl stat res -t 显示数据库资源是 ONLINE 的——其实是“活着但不可见”。

  • 执行 ALTER SYSTEM REGISTER; 强制触发一次动态注册(无需重启实例)
  • 如果注册失败,先确认本地监听已启动:lsnrctl status LISTENER;再检查监听日志(默认在 $ORACLE_HOME/network/log/listener.log)是否有 TNS-12545 或 TNS-00515 错误
  • 别依赖“等两分钟自动注册”——生产环境建议立即手动触发

SCAN Listener 端口被占用或绑定失败的典型表现

SCAN Listener 默认用 1521,但它不是由 listener.ora 控制,而是由 Grid Infrastructure 管理。如果你在节点上手动启了一个普通监听占了 1521,srvctl start scan_listener 会静默失败,crsctl stat res -t 里看到的是 OFFLINE,但没报错提示。

Seed-Music
Seed-Music

字节跳动推出的AI音乐生成与编辑工具

下载

使用场景:升级后 SCAN Listener 消失、新增节点后客户端连 SCAN 超时、tnsping rac-scan 成功但 sqlplus /@rac-scan:1521/orcl 报 ORA-12541。

  • 查 SCAN Listener 状态:srvctl status scan_listener,失败时补看 crsctl stat res ora.scan1_listeners -p | grep ENDPOINTS
  • 查端口占用:netstat -tlnp | grep :1521(注意是 root 权限),重点看是不是 grid 用户进程在用
  • 不要去改 listener.ora 绑 SCAN Listener——它不由该文件控制;要用 srvctl modify scan_listener -p 1522 改端口,然后 srvctl stop/start scan_listener

客户端连接串里写 SCAN 还是节点 VIP?

写 SCAN 是标准做法,但前提是你的 tnsnames.ora 配置和服务名解析都对。容易被忽略的是:SCAN 名称必须能被客户端解析(DNS 或 hosts),且不能和本地节点名冲突;否则 Oracle 客户端会优先走本地解析,绕过 SCAN 负载均衡逻辑。

性能影响明显:用节点 VIP 直连,就彻底绕过了 SCAN 的连接负载分发和故障转移能力;而 SCAN + 连接池(如 UCP、TNSPING)才能真正利用 RAC 的高可用性。

  • 推荐连接串格式:
    (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rac-scan)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))
  • 验证是否走 SCAN:sqlplus /@orcl 登录后执行 SELECT sys_context('USERENV','SERVER_HOST') FROM DUAL;,返回值应该是某节点 VIP 主机名,而不是 SCAN 名——说明已成功路由
  • 如果客户端是 Windows 且 hosts 文件里写了 rac-scan 到某个节点 IP,那它永远只连那个节点,SCAN 形同虚设
实际配通的关键不在“多监听器”的数量,而在注册路径是否闭环:实例 → 本地 LISTENERREMOTE_LISTENER(即 SCAN)→ 客户端。任一环的地址写错、解析失败、端口冲突,都会让 SCAN 看不见这个实例。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1518

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1172

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

837

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

463

2023.08.02

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2362

2023.08.08

windows自动更新
windows自动更新

Windows操作系统的自动更新功能可以确保系统及时获取最新的补丁和安全更新,以提高系统的稳定性和安全性。然而,有时候我们可能希望暂时或永久地关闭Windows的自动更新功能。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

874

2023.08.10

windows boot manager
windows boot manager

windows boot manager无法开机的解决方法:1、系统文件损坏,使用Windows安装光盘或USB启动盘进入恢复环境,选择修复计算机,然后选择自动修复;2、引导顺序错误,进入恢复环境,选择命令提示符,输入命令"bootrec /fixboot"和"bootrec /fixmbr",然后重新启动计算机;3、硬件问题,使用硬盘检测工具进行扫描和修复;4、重装操作系统。本专题还提供其他解决

1997

2023.08.28

windows锁屏快捷键
windows锁屏快捷键

windows锁屏快捷键是Windows键+L、Ctrl+Alt+Del、Windows键+D、Windows键+P和Windows键+R。本专题为大家提供windows相关的文章、下载、课程内容,供大家免费下载体验。

1671

2023.08.30

minimax入口地址汇总
minimax入口地址汇总

本专题整合了minimax相关入口合集,阅读专题下面的文章了解更多详细地址。

2

2026.03.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号