导读:本期聚焦于小伙伴创作的《11G RAC使用本地名登陆时遇到ORA-12537 TNS:connection closed报错怎么解决》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《11G RAC使用本地名登陆时遇到ORA-12537 TNS:connection closed报错怎么解决》有用,将其分享出去将是对创作者最好的鼓励。

11G RAC使用本地名登陆时遇到ORA-12537 TNS:connection closed报错是比较常见的数据库连接问题,会直接阻断正常的业务访问流程,下面我们一步步分析排查和解决方法。

11G RAC使用本地名登陆时遇到ORA-12537 TNS:connection closed报错怎么解决

一、先确认基础环境状态

首先不要直接修改配置,先核查RAC集群的基础运行状态,很多报错其实是集群本身异常导致的。

  • 检查所有RAC节点的集群服务是否正常,使用以下命令查看CRS状态:
su - grid
crsctl check cluster -all
# 正常输出会显示所有节点的CRS、CSS、EVM服务都是ONLINE状态
  • 检查每个节点的监听服务是否正常运行,查看监听状态:
su - grid
srvctl status listener -n 节点名
# 示例:srvctl status listener -n rac1
# 正常输出会显示监听程序在指定节点上处于启用状态

二、排查本地名配置问题

本地名配置错误是触发该报错的常见原因,需要检查客户端或服务端的tnsnames.ora文件。

首先找到tnsnames.ora文件的位置,通常客户端在$ORACLE_HOME/network/admin目录下,服务端同理。打开文件后检查配置是否符合RAC的要求,正确的RAC本地名配置示例如下:

RACDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = racdb)
      (FAILOVER_MODE =
        (TYPE = SELECT)
        (METHOD = BASIC)
        (RETRIES = 180)
        (DELAY = 5)
      )
    )
  )

需要重点核对几个参数:

  • HOST字段是否填写的是正确的VIP地址或者VIP对应的主机名,不要写公网IP
  • PORT是否和RAC监听的端口一致,默认是1521
  • SERVICE_NAME是否和RAC数据库的service_name匹配,不要写实例名
  • ADDRESS列表是否包含了所有RAC节点的VIP地址

三、排查网络和监听连通性

如果配置没有问题,接下来测试网络到RAC节点的连通性。

  • 先测试到每个节点VIP的端口连通性,使用telnet命令:
telnet rac1-vip 1521
telnet rac2-vip 1521
# 如果无法连通,检查防火墙是否放通了1521端口,或者VIP是否绑定正常
  • 使用tnsping命令测试本地名解析是否正常:
tnsping RACDB
# 正常会返回OK (xx msec),如果返回错误说明本地名解析有问题

如果tnsping正常但登陆还是报错,需要查看RAC节点的监听日志,日志路径通常在$ORACLE_HOME/network/log/listener.log,搜索报错时间点的日志,看是否有连接被拒绝的具体原因,比如IP限制、连接数满等。

四、常见特殊场景处理

如果以上步骤都没问题,还需要排查几个特殊场景:

  • 检查RAC数据库的remote_listener参数是否配置正确,登录任意节点数据库执行:
show parameter remote_listener;
-- 正确配置应该是scan_ip:1521或者所有节点的VIP列表,格式类似rac-scan:1521
  • 如果是新部署的RAC,检查是否没有将数据库实例注册到监听,手动注册试试:
alter system register;
-- 执行后在监听状态里查看是否有对应的服务注册上来
  • 如果客户端和RAC服务器版本差异较大,尝试在本地名里添加(SECURITY = (BEQUEATH = FALSE))参数,避免协议兼容问题。

五、验证解决效果

完成以上修改后,重新使用本地名登陆测试:

sqlplus 用户名/密码@RACDB
# 如果能正常进入sqlplus命令行,说明问题已经解决

如果还是报错,建议收集监听日志、tnsnames.ora配置、crs状态输出等信息,联系数据库厂商支持进一步排查。

11G_RACORA-12537TNS_connection_closed本地名登陆修改时间:2026-05-25 22:10:04

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。