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/article/481344.html

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

相关推荐

  • 百度的DNS解析服务器地址是多少,怎么修改DNS设置?

    百度的公共DNS解析服务器地址是180.76.76.76,同时支持IPv6地址2400:da00::666,这是百度官方免费提供的公共DNS服务,面向全国用户开放,为什么需要关注公共DNS解析服务器日常上网时,我们输入的是域名,比如baidu.com,而网络通信实际依赖的是IP地址,域名解析就是通过DNS服务器……

    2026年8月30日
    1000
  • 戴尔服务器管理IP和默认密码如何获取,怎么查询?

    戴尔服务器默认管理IP通常是192.168.0.120(iDRAC专用口),默认账号为root,默认密码为calvin——前提是服务器处于出厂状态且未经过配置,如果你手头有一台二手戴尔服务器,或者刚从仓库翻出一台老机器,大概率会遇到管理口连不上、密码不对、IP地址忘光的情况,这篇文章不绕弯子,直接告诉你不同型号……

    2026年8月29日
    600
  • 维护服务器一年多少钱

    维护服务器一年的费用通常在数千元到数十万元不等,具体取决于服务器规格、部署方式与运维模式,多数中小型业务的年度成本集中在1万至5万元之间,这笔开销并非固定值,而是由硬件、带宽、人力、安全等多项变量共同决定,下文从成本结构、场景差异、服务商选择三个维度拆解这笔账,帮助你在预算内做出合理决策,影响年度费用的核心变量……

    2026年8月26日
    1100
  • 一台服务器多少个dockr

    一台服务器能运行多少个Docker容器没有固定数字,核心取决于服务器硬件规格、容器镜像大小、业务负载类型以及你对资源利用率的预期,与其纠结那个不存在的标准答案,不如先弄明白计算逻辑,这样你拿到任何一台服务器,都能自己估算出一个靠谱的范围,决定容器数量的三块基石:硬件、镜像、负载先拆解底层逻辑,Docker容器本……

    2026年9月12日
    200
  • 戴尔r720服务器一天多少度电,电费多少?

    戴尔R720服务器一天耗电量通常在8度到36度之间,具体取决于CPU型号、硬盘数量以及业务负载情况,戴尔R720的耗电底子到底在哪戴尔R720作为一款经典的2U双路机架式服务器,虽然已经是老将,但在很多企业机房里依然发挥着余热,要算它一天用多少电,得先把它的耗电大户拆开看,核心硬件的功耗分布处理器(CPU):R……

    2026年7月30日
    2200
  • ip有多少个ipv4根服务器, 地址是什么

    全球IPv4根服务器总数为13个,其中1个为主根服务器,其余12个为辅根服务器,这13台根服务器共同构成了全球互联网域名解析体系的最高层级,负责管理顶级域名(如.com、.net、.org及各国国家域名)的权威目录,下面基于ICANN公布的公开架构信息,为你拆解这13台服务器的分布、运作机制以及对中国用户的实际……

    2026年8月18日
    900
  • 服务器4G内存能扛多少并发用户,4G内存能支持多少人在线?

    4GB内存的服务器能扛多少并发用户,没有统一答案,静态站点通常能支撑数百到上千并发连接,动态PHP+MySQL应用多数情况下落在50-150并发区间,具体要看进程模型、缓存和数据库配置,4GB内存并发能力到底卡在哪很多新手把“并发用户数”当成一个固定数字,其实它更像一个动态水位,4GB内存只是蓄水池大小,真正决……

    2026年9月11日
    100
  • 30m云服务器每月多少钱,哪家最便宜?

    30M云服务器的市场主流月付价格大约在130元到160元之间,年付折算后能压到1100元上下,这个价位对应的是4核8G配置搭配30M固定带宽的入门级方案,买云服务器时,带宽往往是决定成本的关键因素,同样是4核8G,1M带宽的机器可能只要几十块,挂上30M带宽后价格直接翻倍甚至更多,今天咱们就掰开揉碎聊聊这30M……

    2026年9月18日
    100
  • 物理机服务器256g多少钱

    物理机服务器256G内存的月租价格通常在600元至3000元区间,具体取决于CPU型号、磁盘类型、带宽大小以及服务商资质,如果选择E5-2680v4搭配256G内存的常规配置,多数机房报价在800元至1500元/月;而搭载新一代至强银牌或金牌处理器的高主频机型,价格会上探至2000元以上,本文基于2026年主流……

    2026年9月9日
    300
  • Linux安装msf报错怎么办?linux安装metasploit详细教程

    在 Linux 上安装 Metasploit Framework (MSF) 最推荐、最稳定的方法是使用官方提供的自动安装脚本,以下是详细步骤:✅ 推荐方法:使用官方一键安装脚本这是由 Rapid7(Metasploit 的维护者)提供的官方方式,会自动处理依赖关系、Ruby 版本和数据库配置,更新系统并安装基……

    2026年7月10日
    1800

发表回复

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