“Oracle 连接报错:ORA-12541: TNS: 无监听程序”解决方案

时间:2021-09-06 20:05:42

环境描述:

Oracle数据库部署在远程机器虚拟机上,本地配置Oracle网络配置,通过PL/SQL连接数据库;

本地已经配置了Oracle Net Manager文件,但是测试后,连接不上Oracle,提示“Oracle 连接报错:ORA-12541: TNS: 无监听程序”。


1、通过Oracle数据库连接测试命令,测试本地客户端与数据库的连接是否正常:

      控制台 tnsping命令 IP地址   端口号 数据库服务名称

cmd->tnsping 192.168.1.123:1521/oracle10g

“Oracle 连接报错:ORA-12541: TNS: 无监听程序”解决方案


2、经测试提示,Oracle数据库实例无法连接;故想到到Oracle/product/11.2.0/dbhome_1/network/admin,查看Listener、TNSNames,将两个文件中的HOST=local,修改为HOST=数据库本机IP,重启TNSListener;客户端测试Net Manager的连接,又报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误。


3、查找“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”解决方案,ORA-12514 TNS监听程序当前无法识别连接描述符中请求服务


  • 在oracle服务器Oracle安装目录(我的在E:\Oracle10g下,每个人的不一样,根据自己的情况查找)Network/admin目录下找到listener.ora 我的如下图所示

# listener.ora Network Configuration File: E:\Oracle10g\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = E:\Oracle10g)
      (PROGRAM = extproc)
    )
   (SID_DESC =
    (GLOBAL_DBNAME = ORCL)
    (ORACLE_HOME = E:\Oracle10g)
    (SID_NAME = ORCL)
    )

 )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = onest)(PORT = 1521))
    )
  )

标红的为我添加的部分,ORCL为监听的实例名。


4、重启Oracle TNS Listener,然后客户端测试Net Manager,测试连接成功。