You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ORA-12541:TNS无监听程序求助——虚拟机连接物理机Oracle数据库

问题:虚拟机连接物理机Oracle数据库报ORA-12541错误
  • 环境信息:

    • 虚拟机:Oracle VM VirtualBox运行Windows XP,已安装Visual Studio .NET 2003、NHibernate ORM
    • 物理机:Windows 11系统,部署Oracle 12.2数据库
    • 网络状态:虚拟机与物理机ping测试正常,网络连通性没问题
  • 操作与错误:
    在虚拟机中执行SQL*Plus命令 sqlplus user/pass@service 连接物理机数据库时,触发错误:

    ORA-12541: TNS: 无监听程序

  • 排查方向:怀疑listener.ora或tnsnames.ora配置有误,多次修改参数仍未解决


虚拟机中的tnsnames.ora配置(原内容含语法错误)

LISTENER = 
 (ADDRESS = 
    (PROTOCOL = TCP)
    (HOST = 192.168.56.7)
    (PORT = 1521)
  )


orcl = 
(DESCRIPTION = 
    ADDRESS = 
      our text`(PROTOCOL = TCP)
      (HOST = 192.168.56.7)
      (PORT = 1521)
    )
    (CONNECT_DATA = 
      (SERVER = dedicated)
      (SERVICE_NAME = orcl)
    )
  )

物理机中的listener.ora配置

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = C:\app\orclDiego\product\12.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\orclDiego\product\12.2.0\dbhome_1\bin\oraclr12.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.7)(PORT = 1521))
    )
  )

解决步骤

1. 修复虚拟机tnsnames.ora语法错误

原配置存在括号不匹配、冗余垃圾内容问题,修正后的正确配置如下:

orcl = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.7)(PORT = 1521))
    (CONNECT_DATA = 
      (SERVER = dedicated)
      (SERVICE_NAME = orcl)
    )
  )
  • 注意ADDRESS部分需保持括号正确嵌套,删除原配置中的our text无效内容

2. 检查物理机监听状态

在物理机命令提示符执行:

lsnrctl status
  • 若监听未启动,执行lsnrctl start启动监听
  • 确认输出中包含(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.7)(PORT=1521)),确保监听绑定了正确的IP

3. 验证物理机防火墙设置

  • 检查Windows 11防火墙是否允许1521端口的TCP入站连接
  • 可临时关闭防火墙测试连接,若能成功则需添加防火墙规则放行1521端口流量

4. 用EZConnect方式直接测试连接

绕过tnsnames.ora,在虚拟机执行简化命令验证网络与监听:

sqlplus user/pass@192.168.56.7:1521/orcl
  • 若此命令成功,说明tnsnames.ora仍有配置问题;若仍报错,需排查监听或网络底层问题

5. 确认数据库服务名正确性

在物理机SQL*Plus中执行查询,获取真实服务名:

SELECT sys_context('userenv', 'service_name') FROM dual;

确保tnsnames.ora中SERVICE_NAME字段与查询结果完全一致,避免拼写错误


内容的提问来源于stack exchange,提问作者ddelafuente

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:10:16