Oracle出现“TNS: 监听程序无法分发客户机连接”解决方法

1、问题描述:
打开sqlplus后用system角色登陆
C:\Users\Administrator>sqlplus sys/admin@ICU as sysdba

然后接下去操作出现 “TNS: 监听程序无法分发客户机连接”


2、解决过程
首先最重要的一点:确保侦听服务和用户名对应服务(OracleServiceICU)已启动,如果没有启动,请启动
相应的服务,启动方法:右键点击 计算器->管理->找到 服务 
服务启动后,再去进行连接测试一下(C:\Users\Administrator>sqlplus sys/admin@ICU as sysdba),如果

还是失败的话,请用下面的方法(百度来的)


 用lsnrctl service查看监听状态
打开CMD.exe 
C:\Users\Administrator>lsnrctl service
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 3-10月 -2012 20:11:19 

Copyright (c) 1991, 2005, Oracle.  All rights reserved. 
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))) 
服务摘要.. 
服务 "PLSExtProc" 包含 1 个例程。 
  例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 
    处理程序: 
      "DEDICATED" 已建立:0 已被拒绝:0 
         LOCAL SERVER 
服务 "ICU" 包含 1 个例程。 
  例程 "ICU", 状态 READY, 包含此服务的 1 个处理程序... 
    处理程序: 
      "DEDICATED" 已建立:33 已拒绝:0 状态:ready 
         LOCAL SERVER 
服务 "orcl_XPT" 包含 1 个例程。 
  例程 "orcl", 状态 READY, 包含此服务的 3 个处理程序... 
    处理程序: 
      "DEDICATED" 已建立:33 已拒绝:0 状态:ready 
         LOCAL SERVER 
命令执行成功 
如下的原因:客户连接到监听器后,监听器可能把客户重定向到调度程序端口(很可能不是1521端口),由于操作系统问题,这些连接会被拒绝。
要解决这个问题,只需要在LISTENER。ORA的头部加入这一行DIRECT_HANDOFF_TTC_LISTENER = OFF 即可。

解法方法:
在电脑里面搜索listener.ora,打开该文件。

在listener.ora加入下面的“加入内容”

# listener.ora Network Configuration File: E:\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora 
# Generated by Oracle configuration tools. 
DIRECT_HANDOFF_TTC_LISTENER = OFF    
SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (SID_NAME = CLRExtProc) 
      (ORACLE_HOME = E:\oracle\product\11.2.0\dbhome_1) 
      (PROGRAM = extproc) 
      (ENVS = "EXTPROC_DLLS=ONLY:E:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll") 
    ) 
  )
然后在命令行执行以下命令重启监听器和EM,如果还有问题就再重新启动下oracle服务
lsnrctl stop
lsnrctl start
emctl stop dbconsole
emctl start dbconsole
最后还有其他的方法,网上有详细的介绍,不在一一说明,请参考
[color=#FF0000]http://blog.csdn.net/zexin1000/article/details/6988491[/color]
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORA-12518错误意味着监听程序无法处理客户机连接请求。这个错误通常在数据库服务器上出现,表示数据库监听程序已达到其最大连接限制。 常见的原因是服务器资源不足,例如CPU或内存不足以处理所有连接请求。此外,网络延迟或故障也可能导致该错误。 解决这个问题的方法包括: 1. 增加监听程序的最大连接数:可以通过修改监听程序的配置文件(通常是listener.ora)来增加最大连接数。找到类似“max_connections”的参数并适当增加该值。 2. 增加服务器资源:通过增加服务器的CPU、内存等资源,可以提高服务器的处理能力,从而处理更多的连接请求。 3. 检查网络连接:查看网络连接是否稳定,并确保没有存在网络故障。可以尝试使用网络诊断工具,如ping命令,来检测网络延迟和丢包情况。 4. 优化数据库配置:通过优化数据库的配置参数,如连接池大小或连接超时时间,可以更有效地利用数据库资源,从而减少连接的负担。 5. 分析并限制不必要的连接:检查数据库的连接情况,排查是否有不必要的连接存在。可以通过查询数据库的v$session视图来获取连接信息,并关闭不需要的会话。 需要注意的是,解决ORA-12518错误可能需要一些系统维护和数据库管理的知识。如果没有相关的经验,建议寻求专业人士的帮助来解决这个问题,以防止对系统造成不良影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值