Linux ora 12154错误怎么解决?ora 12154 tns无法解析服务名

在 Linux 环境下遇到 Oracle 错误 ORA-12154: TNS:could not resolve the connect identifier specified,通常意味着客户端无法通过 tnsnames.ora 或命名服务找到对应的数据库连接描述符。

以下是系统化的排查步骤和解决方案:

Linux连接window遇到问题了?我帮你解决
加载中
Linux连接window遇到问题了?我帮你解决

检查环境变量 TNS_ADMIN

Oracle 客户端首先会查找 TNS_ADMIN 环境变量指定的目录,如果未设置,则默认查找 $ORACLE_HOME/network/admin/

  • 检查当前设置:
    echo $TNS_ADMIN
    echo $ORACLE_HOME
  • 解决方案:
    • TNS_ADMIN 未设置或指向错误目录,请确保 tnsnames.ora 文件位于正确的位置。
    • 或者,显式设置环境变量:
      export TNS_ADMIN=/path/to/your/network/admin/dir

检查 tnsnames.ora 文件

确认 tnsnames.ora 文件是否存在,且包含正确的连接字符串。

  • 文件路径:

    • 通常位于:$ORACLE_HOME/network/admin/tnsnames.ora
    • 如果设置了 TNS_ADMIN,则位于:$TNS_ADMIN/tnsnames.ora
  • Linux ora 12154错误怎么解决?ora 12154 tns无法解析服务名

    常见错误:

    • 文件名拼写错误(如 tnsnames.ora.bak 被误改名为 tnsnames.ora 但内容不对)。
    • 连接标识符名称不匹配(例如客户端调用的是 MYDB,但 tnsnames.ora 中定义的是 MY_DB)。
    • 语法错误(缺少括号、逗号、引号等)。
  • 示例 tnsnames.ora 配置:

    MYDB =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )

使用 tnsping 测试连通性

这是最直接的诊断工具。

  • 命令:

    tnsping <连接标识符>
    tnsping MYDB
  • 结果分析:

    • 成功: 显示 OK (xx msec),说明 TNS 解析正常,问题可能在数据库服务本身或监听器。
    • 失败: 显示 TNS-12541: TNS:no listenerTNS-12560: TNS:protocol adapter error,说明监听器未运行或端口错误。
    • 失败:

      Linux ora 12154错误怎么解决?ora 12154 tns无法解析服务名

      显示 TNS-12545: Connect failed because target host or object does not exist,说明主机名或 IP 错误。

    • 失败: 显示 TNS-12560: TNS:protocol adapter errorTNS-03505: Failed to resolve name,说明 tnsnames.ora 中的名称无法解析,需检查文件名或 TNS_ADMIN

检查监听器状态

确保数据库服务器上的监听器正在运行。

  • 检查监听器状态:
    lsnrctl status
  • 启动监听器:
    lsnrctl start

检查主机名解析

tnsnames.ora 中使用的是主机名而非 IP 地址,确保 Linux 系统能正确解析该主机名。

  • 检查 /etc/hosts 文件:

    cat /etc/hosts

    确保数据库服务器的主机名或 IP 地址已正确映射。

  • 测试解析:

    ping <数据库主机名>
    nslookup <数据库主机名>

检查权限问题

确保 Oracle 用户(通常是 oracle)对 tnsnames.ora

Linux ora 12154错误怎么解决?ora 12154 tns无法解析服务名

文件有读取权限。

  • 检查权限:
    ls -l $ORACLE_HOME/network/admin/tnsnames.ora

    如果权限不足,修复权限:

    chmod 644 $ORACLE_HOME/network/admin/tnsnames.ora

其他可能原因

  • 防火墙问题: 确保客户端能访问数据库服务器的 1521 端口(或指定端口)。
    telnet <数据库主机> 1521
  • 多实例环境: 如果服务器上有多个 Oracle 实例,确保 tnsnames.ora 中指定的 SERVICE_NAMESID 正确。
  • DNS 问题: 如果依赖 DNS 解析主机名,检查 DNS 服务器是否可达。

总结排查流程

  1. 运行 tnsping <连接名>,看返回什么错误。
  2. 如果提示“无法解析名称”,检查 TNS_ADMINtnsnames.ora 文件内容。
  3. 如果提示“监听器错误”,检查 lsnrctl status 和防火墙。
  4. 如果提示“主机不存在”,检查 /etc/hosts 或 DNS。

通过以上步骤,绝大多数 ORA-12154 错误都可以被定位和解决。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/481344.html

(0)
K8s日志EFK收集方案怎么用?k8s日志收集方案
上一篇 2026年7月10日 18:17
Python和phython有什么区别?Python入门学习教程
下一篇 2026年7月10日 18:18

