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://test.idctop.com/article/481344.html

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

相关推荐

  • 腾讯云SA2服务器2C4G5M首年782元值得买吗,腾讯云新企业用户专享优惠

    腾讯云SA2机型2C4G5M配置首年仅需782元,这是目前针对新企业用户最具性价比的入门级云服务器方案,适合轻量级网站、开发测试及小型应用部署,在云计算市场日益成熟的今天,企业选择服务器不再仅仅是为了拥有一台机器,而是为了获得稳定、安全且具备扩展性的计算资源,对于初创团队、个人开发者或中小型企业而言,如何在有限……

    2026年6月20日
    3400
  • 告警后触发知识编排任务提示alert怎么办?alert数据库告警处理

    Alert数据库告警后触发知识编排任务,本质是通过自动化工作流将分散的运维数据转化为可执行的修复方案,从而大幅缩短平均修复时间(MTTR)并降低人工干预成本,在现代IT运维体系中,数据库不再是孤立的存储节点,而是业务连续性的核心命脉,当监控探针捕捉到异常指标时,传统的处理方式往往依赖工程师手动登录控制台、查阅日……

    行业资讯 2026年6月1日
    4000
  • UCloud US3怎么用?对象存储US3使用教程

    UCloud US3 官方发布视频版使用指南,全面覆盖从基础存储类型到 us3cli、us3Hadoop 等核心工具链的实操配置,旨在帮助用户快速掌握高性能对象存储的最佳实践,在云计算日益普及的今天,数据管理不再仅仅是存储空间的简单堆砌,而是关乎效率、成本与兼容性的系统工程,UCloud 近期发布的对象存储 U……

    2026年6月28日
    2100
  • linux ps参数怎么用,linux ps命令常用参数详解

    在 Linux 系统中,ps(Process Status)命令用于显示当前系统中进程的快照信息,虽然 ps 本身没有像 ls 那样固定的“参数列表”,但它支持两种参数格式:Unix 风格(通常不带连字符,如 aux)和 GNU 风格(通常带连字符,如 –aux),以下是 ps 命令最常用、最实用的参数详解……

    2026年7月10日
    1900
  • Linux cache机制是什么?Linux缓存机制原理详解

    业内专家指出,这种设计极大地缓解了CPU与存储设备之间的速度差异,Linux将内存中的缓存主要分为两类,理解它们的区别是掌握整个机制的关键,Page Cache与Buffer Cache的职责分工这两者虽然都占据内存,但服务的对象完全不同,Page Cache:文件的缓存Page Cache主要负责缓存文件系统……

    2026年7月4日
    10600
  • 优刻得Cube容器化产品怎么快速上手?docker容器化部署教程

    优刻得Cube容器化产品通过提供标准化的镜像构建与部署流程,帮助企业在几分钟内完成从代码到生产环境的交付,显著降低运维复杂度并提升资源利用率,在云计算和微服务架构日益普及的今天,传统的应用部署方式正面临巨大挑战,开发人员需要将应用打包成镜像,运维人员需要配置复杂的集群环境,这种割裂往往导致效率低下且容易出错,优……

    2026年6月19日
    2300
  • asp的开发环境是什么,asp开发环境怎么搭建

    构建高效稳定的ASP开发环境是确保项目成功交付的基石,也是撰写高质量ASP报告的核心前提,一个专业的开发环境不仅包含代码编辑工具,更涵盖了Web服务器配置、数据库连接、组件注册及调试机制的全生命周期管理,核心结论在于:搭建ASP开发环境必须遵循“服务器先行、组件适配、调试赋能”的原则,优先解决IIS与脚本引擎的……

    2026年4月7日
    8700
  • 国外业务中台分析怎么做?海外业务中台建设方案

    全球化竞争加剧,企业出海已从单纯的贸易输出转向深度的运营本地化与数字化,在此背景下,构建高效的业务中台不再是技术选型题,而是企业生存的必答题,核心结论在于:国外业务中台建设的本质,是解决“全球化统一管控”与“本地化差异化运营”之间的矛盾,通过能力复用与解耦,实现企业海外业务的敏捷响应与降本增效,不同于国内市场的……

    2026年3月2日
    14100
  • aspnet api权限怎么配置?asp.net core权限管理最佳实践

    ASP.NET API 权限管理的核心在于结合 JWT 令牌验证与基于角色的访问控制(RBAC),通过自定义中间件和策略授权实现细粒度安全,而非仅依赖基础的身份认证,在构建现代 Web 应用时,API 安全性是开发者最关心的议题之一,很多团队在初期往往只实现了“用户能否登录”,却忽略了“登录后能做什么”,这种粗……

    2026年6月6日
    3300
  • 怎么查电脑服务器IP地址有几个,服务器ip地址查询方法

    电脑服务器的IP地址通常不止一个,具体数量取决于网络配置——公网IP、内网IP、IPv6地址可能同时存在,最直接的查询方法是登录服务器系统执行命令(Windows用ipconfig,Linux用ip addr),或登录IDC服务商控制台查看,很多新手第一次接触服务器时,面对“IP地址是多少”这个问题会有点懵,因……

    2026年8月8日
    500

发表回复

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