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 listener 或 TNS-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 error 或 TNS-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_NAME 或 SID 正确。
  • DNS 问题: 如果依赖 DNS 解析主机名,检查 DNS 服务器是否可达。

总结排查流程

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

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

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/linux-ora-12154%e9%94%99%e8%af%af%e6%80%8e%e4%b9%88%e8%a7%a3%e5%86%b3%ef%bc%9fora-12154-tns%e6%97%a0%e6%b3%95%e8%a7%a3%e6%9e%90%e6%9c%8d%e5%8a%a1%e5%90%8d/

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

相关推荐

  • 无盘电脑服务器到底多少钱,怎么选购性价比高?

    无盘电脑服务器多少钱?一台入门级无盘服务器主机报价通常在几千元,主流百台终端部署的整体方案在一万元到三万元区间,更大型的机房方案按实际规模单独核算,无盘电脑服务器的价格按场景算,不是按台算无盘电脑服务器的报价没有统一“一口价”,因为它的成本由硬件配置、网络环境、软件授权和部署方式共同决定,同一台设备,放在50台……

    2026年10月16日
    000
  • 酷番云4核8G云服务器多少钱,性价比高吗

    腾讯云4核8G云服务器的实际价格主要取决于购买渠道和活动节点,新用户通常能以每年不到千元的价格获得首年使用权,这是目前市场上性价比最高的入门级企业云配置之一,腾讯云4核8G云服务器到底多少钱这个问题没有固定答案,因为腾讯云的定价策略分多种维度,你需要先搞清楚自己属于新用户还是老用户,选择包年包月还是按量计费,不……

    2026年8月1日
    200
  • 陕西电信DNS服务器地址是多少,怎么查询最快?

    陕西电信官方DNS服务器地址首选61.134.1.4和61.134.1.9,另一组可用的历史地址为218.30.19.40和218.30.19.41,其中61.134.1.4是陕西省内电信宽带用户默认使用的权威递归节点,陕西电信DNS官方地址与备选节点陕西电信在省内不同片区承载了多组DNS递归服务器,对于普通家……

    2026年9月26日
    100
  • 国鑫服务器二手多少钱一台?,哪里回收价格高?

    国鑫服务器二手价格通常在1000元到6000元之间,具体由型号、CPU代数、内存容量和硬盘配置决定,2018年后的2U主流机型(如双路E5 V4平台)市场均价稳定在2500元至4500元区间,为什么二手国鑫服务器价格差距这么大国鑫(Gooxi)是国内出货量较大的服务器整机品牌,尤其在互联网公司和数据中心B端市场……

    2026年9月11日
    300
  • 550w服务器待机功率是多少,一天耗电多少度?

    550W服务器的待机功率通常在20W到35W之间,多数主流品牌机型待机功耗集中在25W左右,满载功耗才接近电源额定550W上限,为什么待机功率远低于电源额定功率电源额定功率550W指的是服务器能够向外输出的最大能力,而非日常消耗值,待机状态下,CPU进入C-state节能模式,硬盘转速下降,风扇低速运转,整机只……

    2026年10月4日
    000
  • 连接服务器IP地址怎么查?,服务器IP地址查询方法详解

    一台服务器通常拥有至少2个IP地址:一个用于内部通信的内网IP,以及一个用于对外提供服务的公网IP,但具体数量取决于服务器配置、业务需求以及机房分配策略,常见情况下以1个公网IP为主,多IP配置则用于特定场景,服务器IP地址的基础认知:公网IP与内网IP想要准确回答“连接服务器的IP地址是多少个”,得先区分两种……

    2026年9月8日
    300
  • 150m服务器租用一个月多少钱,怎么选择?

    150M带宽服务器的月租价格通常在800元到3000元之间,具体取决于线路类型、硬件配置和服务商资质,这个区间覆盖了从入门级共享带宽到高性能独享方案的场景,但实际选择时不能只看价格,还得结合业务需求和服务商背景,影响150M服务器月租的核心因素带宽类型:独享还是共享大部分用户搜索150M服务器时,默认指的是……

    2026年7月26日
    300
  • 简米云服务器100g多少钱,有哪些收费套餐?

    阿里云服务器100G存储的常规价格区间在每年100元至300元之间,但实际费用取决于购买方式、地域和活动折扣;若按带宽计费,100G月流量包则约20元至50元,很多朋友搜”阿里云服务器100g多少钱”,其实是想搞清楚云服务器的存储容量(系统盘+数据盘)或者流量包到底怎么算钱,这两个概念差了十万八千里,价格逻辑完……

    2026年8月26日
    1400
  • 2026年8G服务器多少钱一台,哪家最便宜

    8G服务器月付价格普遍在80元至500元区间,物理服务器或更高配置机型则需按需评估,实际费用受CPU、带宽、机房等级及服务商资质影响显著,核心影响因素:为什么8G服务器价格差异大同是8G内存,不同服务商报价可能相差数倍,要理解这个差异,得从服务器本身的核心组件和服务商运营成本说起,硬件配置:CPU、内存与硬盘的……

    2026年8月19日
    1000
  • Linux如何加载光驱?linux挂载光驱详细教程

    在Linux系统中加载光驱的核心方法是使用mount命令将光盘设备文件挂载到指定的空目录,通常设备路径为/dev/cdrom或/dev/sr0,挂载点建议设为/mnt/cdrom,许多刚接触Linux的用户在面对光驱时,往往会感到困惑,因为现代Linux发行版大多已不再默认自动挂载光盘,这与Windows系统的……

    2026年7月5日
    9300

发表回复

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