文档章节

关于“ORA-12518: TNS: 监听程序无法分发客户机连接”的一种解决方法

rootliu
 rootliu
发布于 2017/08/18 09:25
字数 1075
阅读 12
收藏 0

问题场景:昌平的服务器修改了静态ip,并重启了几次机器,后来在实验室通过远程桌面访问oracle数据库,发现sql developer无法连接数据库,报错“TNS:监听程序无法分发客户机连接”。之后进入windows server 2008服务器的服务,查看oracle的服务除了实例没有启动外,其他都正常,试图启动OracleService***实例后报错“错误1053:服务并未及时响应启动或控制请求”。试图用sqlplus开启数据库,却发现无法登陆,报错“协议适配器不匹配”,在Oracle Net Manager中测试服务仍然报错“TNS:监听程序无法分发客户机连接”。

考虑可能引起问题的地方有几点:1.服务器修改ip后导致监听失效。2.服务器实例无法启动导致报错。3.上述报错内容涉及到的细节问题。

解决方法:

1.查看listen.ora和tnsnames.ora文件内容(%ORACLE_HOME%/NETWORK/ADMIN目录下):

修改ip可能会引起监听出现问题,查看并修改这两个文件中涉及到的HOST内容,是否为主机名或正确ip地址。

2.查看“ORA-12518:TNS:监听程序无法分发客户机连接”(“ORA-12518:TNS listener could not hand off client connection”)错误原因:

产生这个错误的原因有很多,大多数问题来自于内存不够用。检查%ORACLE_BASE%/diag/tnslsnr/主机名/listener/alert 文件中的log日志,查看错误原因是什么(查看之前最好重现下错误,然后再查会比较方便)。例如我的问题是:

TNS-12518: TNS:listener could not hand off client connection

TNS-12560: TNS:protocol adapter error
   TNS-00530: Protocol adapter error
    32-bit Windows Error: 233: Unknown error

根据错误原因,查看这篇日志:http://blog.sina.com.cn/s/blog_53a1165e0100nisv.html 里面把错误原因在linux和windows出现的情况分别进行了列举,虽然是英文的吧,但是错误原因覆盖的很广,大家可以根据自己的问题出在哪儿来进行有针对的修改。12518这个错误产生的原因很多,网上搜到的一般只是针对特定问题的解决,可能没有那个全面。如果你查到是因为自己内存太小导致的问题,可以查看这篇日志:http://blog.sina.com.cn/s/blog_5904ea280100g614.html 的解决方案。

3. 查看“错误1053:服务并未及时响应启动或控制请求”错误原因:

服务器只装了oracle,也没有开启任何软件,不可能出现内存太小的问题,上述内容并没有帮我解决问题,于是我对另一个问题进行了调查,看看是不是因为这个问题而导致的连锁反应。

首先是百度告知的一个简单方法:http://zhidao.baidu.com/question/118588548.html

试了仍然不成功,则查看第二个方法:http://topic.csdn.net/u/20070322/09/23e755dd-19b8-47b8-9418-b9384abf6311.html 第5、6楼qingdou的回复,尝试重建监听仍然失败。

又查到一个解决方法,即重建监听不成就重建实例,在cmd下调用oradim命令创建了一个新的实例,然后调用oradim命令中的方法启动服务和实例,然后奇迹就出现了,我发现sqlplus可以登录了。登录sqlplus之后使用startup命令启动了数据库后,windows server “服务”中的OracleService***实例也可以正常启动了,然后再用sql developer就能够连接到数据库而没有12518的错误了。

总结:总的来说还是数据库实例没能启动而导致的一系列错误,虽然绕了弯路花了两天才搞定,不过也算有收获。12518的错误可能出现的情况太多,网上给的方法基本上都不详细,这个错误还是需要按照上面我写的内容一步一步的自己去定位错误具体原因才能找到错误根源。即便出现了12518错误,也有可能是其他错误引起的,所以还是需要检查各种东东才能准确错误并及时修改啊。

本文转载自:http://blog.sina.com.cn/s/blog_60b8e4e501069rub.html

共有 人打赏支持
rootliu
粉丝 4
博文 267
码字总数 2796
作品 0
海淀
数据库管理员
私信 提问
ORA-12537 TNS-12560 TNS-00530 ora-609解决

oracle 11g不能连接,卡住,ORA-12537 TNS-12560 TNS-00530 TNS-12502 tns-12505 ora-609 Windows Error: 54: Unknown error 解决方案。 今天折腾了一下午,为了查这个问题。。找了N多方案,...

lanybass
06/19
0
0
ora 12518 监听程序无法分发给客户机连接如何解决??

ora 12518 监听程序无法分发给客户机连接如何解决??

空指针
2012/09/10
1K
6
【故障|监听】TNS-12518、TNS-00517和 Linux Error:32:Broken pipe

【故障|监听】TNS-12518、TNS-00517和 Linux Error:32:Broken pipe 1.1 BLOG文档结构图 1.2 前言部分 1.2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到...

小麦苗best
06/29
0
0
连接Oracle时报错ORA-12541: TNS: 无监听程序

遇到的问题:安装Oracle是,默认的安装方式先决条件检查通过不了,然后选择管理员安装,跳过更新,安装好了之后,用plsql登录连接,返回两种报错,ORA-12541: TNS: 无监听程序;另一种是ORA...

IT-Mamba
2016/12/06
139
0
Oracle数据库服务中常见的6个错误

没有人会否认Oracle是全球最有影响的数据库产品之一;不过好的东西似乎总不是那么好用(初看起来如此),甚至有些无情--总会给layman们一个个无情的错误号。下面是我个人的总结,条条有用,希望...

founder
2011/02/25
116
1

没有更多内容

加载失败,请刷新页面

加载更多

mysql load data 批量导入使用

最近在研究使用mycat,其中有使用批量数据导入,简单记录一下使用方式。 查看系统属性 mysql>show variables like '%secure%'+--------------------------+-----------------------+| Vari...

FansinZhao
17分钟前
0
0
浅谈React的最大亮点——虚拟DOM

在Web开发中,需要将数据的变化实时反映到UI上,这时就需要对DOM进行操作,但是复杂或频繁的DOM操作通常是性能瓶颈产生的原因,为此,React引入了虚拟DOM(Virtual DOM)的机制。 一、什么是...

peakedness丶
21分钟前
0
0
下一代大数据处理引擎,阿里云实时计算独享模式重磅发布

摘要: 11月14日,阿里云重磅发布了实时计算独享模式,即用户独享一部分物理资源,这部分资源在网络/磁盘/CPU/内存等资源上跟其他用户完全独立,是实时计算在原有共享模式基础上的重大升级。...

阿里云官方博客
25分钟前
0
0
Spring MVC 测试样例

1、需要javax.servlet-api V3.0以上支持 <!--3.0以上版本--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-......

jcc_codingBoy
27分钟前
2
0
kettle增量同步oracle数据到mysql

kettle增量同步oracle数据到mysql 适合表中有更新时间的字段 kettle安装 绿色,下载后解压即可(略), -> Download 连接数据库 需要导入jdbc相关驱动jar包到lib目录(oracle、mysql对应jar...

o00o
32分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部