金歌 发表于 2024-6-15 03:36:14

Oracle ORA12514 监听步伐当前无法识别连接描述符中请求的服务

最简朴的有大概是你的服务还没有开启,需要启动服务!!!!
在连接数据库的时候,偶然会遇到一个“ORA12514:监听步伐当前无法识别连接描述符中请求的服务”的错误,这个错误实在就是数据库动态注册(关于动态注册会在稍后讲解)不见效,导致监听器无法识别客户端连接符中提供的服务名,从而拒绝建立数据库连接时报的错误信息,以是就需要对监听器配置做修改。
在这里,还需对题目进行细化,偶然候大概会发现,在刚开启监听器的时候会发生这个错误,但过了一会再进行连接就不会报错,这实在是由于动态注册需要时间,而刚开启监听器时,数据库还未注册到监听器,导致报错,这种情况不在本文讨论范围内。
listener.ora文件存放在$ORACLE_HOME/network/admin(以我的Oracle11为例就是D:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN),这个文件存放的就是监听器的配置,监听器在启动时会读取该文件,我们先来相识一下这个文件。
该文件的大概配置如下图
上图中,SID_LIST_LISTENER参数就是数据库注册,动态注册或是静态注册(注册就是将数据库作为一个服务注册到监听器。客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库,动态注册就是在监听器配置文件中不明白的声明数据库实例和服务名,而是在数据库启动时才由数据库主动注册到监听器,静态注册就是在监听器配置文件中明白声明数据库实例和服务名。),LISTENER参数就是监听器的配置,此中,PROTOCOL参数是协议名,一样平常为TCP,HOST参数是地点,可以写IP地点、服务器名、localhost、127.0.0.1,PORT参数是端口号,默以为1521。
既然是由于动态注册引起的题目,那么最简朴的解决方法天然是由动态注册改为静态注册,如下图
https://img-blog.csdnimg.cn/7bd56cf594234f3daceb7c5a6e785166.png
    (SID_DESC=
      (GLOBAL_DBNAME=ORCL)
      (ORACLE_HOME=D:\app\Administrator\product\11.2.0\dbhome_1)
      (SID_NAME=ORCL)
    )  
红线框内的就是静态注册,SID_NAME参数是数据库实例名,GLOBAL_DBNAME参数是全局数据库名(在配置客户端的本地服务名时“服务名”要与全局数据库名一致),配置好后,重启监听器,就可正常连接了。
修改为静态注册看起来虽简朴,但也有不敷之处,起首,要修改为静态注册需对配置文件和参数较为认识,否则很有大概会配置错误,其次当参数的值有所改变时必须重新修改配置才行。
还有一种方法就是修改host参数的值,host参数可以有四种值:IP地点、服务器名、localhost、127.0.0.1,由于可取值变多了,导致相识决办法也随着导致出现题目标原因而多样化了起来,各种情况都大概有不同的解决办法,可以在这四个值之间实行修改,需要注意的是,当采用localhost和127.0.0.1时,客户端的本地服务名不能使用IP地点和服务器名进行配置,否则会报“ORA12541:无监听步伐”的错误,还有就是修改之后要重启监听器。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Oracle ORA12514 监听步伐当前无法识别连接描述符中请求的服务