Java解决Oracle中ORA-12542:TNS无监听程序ORA-12542:TNS:监听程序无法识别连接符中请求的服务

2023-10-26

环境:WINDOWS2003+ORACLE 10G

第一次安装完ORACLE后使用SQLPLUS链接都是没问题的,但重启服务器就报了异常:ORA-12541: TNS: 无监听程序。

这里肯定是监听器出了问题,但没有做任何变动,只是重启了服务器,感觉很诡异。

网上查询,说监听配置文件(我的在D:\oracle\下,每个人的不一样,根据自己的情况查找NETWORK\ADMIN\)listener.ora配置项缺失。

非正常Oracle配置:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (PROGRAM = extproc)
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
    )
  )

正常Oracle配置
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      (SID_NAME = ORCL)
    )
    (SID_DESC =
      (PROGRAM = extproc)
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
    )
  )


加上后在WINDOWS服务器里重启监听服务,确实解决了问题。但为什么重启服务器前OK的呢?难道是谁修改了我的监听配置文件?

我怀疑安装完ORACLE配置文件里确实没有那段红色的配置,而是把那段配置已经写到内存了,所以重启前可以用,但重启后内存释放了。

经过几次重装和重启发现监听配置文件listener.ora一直没有改变,应该如我所想的。

--如果出现-------------(试试)--------(TNS无监听程序ORA-12542:TNS:监听程序无法识别连接符中请求的服务)

ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法  

2012-05-23 17:08:31|  分类: 数据库---知识篇 |字号 订阅

oracle安装成功后,一直未停止数据库(即数据库是启动的),客户端配置成功后,应该一直不会有什么问题。

而一旦你和我同事一样,有时把Oracle安装在虚拟机中,而且Oracle安装完毕后,没在进行任何监听的配置,则虚拟机再启动,则就会出现ORA-12514的问题。如下图

     

如下是解决思路:

根据出错信息判断出客户端未监听到实例服务名

1、通过重启服务的方式启动数据库,再次连接仍无法连接服务器。

2、既然第一种方法不能解决问题,那就第二种方法。考虑监听listener.ora

   监听配置文件listener.ora中可以不必指定监听的服务名(安装Oracle10g后也是没有指定的)。正常情况下一般只要数据库启动,客户端连接数据库也没有什么问题,但是有时重复启动关闭也会出现ORA-12514错误。

   既然listener.ora中没有指定监听,我们可以在listener.ora文件中指定监听的实例名,这样该问题应该可以连接。

步骤如下:


在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为监听的实例名。


然后在Oracle服务器的服务中重新启动监听服务 ,然后在oracle客户端通过再次配置对Orcl实例的监听,如下图所示

结果出现如下图的提示。 


这时我们不要着急,只需要oracle服务器重新启动一下,再次连接即成功。这也是我们配置完listener.ora 监听后,经常忘记的。再次尝试,可以看到客户端可以连接上oracle服务器了,而且PL/SQL再次连接也没有问题了。

而有些朋友在配置客户端时,连接数据库成功,而使用PL/SQL时,又出现了如下图所示的问题。这又如何解决呢?为什么oracle客户端已经连接成功了,而PL/SQL确不行呢? 

 

出现如上的原因是,可能是大家再配置oracle客户端时,虽然链接成功了,步骤上可能有些错误。大家使用Net Cofiguration Assistant客户端时重新配置了Orcl,而不是添加,我们应该如下步骤处理,就不会出问题了。

1、如果Net Cofiguration Assistant中已经有了Orcl。我们可以重新配置

2、如果Net Cofiguration Assistant中没有Orcl,我们应该添加  具体界面如下图所示。

如果大家该步处理也没有问题了,listener.ora 修改成功,并且重新启动了oracle服务器,无论oracle客户端还是PL/SQL都能够成功连接数据库了。

总结一下。当大家遇到“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误的解决步骤:

1、通过重启服务的方式启动数据库,再次连接尝试。

2、如果第一种方法不可行,我们采用第二种方法


