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

来源:互联网 发布:python数据分析课程 编辑:程序博客网 时间:2024/05/17 09:20
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 0
原创粉丝点击