Linux TNS-12541错误怎么解决?Linux TNS-12541错误代码含义

在 Linux 环境下,Oracle 数据库报错 TNS-12541: TNS:no listener 表示客户端无法连接到 Oracle 监听器(Listener),这通常意味着监听器未启动、配置错误或网络不通。

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

PL/SQL Developer无法登录Oracle报错“ORA-12541:TNS:”无监听程序解决方式
加载中
PL/SQL Developer无法登录Oracle报错“ORA-12541:TNS:”无监听程序解决方式

检查监听器是否正在运行

确认监听器进程是否存在。

# 切换到 oracle 用户
su - oracle
# 检查监听器状态
lsnrctl status
  • 如果显示 “TNS-12541” 或 “TNS:no listener”:说明监听器未启动。
  • 如果显示 “Listening on…”:说明监听器正在运行,问题可能在网络或配置上。

启动监听器

如果监听器未启动,尝试手动启动它:

lsnrctl start
  • 如果启动成功:再次运行 lsnrctl status 确认状态。
  • 如果启动失败:查看日志文件获取详细错误信息:
    • 默认日志路径:$ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert/log.xml
    • 或查看 listener.log 文件(通常在 $ORACLE_HOME/network/log/ 下)

检查监听器配置文件 listener.ora

监听器配置错误是常见原因,检查 $ORACLE_HOME/network/admin/listener.ora 文件。

Linux TNS-12541错误怎么解决?Linux TNS-12541错误代码含义

示例正确配置:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = <your_server_ip_or_hostname>)(PORT = 1521))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = <your_db_name>)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
      (SID_NAME = <your_sid>)
    )
  )

常见错误:

  • HOST 设置错误:HOST 设置为 localhost,远程客户端无法连接,应设置为服务器的主机名或 IP 地址。
  • 端口冲突:确保 1521 端口未被其他程序占用。
  • SID 不匹配:SID_NAME 必须与数据库实例名一致。

修改后,重启监听器:

lsnrctl stop
lsnrctl start

检查防火墙和网络设置

即使监听器在运行,防火墙也可能阻止连接。

检查防火墙状态:

# 检查 firewalld(CentOS/RHEL)
sudo firewall-cmd --state
# 检查 iptables
sudo iptables -L -n | grep 1521

开放端口(如果需要):

# 如果使用 firewalld
sudo firewall-cmd --permanent --add-port=1521/tcp
sudo firewall-cmd --reload
# 如果使用 iptables
sudo iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
sudo service iptables save

Linux TNS-12541错误怎么解决?Linux TNS-12541错误代码含义

测试网络连通性:

从客户端机器测试:

telnet <server_ip> 1521
# 或
nc -zv <server_ip> 1521

检查 /etc/hosts 文件

确保服务器的主机名能正确解析为 IP 地址。

hostname
cat /etc/hosts
  • hostname 返回的主机名在 /etc/hosts 中没有对应的 IP 映射,监听器可能无法正确绑定地址。
  • 确保 /etc/hosts 中包含类似如下行:
    168.1.100   your_server_hostname

检查数据库实例是否注册到监听器

有时监听器在运行,但数据库实例未注册(静态注册或动态注册失败)。

检查动态注册:

lsnrctl status

查看输出中是否有 Instance "<sid>", status READY 或 BLOCKED,如果没有,可能需要静态注册(见第 3 步 SID_LIST_LISTENER)。

强制注册:

在数据库中执行:

ALTER SYSTEM REGISTER;

检查 sqlnet.ora 配置

检查 $ORACLE_HOME/network/admin/sqlnet.ora 文件,确保没有阻止监听的参数。


检查权限和文件所有权

Linux TNS-12541错误怎么解决?Linux TNS-12541错误代码含义

确保 listener.ora、tnsnames.ora 和 sqlnet.ora 文件的所有者是 oracle 用户,并且权限正确(通常为 644)。

chown oracle:oinstall $ORACLE_HOME/network/admin/.ora
chmod 644 $ORACLE_HOME/network/admin/.ora

查看日志文件

如果以上步骤都无法解决问题,查看监听器日志文件以获取详细错误信息:

  • 日志位置:$ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert/log.xml
  • 或使用 tail 命令:
    tail -f $ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert/log.xml

总结排查流程

  1. lsnrctl status → 确认监听器状态。
  2. lsnrctl start → 启动监听器。
  3. 检查 listener.ora → 确认 HOST、PORT、SID 配置正确。
  4. 检查防火墙 → 确保 1521 端口开放。
  5. 检查 /etc/hosts → 确保主机名解析正确。
  6. 查看日志 → 根据日志错误进一步排查。

如果问题仍然存在,请提供 lsnrctl status 的输出和 listener.ora 的内容(隐藏敏感信息),以便进一步分析。

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

赞 (0)
h5模板建站视频教程怎么用?零基础小白建站教程
上一篇 2026年7月9日 21:42
cdn安全技术有哪些,cdn安全防护原理
下一篇 2026年7月9日 21:44

