当前位置: 首页 > news >正文

Oracle数据库连接之TNS-12541异常

        在进行数据库开发的时候,通常需要使用PLSQL Developer开发工具连接Oralce数据库,在进行连接时,经常性的会提示TNS-12541:TNS:no listener(没有监听),从而导致PLSQL Developer 无法连接到数据库实例,那么通过本文对造成该问题的常见原因进行分析及如何解决。

        一、监听程序未启动

                1.诊断问题:在服务器端,执行lsnrctl status 命令,检查监听是否已启动

.......>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 09-9月 -2023 20:43:48
Copyright (c) 1991, 2010, Oracle.  All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=服务器主机地址)(PORT=1521)))
TNS-12541:TNS:no listennerTNS-12560:TNS:protocol adapter errorTNS-00511:no listenner
........

                若执行上述命令后,出现  TNS-12541:TNS:no listenner、TNS-12560:TNS:protocol adapter error  、 TNS-00511:no listenner则表示监听未启动

                2.启动监听:在服务器端,执行lsnrctl start命令回车,等待完成监听的启动

.........>lsnrctl start................The command completed successfully

                若执行上述命令后,出现 执行结果中出现 The command completed successfully信息时,表示监听启动完成

       二、客户端监听端口号与服务端监听端口号不一致

            当在服务端执行lsnrctl status命令,执行结果为监听是正常启动的,但数据库实例还是无法连接,这时则需要检查客户端配置文件和监听器服务器端配置文件中配置的监听端口是否一致。

           listener.ora:该文件为服务端监听配置文件

           tnsnames.ora:该文件为客户端配置文件

           上述两个文件默认存储在%ORACLE_HOME%/NETWORK\ADMIN目录下

 listener.ora文件内容如下

SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = CLRExtProc)(ORACLE_HOME = F:\app\product\11.2.0\dbhome_1)(PROGRAM = extproc)(ENVS = "EXTPROC_DLLS=ONLY:F:\app\product\11.2.0\dbhome_1\bin\oraclr11.dll")))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))))ADR_BASE_LISTENER = 数据库服务器按照根目录

 tnsnames.ora文件如下

数据库实例名 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = 数据库实例)))
LISTENER_数据库实例名 =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))ORACLR_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)))(CONNECT_DATA =(SID = CLRExtProc)(PRESENTATION = RO)))

   此时需要检查listener.ora配置文件中LISTENER =.... 和tnsnames.ora文件中LISTENER_数据库实例名 =.....配置的端口号,若不一致则手动改为一致,然后停用监听、停用数据库服务再重启,若不重启可能更改的配置不生效

        三、通常在数据库连接时提示没有监听,处理上述原因外,可能还存在以下原因,在具体遇到时,需要根据实际情况进行实际分析并解决

        1.客户端指定的数据库服务器目标主机IP地址有误

        2.客户端指定的数据库实例名存在有误

        3.客户端指定的端口有误

http://www.lryc.cn/news/160716.html

相关文章:

  • sql中的排序函数dense_rank(),RANK()和row_number()
  • Flask狼书笔记 | 05_数据库
  • HJ70 矩阵乘法计算量估算
  • Doris数据库使用记录
  • 华为OD机试真题【篮球比赛】
  • sublime text 格式化json快捷键配置
  • Spring Cloud 面试题总结
  • 如何实现24/7客户服务自动化?
  • 2022年12月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 【Spring Cloud系列】 雪花算法原理及实现
  • Postgresql 阿里云部署排雷
  • l8-d10 TCP协议是如何实现可靠传输的
  • 9月9日扒面经
  • 项目实战:ES的增加数据和查询数据
  • vs code调试rust乱码问题解决方案
  • 大数据课程K22——Spark的SparkSQL的API调用
  • 数据结构学习系列之顺序表的两种删除方式
  • 机器学习笔记之最优化理论与方法(七)无约束优化问题——常用求解方法(上)
  • ES-索引管理
  • linux中常用shell脚本整理
  • 介绍PHP
  • selenium+find_elements用法
  • 1DM+下载器_11.2.1魔改增强版下载
  • vue3:3、项目目录和关键文件
  • ChatGPT实战与私有化大模型落地
  • 10分钟从实现和使用场景聊聊并发包下的阻塞队列
  • Python入门学习13(面向对象)
  • 哈工大计算机网络课程网络安全基本原理之:身份认证
  • 海外代购系统/代购网站怎么搭建
  • go-micro