相关推荐

  • linux wcf在Linux上兼容吗?,怎么安装

    在Linux上直接运行WCF服务并不被官方支持,但通过.NET Core的WCF客户端库或Mono项目,开发者可以实现Linux客户端与WCF服务的通信,同时gRPC逐渐成为跨平台服务调用的事实标准,理解linux wcf的核心限制WCF(Windows Communication Foundation)是微软……

    相关资讯 2026年7月17日
    500
  • linux gnustep是什么?,怎么安装?

    GNUstep 在 Linux 上实现了一套完整的 OpenStep 兼容框架,是使用 Objective-C 进行跨平台桌面应用开发的首选开源方案,尤其适合从 macOS 迁移项目或进行教学实践,GNUstep 是什么,为什么 Linux 开发者仍在关注它GNUstep 是 OpenStep 标准(由 NeX……

    2026年7月20日
    500
  • 4h8g服务器到底能承载多少用户,配置够用吗?

    4h8g服务器在常规Web应用场景下,日均可承载3000至8000个独立用户,峰值并发控制在200至500区间内表现稳定,但具体数值取决于应用架构、代码效率与数据库设计,先搞懂4h8g的真实含义4h8g指的是4核CPU与8GB内存的云服务器配置,这个规格在云计算市场中属于入门级到进阶级的分水岭,也是中小型项目最……

    2026年8月8日
    1400
  • 一台网络服务器到底多少钱,怎么选性价比高?

    一台网络服务器的价格从月租几十元到上万元不等,核心取决于配置、带宽、IP数量和机房等级,按需选择才是关键,这几年越来越多朋友找我咨询服务器的事,开口第一句基本都是“这东西到底多少钱一台”,说实话,这个问题没有标准答案,就像问“买辆车多少钱”一样,代步和跑赛道完全是两个预算量级,但别急,把下面这些门道看明白,你心……

    2026年8月12日
    500
  • 租一个app服务器到底要多少钱,云服务器租用哪家便宜?

    租一个App服务器的费用没有固定答案,适合初创期的小应用每月开销在100-300元,而需要承担高并发和数据合规的商业级架构,成本通常在5000元至数万元不等,价格差异主要来自配置、带宽、线路质量以及服务商是否持有正规资质,影响服务器租用价格的核心因素配置是决定价格的基础CPU核心数、内存大小和硬盘类型直接决定计……

    2026年8月18日
    400
  • 我的世界电脑版服务器要多少内存才够,怎么配置?

    PC我的世界服务器内存需求没有固定答案,单人小服2到4GB足够,而容纳几十人的社区服或大型整合包服,推荐8GB起步,核心取决于玩家数量、模组规模和视距设置,很多玩家开服失败,不是配置不够好,而是内存分配逻辑没搞清楚,这篇文章用实际场景拆解内存占用,帮你找到最合适的方案,内存占用的核心变量:不只是人数玩家数量与区……

    2026年8月12日
    4200
  • 带四个GPU的服务器要多少钱,如何选购性价比高?

    一台配备四块GPU的服务器,价格通常在5万元到30万元之间,具体取决于GPU型号、服务器品牌和整体配置,如果你需要用于深度学习训练或大规模渲染,预算可能需准备10万以上,但通过租赁或选择专业服务商,前期投入可以大幅降低,为什么需要四GPU服务器?主要应用场景四GPU服务器不是普通办公设备,而是为特定算力密集型任……

    2026年8月17日
    1100
  • 四川绵阳电信dns的服务器地址是多少?,怎么设置

    运营商DNS vs 公共DNS运营商DNS:自动分配,无需手动设置,且能解析运营商内部资源(如IPTV、网厅),延迟最低,公共DNS(如114.114.114.114、8.8.8.8):稳定性高,但跨网访问时有额外路由开销,且部分运营商会限制跨网解析,企业级DNS:由专业IDC服务商提供,如酷番云这类持牌服务商……

    2026年8月1日
    200
  • 如何在Linux上使用HPFS文件系统,怎么用

    Linux 内核从 2.2 时代起便原生支持 HPFS 文件系统,但默认以只读方式挂载,若要写入数据需重新编译内核或加载特定模块,且存在较高数据损坏风险,HPFS 文件系统在 Linux 中的支持现状HPFS 是 IBM OS/2 操作系统的本地文件系统,随着 Linux 对多文件系统兼容性的增强,hpfs 驱……

    2026年7月22日
    600
  • 4核8g的服务器支撑多少qps

    4核8G服务器在典型Web服务中,合理优化后QPS约800-1500,但真实承载量取决于业务逻辑与架构设计,QPS并非固定值:理解影响因素QPS(每秒查询数)是衡量服务器吞吐能力的核心指标,但4核8G的配置没有一个通用答案,因为它受多个层面制约,CPU与内存的角色CPU核心数决定并行处理能力,4核面对高并发请求……

    2026年8月19日
    600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注