相关推荐

  • 硕讯服务器价格到底多少钱,服务器租用一年多少钱?

    硕讯服务器价格多少钱?没有统一标价,按2026年IDC市场常见口径,入门级月付多在百元级,标准企业配置多在千元级,高防、大带宽、多IP或双路高配常到数千元级;最终报价由CPU、内存、硬盘、带宽、防御、机房资质和合约周期共同决定,硕讯服务器价格多少钱,先拆开报价单看硕讯服务器在渠道里常被用来指两类东西:一是硕讯品……

    2026年10月14日
    300
  • 2g2核云服务器到底能容纳多少人?,能承受多少并发

    2核2G云服务器在典型配置下,可支撑日均800-1200的PV访问量,或同时保持50-80个活跃用户在线,具体数值因应用优化程度和资源消耗而异,影响承载能力的关键因素云服务器能容纳多少人,从来不是只看CPU和内存的简单加法,2核2G的配置听起来不大,但搭配合理的架构和软件优化,实际承载能力远超直觉,理解下面几个……

    2026年8月4日
    300
  • 灵风服务器转服要花多少钱,转服费用贵不贵?

    灵风服务器转服的费用通常在500元至3000元区间,具体取决于数据迁移量、目标机房级别和迁移方式, 若选择持牌服务商的一站式迁移方案,人工成本已包含在服务费中,整体性价比远高于自行迁移产生的时间与技术损耗,转服费用的核心构成数据迁移量决定基础成本灵风服务器转服费用首先受数据体量影响,一套运行三年以上的业务系统……

    2026年10月1日
    100
  • 服务器码到底怎么看才准确?,服务器码查询方法有哪些?

    如何看服务器码是多少,先确认你要的是物理机序列号(SN)、云主机实例ID,还是IDC合同里的资产编号;物理机看机身标签、BIOS和系统命令,云主机看控制台实例ID,托管机看合同、机柜标签和服务商工单, 三类“服务器码”用途不同,查错地方就容易白忙,先分清“服务器码”的三种常见含义你可以把服务器码理解成服务器的……

    相关资讯 2026年11月5日
    100
  • u2服务器一台多少钱?,哪个配置性价比高

    U2服务器(通常指高性能物理服务器或高配云服务器)的月租成本大致在500元至5000元之间,具体价格由CPU代数、内存容量、硬盘类型及带宽大小决定,若仅为入门级应用,月付600元左右即可起步;若需独享高防IP或NVMe固态阵列,年付成本可能突破3万元,服务器价格为什么差这么多:先看这四项硬指标选服务器不能只盯价……

    2026年8月23日
    300
  • 苹果买服务器要花多少钱,服务器价格贵不贵?

    苹果公司从不按“台”买服务器,而是通过全球供应链定制并委托代工,整体硬件投入按年计算在数十亿美元量级,单台平均成本远低于企业零售价,苹果的服务器采购逻辑:不是“买”,是“造”大型科技公司为何不直接下单苹果跟普通公司不一样,它不会打开戴尔或者惠普的官网,选个配置下单,原因很简单:用户量大,服务器数量以万计,采购模……

    2026年10月13日
    000
  • 一台服务器能建立多少个socket连接?,如何测试连接数

    一台服务器能建立的socket连接数,理论上默认端口范围只能到65535,但实际受文件描述符、内存和内核参数制约,通常可达数万到几十万,通过优化甚至能突破百万,理论极限:端口号与连接数很多人以为服务器最大连接数受限于端口号,因为TCP端口只有16位,所以最多65535个连接,但这是误解,服务器端监听一个固定端口……

    2026年8月16日
    1300
  • 我的世界服务器为什么不能倒太多岩浆,原因是什么?

    MC服务器不能大量倒岩浆,根本原因是岩浆的流体运算和光照更新会瞬间拉高CPU单核占用,直接把TPS从20拖到个位数,服主或插件限制单次/区域岩浆放置量,本质是给服务器做心肺复苏,不是游戏机制硬性封顶,岩浆为什么是MC服务器的性能杀手岩浆在Minecraft里不是静态贴图,它是个每时每刻都在算计的怪物,玩家倒下一……

    2026年9月18日
    000
  • wow服务器最多能容纳多少人,魔兽世界怀旧服人数上限是多少?

    wow服务器最多容纳多少人在线,没有一个放之四海皆准的官方数字;经典单服稳定在线通常在几千到一万多,现代集群加位面可到数万,真正上限由架构、带宽、数据库和IDC底座共同决定,先拆架构:WoW的“在线人数”分三层很多人问wow服务器最多容纳多少人在线,把“服务器”当成一台机器,实际不是,魔兽世界的在线容量至少分三……

    2026年10月2日
    100
  • 服务器机柜22U到46U距离是多少?,怎么选

    服务器机柜22U和46U指的是机柜的可用高度,分别对应约97.79厘米和203.2厘米(不含轮子和底座);而机柜的深度(前后距离)通常为800mm、1000mm或1200mm,与U数无直接关联,机柜U数的定义与标准机柜的U数是衡量机架内部可用高度的标准单位,源自ANSI/EIA-310规格,1U等于1.75英寸……

    2026年7月29日
    1500

发表回复

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