您的位置:首页 > 数据库 > Oracle

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

2012-10-12 22:55 856 查看
1、问题描述:

打开sqlplus后用system角色登陆

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

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

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

2、解决过程

用lsnrctl service查看监听状态

D:/Documents and Settings>lsnrctl service

1.LSNRCT
4000
L 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