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

摘要:
根据错误信息,判断客户端没有监控实例服务名称。1.通过重新启动服务启动数据库。考虑一下听众。ora侦听器配置文件侦听器。ora不需要指定侦听器服务名称(安装Oracle10g后也不需要指定)。客户端连接到数据库没有问题。然后,通过再次在oracle客户端上配置对Orcl实例的监视,您只需要重新启动oracle服务器,这可能是在再次配置oracle客户端时。

原因如下:

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

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

  oracle中监听程序当前无法识别连接描述符中请求服务 的解决方法第1张   

如下是解决思路:

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

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 etworkadminlistener.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中监听程序当前无法识别连接描述符中请求服务 的解决方法第2张,然后在oracle客户端通过再次配置对Orcl实例的监听,如下图所示

oracle中监听程序当前无法识别连接描述符中请求服务 的解决方法第3张

结果出现如下图的提示。 

oracle中监听程序当前无法识别连接描述符中请求服务 的解决方法第4张

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

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

oracle中监听程序当前无法识别连接描述符中请求服务 的解决方法第5张 

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

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

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

oracle中监听程序当前无法识别连接描述符中请求服务 的解决方法第6张

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

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

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

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

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

第三种方法:

 

oracle中监听程序当前无法识别连接描述符中请求服务 的解决方法第7张

oracle中监听程序当前无法识别连接描述符中请求服务 的解决方法第8张

如果oracle版本是8点几的,要把oracle8i兼容性打钩,然后在填写sid,

然后在查看地址的主机名和ip是否正确,最后查看监听器的主机名和ip是否正确,

在最后测试就可以了

免责声明:文章转载自《oracle中监听程序当前无法识别连接描述符中请求服务 的解决方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Winform布局开源框架,Winform控件框架,插件化框架Android中关于日期时间与时区的使用总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux 使用 wget 下载 Oracle 软件说明

假设我们只能用Linux的命令模式,此时我们下载Oracle软件只能使用wget,但是Oracle 在权限这块管理越来越高,下载时需要验证帐号,具体使用wget的方式如下: wget -c --http-user=username --http-password=pwd  --output-document=patchname.zip  "Download...

mysql 修改字符集

1: 在Mysql的配置文件 my.ini (一般在c:/windows/下面) 里加上服务器的默认编码配置: default-character-set=utf82: 修改你的数据库的字符编码:进入Mysql数据库,通过命令修改你的数据库字符编码: ALTER DATABASE `databaseName` DEFAULT CHARACTER SET u...

access数据库删除两个日期之间 的数据 SQL语句

sql2005中sql语句为 DELETE FROM table WHERE ([date] BETWEEN '2011 - 9 - 19 0 : 00 : 00 ' AND '2011 - 9 - 20 0 : 00 : 00') 词语法是正确的,发现再access中没有影响相关行数,解决方法在日期前后加上#,语法为: delete from table...

MySQL权限

本文实例,运行于 MySQL 5.0 及以上版本。 MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。 grant select on testdb.* to common_user@'%'grant insert on test...

iOS 结构化数据访问

一、介绍   在存储大量数据时,除了最基本的打开文件,读取文件,存盘等这些没有明确管理机制的方式来存储数据外,iOS还提供了另外几种重要的数据存储方式。虽然这些方式最后还是将数据存储在文件中,但是iOS以一套系统性有制度的方式来管理这些数据,让数据不再是“散乱”的存储在文件中。如此一来,我们很容易处理大量的数据,并且同时兼顾性能。最常用的有三种方式:   ...

mac系统下安装、启动、停止mongodb

mongodb是非关系型数据库,mysquel是关系型数据库,前者没有数据表这个说法,后者有 一. 下载nodejs,安装,一直到 node -v显示版本号,表示安装成功。 二. 本文主要讲解,安装包方式安装 mongodb,至于其他方式不做介绍。 下载Mongodb后,将Mongodb-3.2.5.tar.gz 复制到 /leleda002 路径下解压得...