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

1、问题描述:

打开sqlplus后用system角色登陆

然后切换成scott用户,再切换成sys

D:/>sqlplus sys/admin@orcl as sysdba

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

2、解决过程

用lsnrctl service查看监听状态

D:/Documents and Settings>lsnrctl service

1.LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 3-10月 -2012 20:11:19 
2. 
3.Copyright (c) 1991, 2005, Oracle.  All rights reserved. 
4. 
5.正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))) 
6.服务摘要.. 
7.服务 "PLSExtProc" 包含 1 个例程。 
8.  例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 
9.    处理程序: 
10.      "DEDICATED" 已建立:0 已被拒绝:0 
11.         LOCAL SERVER 
12.服务 "orcl" 包含 1 个例程。 
13.  例程 "orcl", 状态 READY, 包含此服务的 3 个处理程序... 
14.    处理程序: 
15.      "DEDICATED" 已建立:33 已拒绝:0 状态:ready 
16.         LOCAL SERVER 
17.      "D001" 已建立:0 已被拒绝:9 当前: 0 最大: 1002 状态: ready 
18.         DISPATCHER <machine: NETPLUS, pid: 3448> 
19.         (ADDRESS=(PROTOCOL=tcps)(HOST=netplus)(PORT=1934)) 
20.      "D000" 已建立:1 已被拒绝:0 当前: 1 最大: 1002 状态: ready 
21.         DISPATCHER <machine: NETPLUS, pid: 3996> 
22.         (ADDRESS=(PROTOCOL=tcp)(HOST=netplus)(PORT=1933)) 
23.服务 "orcl_XPT" 包含 1 个例程。 
24.  例程 "orcl", 状态 READY, 包含此服务的 3 个处理程序... 
25.    处理程序: 
26.      "DEDICATED" 已建立:33 已拒绝:0 状态:ready 
27.         LOCAL SERVER 
28.      "D001" 已建立:0 已被拒绝:9 当前: 0 最大: 1002 状态: ready 
29.         DISPATCHER <machine: NETPLUS, pid: 3448> 
30.         (ADDRESS=(PROTOCOL=tcps)(HOST=netplus)(PORT=1934)) 
31.      "D000" 已建立:1 已被拒绝:0 当前: 1 最大: 1002 状态: ready 
32.         DISPATCHER <machine: NETPLUS, pid: 3996> 
33.         (ADDRESS=(PROTOCOL=tcp)(HOST=netplus)(PORT=1933)) 
34.命令执行成功 
如下的原因:客户连接到监听器后,监听器把客户重定向到调度程序端口(很可能不是1521端口),由于操作系统问题,这些连接会被拒绝。

要解决这个问题,只需要在LISTENER。ORA的头部加入这一行DIRECT_HANDOFF_TTC_LISTENER = OFF 即可。

解法方法:

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

1.# listener.ora Network Configuration File: E:\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora 
2.# Generated by Oracle configuration tools. 
3.DIRECT_HANDOFF_TTC_LISTENER = OFF   //加入的内容</SPAN><SPAN style="COLOR: #333333"> 
4.SID_LIST_LISTENER = 
5.  (SID_LIST = 
6.    (SID_DESC = 
7.      (SID_NAME = CLRExtProc) 
8.      (ORACLE_HOME = E:\oracle\product\11.2.0\dbhome_1) 
9.      (PROGRAM = extproc) 
10.      (ENVS = "EXTPROC_DLLS=ONLY:E:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll") 
11.    ) 
12.  )
然后在命令行执行以下命令重启监听器和EM,如果还有问题就再重新启动下oracle服务

lsnrctl stop
lsnrctl start
emctl stop dbconsole
emctl start dbconsole

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值