正确添加listener.ora;
重新启动了oracle服务器,并检查oracle所有服务是否启动;
oracle客户端Net Cofiguration Assistant正确添加或重新配置实例名  ----------------------------------------------以下是我的listener.ora-----------------------------------

# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

SCASPIAN =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 55IZUY2YLV6CSQM)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = SCASPIAN)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java解决Oracle中ORA-12542:TNS无监听程序ORA-12542:TNS:监听程序无法识别连接符中请求的服务 的相关文章

  • 位图内存不足错误

    我对这个错误有疑问 我从 URL 制作网站图标解析器 我这样做是这样的 public class GrabIconsFromWebPage public static String replaceUrl String url StringB
  • Java、Oracle 中索引处缺少 IN 或 OUT 参数:: 1 错误

    您好 我使用 Netbeans 8 0 2 和 Oracle 11g Express Edition 在 JSF 2 2 中编写了一个图书馆管理系统 我有几个名为 书籍 借阅者 等的页面 以及数据库中一些名为相同名称的表 我的问题是这样的
  • 哪个 Swing 布局管理器可以获得我想要的布局?

    我正在尝试按照这个模型制作一个基本的登录菜单 我决定将整个菜单放入 JPanel 中 以便在连接成功后我可以切换到另一个面板 所以我决定使用 Borderlayout 将标题放在北区 将连接按钮放在南区 我将边框布局的中心本身设置为面板 我
  • RMI 中的引用传递问题? [复制]

    这个问题在这里已经有答案了 有人可以告诉我我错在哪里 为什么这个 RMI 聊天应用程序不起作用 目标是通过远程对象或序列化对象实现客户端 服务器和逻辑之间的解耦 import javax swing import java awt even
  • 如何拦截 REST 端点以接收所有标头?

    我当前的代码是 Path login RequestScoped public class LoginResource GET SecurityChecked public Response getUser HeaderParam AUTH
  • 字符串池可以包含两个具有相同值的字符串吗? [复制]

    这个问题在这里已经有答案了 字符串池可以包含两个具有相同值的字符串吗 String str abc String str1 new String abc Will the second statement with new operator
  • JFace ColumnWeigthData 导致父级增长

    我有一个 Eclipse RCP 应用程序 并且想要在TableViewer using ColumnWeigthData as ColumnLayoutData 问题是父表单 ScrolledForm在示例代码中 每当我布局表格时都会增加
  • Java-如何将黑白图像加载到二进制中?

    我在 FSE 模式下使用 Java 和 swing 我想将完全黑白图像加载为二进制格式 最好是二维数组 并将其用于基于掩码的每像素碰撞检测 我什至不知道从哪里开始 过去一个小时我一直在研究 但没有找到任何相关的东西 只需将其读入Buffer
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 从 @JsonProperty 值获取枚举常量

    我有一个标有 JsonProperty 的枚举 用于使用 Jackson 进行 JSON 序列化 反序列化 并且希望获取给定字符串 JsonProperty 的枚举值 public enum TimeBucket JsonProperty
  • 在 IntelliJ 中运行 Spring Boot 会导致 Unable to load 'javax.el.E​​xpressionFactory'

    我正在尝试运行一个简单的 Spring Boot 应用程序 该应用程序具有以下 Maven pom file
  • 发生错误。请参阅日志文件 - eclipse juno

    每当我启动 Eclipse Juno 时 都会出现错误 发生错误 请查看日志文件 C Program Files eclipse configuration 1362989254411 log 有的网站说卸载jdk重新安装 我这样做了 但没
  • 带有 OpenId 提供程序的 Java Spring 安全性

    我有一个 spring MVC 应用程序 另一个客户端应用程序想要使用 open id connect 访问我的 spring 应用程序 如何在服务器端实现开放ID提供商 请帮忙 MITREid 连接 OpenID Connect Java
  • 如何在PL/SQL中模拟32位有符号整数溢出?

    您知道如何在 Oracle PL SQL 中模拟 32 位整数溢出吗 例如 2147483647 1 2147483648 or 2147483648 1 212147483647 我尝试了 PLS INTEGER 但它引发了溢出异常 我终
  • Android Gradle 同步失败:无法解析配置“:classpath”的所有工件

    错误如下 Caused by org gradle api internal artifacts ivyservice DefaultLenientConfiguration ArtifactResolveException Could n
  • 了解 Spark 中的 DAG

    问题是我有以下 DAG 我认为当需要洗牌时 火花将工作划分为不同的阶段 考虑阶段 0 和阶段 1 有些操作不需要洗牌 那么为什么 Spark 将它们分成不同的阶段呢 我认为跨分区的实际数据移动应该发生在第 2 阶段 因为这里我们需要cogr
  • 如何初始化静态地图?

    你会如何初始化静态Map在Java中 方法一 静态初始化方法二 实例初始化 匿名子类 或者 还有其他方法吗 各自的优点和缺点是什么 这是说明这两种方法的示例 import java util HashMap import java util
  • 为什么这个私人浮动字段变为零?

    我有一些奇怪的行为 我很难向自己解释 称为 textureScale 的浮点字段变为零 如果某些代码正在更改该值 则可以解释这一点 然而 我希望能够通过将其设置为 私有最终浮点 来导致构建失败 或者至少是运行时异常 那么无论更改该值都将失败
  • 失败时石英重试

    假设我有一个这样配置的触发器
  • 如何捕获 try-with-resource 语句中 close 方法抛出的异常

    我正在读关于try with resourceJava 中的语句可用于指定任意数量的资源 try Resource1 res1 initialize code Resource1 res2 initialize code statement

