设为首页 收藏本站
查看: 749|回复: 0

[经验分享] PL/SQL 连接Oracle10g数据库,ORA-12514;TNS:监听程序当前无法识别连接描述中请求的服务

[复制链接]
发表于 2015-11-8 12:27:46 | 显示全部楼层 |阅读模式
  
今天启用pl/sql developer连接oracle的时候,发现出现“ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务”这个错误,上网搜了一个解决的办法,现已搞定,推荐给大家,以下是解决的方法。

   DSC0000.jpg
  
  问题原因是:服务中OracleServiceMYORACLE服务先启动,OracleOraDb10g_home1TNSListener服务后启动,就会出现这种情况(我试过了)。
   DSC0001.jpg
  
  解决办法:关掉两个服务,然后再先开启OracleOraDb10g_home1TNSListener服务,后再开启OracleServiceMYORACLE服务,这样问题就解决了。
  步骤:右击【我的电脑】=》单击【服务】=》找到上图两个服务【OracleServiceMYORACLE服务】和【OracleOraDb10g_home1TNSListener服务】=》选中,右击=》单击【禁止】=》选择【OracleOraDb10g_home1TNSListener服务】=》单击【启动】=》选中【OracleServiceMYORACLE服务】=》单击【启动】,就OK了
  
  
  
  

解决方法:
1. 打开<OracleHome>/network/admin/listener.ora文件(/oracle/product/10.2.0\db_1/NETWORK/ADMIN/listener.ora)

2. 需要添加的代码:
(SID_DESC =

    (GLOBAL_DBNAME = ORCL)

    (ORACLE_HOME = G:\oracle\product\10.2.0\db_1)   

    (SID_NAME = ORCL)

    )
3. 最后文件改成
SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = G:\oracle\product\10.2.0\db_1)

      (PROGRAM = extproc)

    )
   --红色部分为增加的代码
   (SID_DESC =

    (GLOBAL_DBNAME = ORCL)

    (ORACLE_HOME = G:\oracle\product\10.2.0\db_1)   

    (SID_NAME = ORCL)

    )

  )

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = zyk)(PORT = 1521))

    )

  )

以上红色字体部件为增加的内容,修改后重启监听服务后即可。

  转至:http://lnjz-jxj.iyunv.com/blog/677249
  
  
  
  早上同事用PL/SQL连接虚拟机中的Oracle数据库,发现又报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误,帮其解决后,发现很多人遇到过这样的问题,因此写着这里。
  也许你没有遇到过,原因如下:
  你oracle安装成功后,一直未停止数据库(即数据库是启动的),客户端配置成功后,应该一直不会有什么问题。
  而一旦你和我同事一样,有时把Oracle安装在虚拟机中,而且Oracle安装完毕后,没在进行任何监听的配置,则虚拟机再启动,则就会出现ORA-12514的问题。如下图
DSC0002.jpg

  如下是解决思路:
  根据出错信息判断出客户端未监听到实例服务名
  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服务器的服务中重新启动监听服务 DSC0003.jpg ,然后在oracle客户端通过再次配置对Orcl实例的监听,如下图所示 DSC0004.jpg
  • 结果出现如下图的提示。
    DSC0005.jpg
  • 这时我们不要着急,只需要oracle服务器重新启动一下,再次连接即成功。这也是我们配置完listener.ora 监听后,经常忘记的。再次尝试,可以看到客户端可以连接上oracle服务器了,而且PL/SQL再次连接也没有问题了。
  而有些朋友在配置客户端时,连接数据库成功,而使用PL/SQL时,又出现了如下图所示的问题。这又如何解决呢?为什么oracle客户端已经连接成功了,而PL/SQL确不行呢?


DSC0006.jpg

  
出现如上的原因是,可能是大家再配置oracle客户端时,虽然链接成功了,步骤上可能有些错误。大家使用Net Cofiguration Assistant客户端时重新配置了Orcl,而不是添加,我们应该如下步骤处理,就不会出问题了。
  1、如果Net Cofiguration Assistant中已经有了Orcl。我们可以重新配置
  2、如果Net Cofiguration Assistant中没有Orcl,我们应该添加 具体界面如下图所示。
DSC0007.jpg

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

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

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

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


  • 正确添加listener.ora;
  • 重新启动了oracle服务器,并检查oracle所有服务是否启动;
  • oracle客户端Net Cofiguration Assistant正确添加或重新配置实例名
希望该篇博文,能够解决大家的问题。

  转至:http://blog.sina.com.cn/s/blog_5007d1b10100oqo8.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-136587-1-1.html 上篇帖子: ORA-01033: ORACLE 正在初始化或关闭 解决方法 下篇帖子: CentOS6.6安装Oracle 11.2g
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表