随机推荐

  • WINDOWS 10 设置WSL 2

    确保已安装 WSL 可以在此处找到相关说明 并且运行的是 Windows 10内部版本 18917或更高版本 可以通过在 PowerShell 中运行以下命令来执行此操作 PowerShell dism exe online enable
  • 分布式深度学习part1:神经网络的分布式训练

    这篇文章是关于神经网络分布式训练的三部系列文章中的第一篇 在第1部中 我们将了解如何通过GPU上的分布式计算显著地加速深度学习模型的训练 并讨论一些挑战并调查当前关于该主题的研究 我们还将考虑神经网络的分布式训练是否适用于特定用例 介绍 在
  • stm32关于通用定时器的周期、频率计算公式

    以下内容针对正点原子的定时器中断实验 定时器时基单元包含 计数器寄存器 TIMx CNT 预分频器寄存器 TIMx PSC 该寄存器用设置对时钟进行分频 然后提供给计数器 作为计数器的时钟 自动装载寄存器 TIMx ARR 定时器的时钟来源
  • 【适合小白】开发一个区块链应用

    前言 本篇教程是小编基于FISCO BCOS官网的教程撰写的 有不明白的地方也可以去官网上的教程看看 在开发区块链应用之前 首先得完成搭建第一个区块链应用 目的是为了搭建节点跟启动控制台 1 了解应用需求 区块链天然具有防篡改 可追溯等特性
  • MQTT协议学习

    MQTT协议是目前物联网最主要的协议 它的设计主要是运用于 低带宽 低网速 差网络环境能够保证数据的正常传输 MQTT协议基于TCP IP协议 运用订阅发布模式 解除应用之间的耦合关系 客户端与客户端之间只需要知道服务器位置 就可以传输数据
  • Github管理项目代码相关git命令

    1 Git global setup git config global user name username git config global user email user email 2 Create a new repositor
  • .classpath .project ch2.iml这三个文件如何理解?

    这三个文件通常出现在Java开发中使用的集成开发环境 IDE 项目中 如Eclipse或IntelliJ IDEA 它们在项目的组织和配置方面发挥着重要的作用 classpath 文件 classpath 是 Eclipse 项目的配置文件
  • Wireshark使用小心得

    Wireshark工作使用小结 基本概念 wireshark是个开源的好用软件 用来分析数据包 数据包 通常就是四层信息 物理层数据帧 数据链路层以太帧头部 网络层IP包头部 传输层TCP包头部 最后就是应用层信息 基础功能使用 打开软件界
  • 范数介绍及C++/OpenCV/Eigen的三种实现

    有时我们需要衡量一个向量的大小 在机器学习中 我们经常使用被称为范数 norm 的函数衡量向量大小 形式上 Lp范数定义如下 范数 包括Lp范数 是将向量映射到非负值的函数 直观上来说 向量x的范数衡量从原点到点x的距离 更严格地说 范数是
  • 失业的程序员(五):商战之前

    本系列前章 失业的程序员 一 二 三 四 一 关于裸奔 早几年出现了很多新名词 如裸婚 蜗居 蚁族 而像我们这种没背景 没后台 没资金的程序员创业那简直可以称为裸奔 创业是否成功的标准实在太多 不能只拿钱来衡量因为很多人会说你铜臭 不能只拿
  • MYSQL的存储过程

    存储过程 存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合 调用存储过程可以简化应用开发人员的很多工作 减少数据在数据库和应用服务器之间的传输 对于提高数据处理的效率是有好处的 存储过程思想上很简单 就是数据库 SQL 语言
  • IAR编译器问题的总结

    之前做项目都是用keil编译器比较多 也基本上用得很顺手 但是最近又开始用IAR编译器 结果这次真是被它折磨得快要崩溃 现在把问题总结如下 IAR编译器版本 IAR2 10 4 IAR编译器默认的优化设置一定要注意 这个是之前做的一个项目
  • Kotlin协程源码简单聊一聊,浅浅看看表层

    今日科技快讯 近日 经历了一次停办 两次规模严重缩水之后 2023年世界移动通信大会 MWC 终于再现往日盛况 有来自200多个国家和地区的2000多家厂商参加 并在此次展会上发布了最新的产品与科技 仅中国就有100余家厂商参展 每年的MW
  • 详解前端性能优化之原生JS实现图片懒加载效果(通过IntersectionObserver内置构造函数实现)

    相信你作为一名用户 使用一款app 在首次打开页面时卡顿超过3秒时就会有退出的想法 所以我们在日常开发中 通常需要使用一些手段实现对性能的优化 来使得页面加载更快 用户体验更好 这其中有许多方式 其中最常用的无非是按需加载了 今天就带大家重
  • 硬盘配置raid5时碰见unconfiguration bad问题记录

    环境 长城服务器 昆仑bios 问题描述 系统装了四个SSD盘 但在BIOS配置raid的 Driver Manager 驱动识别界面中四块硬盘中的三块都是坏的 显示unconfiguration bad 并且在后面的raid配置界面中识别
  • MES系统质量追溯功能,到底在追什么?

    今天我们就来分析一下生产企业的产品质量追溯问题 以及MES系统中产品追溯的应用 我们知道 生产质量管理是MES系统中十分重要的一部分 因为长期以来 车间质量管理部门希望车间的加工水平持续保持在最佳状态 对加工过程产生的质量问题能得到及时的发
  • 河北某日报移动端python数据采集 eds加密新闻内容

    写在最前面 此移动端采用EDS 的js加密 核心的js加密代码 贴在 个人爱好尝试破解 仅提供技术交流用 目标地址 抓取的详情页地址 var e 4Qjir8b019EIXH0FBzIJIuElne7uRYd6AB7qOIQg TdtJrw
  • Java日期计算溢出问题

    先看下面的代码 SimpleDateFormat fmt new SimpleDateFormat yyyy MM dd final Date beginDate fmt parse 2013 8 1 for int i 0 i lt 30
  • 【Docker】ERROR: Could not find a version that satisfies the requirement pytest==5.0.1

    1 背景 背景参考 Docker elasticsearch 监控工具 elasticsearch HQ lcc lcc soft es elasticsearch HQ 3 5 12 pip install r requirements
  • Java解决Oracle中ORA-12542:TNS无监听程序ORA-12542:TNS:监听程序无法识别连接符中请求的服务

    环境 WINDOWS2003 ORACLE 10G 第一次安装完ORACLE后使用SQLPLUS链接都是没问题的 但重启服务器就报了异常 ORA 12541 TNS 无监听程序 这里肯定是监听器出了问题 但没有做任何变动 只是重启了服务器