TNS-12541: TNS: 无监听程序,问题很奇怪,tnsping 127.0.0.1没问题

leaf_zhi 2011-10-14 11:40:40
各位大侠,初次在这里发帖,多关照,这个问题在网上找了好久都没找到原因,希望在这里能解决掉。
199.20.10.37是我本机IP。

C:\Users\Administrator>tnsping 127.0.0.1

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 14-10月-
2011 11:32:08

Copyright (c) 1997, 2010, Oracle. All rights reserved.

已使用的参数文件:
D:\oracle\product\11.2.0\dbhome_2\network\admin\sqlnet.ora

已使用 EZCONNECT 适配器来解析别名
尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST
=127.0.0.1)(PORT=1521)))
OK (0 毫秒)

C:\Users\Administrator>tnsping 199.20.10.37

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 14-10月-
2011 11:33:30

Copyright (c) 1997, 2010, Oracle. All rights reserved.

已使用的参数文件:
D:\oracle\product\11.2.0\dbhome_2\network\admin\sqlnet.ora

已使用 EZCONNECT 适配器来解析别名
尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST
=199.20.10.37)(PORT=1521)))
TNS-12541: TNS: 无监听程序
...全文
1158 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunchaoss 2012-06-28
  • 打赏
  • 举报
回复
楼主在文件listener.ora中LISTENER里加上(ADDRESS = (PROTOCOL = TCP)(HOST = 199.20.10.37)(PORT = 1521))就OK了
可楼主在回复2楼的listener.ora配置中看到已经有这句配置了,这是怎么回事呢
leaf_zhi 2011-10-14
  • 打赏
  • 举报
回复
通过各方面资料,终于解决。
在文件listener.ora中LISTENER里加上(ADDRESS = (PROTOCOL = TCP)(HOST = 199.20.10.37)(PORT = 1521))就OK了
leaf_zhi 2011-10-14
  • 打赏
  • 举报
回复
哦,我本机WIN7系统不行,测试服务器上的WIN2003也是这个问题,真纠结
opps_zhou 2011-10-14
  • 打赏
  • 举报
回复
Windows 7 下我没试过
我在 xp 和 linux 试过,都是可行的
leaf_zhi 2011-10-14
  • 打赏
  • 举报
回复
刚用ipconfig /flushdns把DNS刷新了也没用。还有我系统是WIN7,127.0.0.1 localhost这一行原本前面就又#的
leaf_zhi 2011-10-14
  • 打赏
  • 举报
回复
C:\Users\Administrator>tnsping localhost

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 14-
2011 14:13:02

Copyright (c) 1997, 2010, Oracle. All rights reserved.

已使用的参数文件:
D:\oracle\product\11.2.0\dbhome_2\network\admin\sqlnet.ora

已使用 EZCONNECT 适配器来解析别名
尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)
=127.0.0.1)(PORT=1521)))
OK (0 毫秒)

修改hosts文件要不要重启什么东西?
opps_zhou 2011-10-14
  • 打赏
  • 举报
回复
你将 hosts 文件中,127.0.0.1 那行记录前面加个 #(注释掉)
然后 你试着 tnsping localhost 看一下输出结果里的 host IP 是多少
leaf_zhi 2011-10-14
  • 打赏
  • 举报
回复
199.20.10.37就我本机的IP啊,修改文件都,监听都有重启过,为保险起见,我刚又把OracleOraDb11g_home1ClrAgent,OracleOraDb11g_home1TNSListener,OracleServiceORCL3个服务都重启了
opps_zhou 2011-10-14
  • 打赏
  • 举报
回复
原因是你监听文件里,监听的 host 是 127.0.0.1 ,所以你 tnsping 199.*.*.* 会找不到监听
而配置成 localhost ,会根据 hosts 文件里配置的,去找对应 IP,就能监听到

另外问一下,你修改 listener.ora 文件后,你重启监听了吗?
leaf_zhi 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 opps_zhou 的回复:]

打开 C:\WINDOWS\system32\drivers\etc 目录下的 hosts 文件
在里面添加记录

127.0.0.1 localhost
199.20.10.37 localhost

再把监听的 host 改成 localhost
[/Quote]

按你的方法修改还是不行啊。这个问题以前也遇到过,只是修改tnsnames.ora和listener.ora就OK了,这次不晓得怎么就不行了
opps_zhou 2011-10-14
  • 打赏
  • 举报
回复
打开 C:\WINDOWS\system32\drivers\etc 目录下的 hosts 文件
在里面添加记录

127.0.0.1 localhost
199.20.10.37 localhost

再把监听的 host 改成 localhost

leaf_zhi 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 opps_zhou 的回复:]

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
[/Quote]

这里改成localhost或主机名都不行
我是睡 2011-10-14
  • 打赏
  • 举报
回复
如果是测试环境,不行的话可以把监听都删了,重新创建监听试试。
opps_zhou 2011-10-14
  • 打赏
  • 举报
回复
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
minitoy 2011-10-14
  • 打赏
  • 举报
回复
把127.0.0.1改成localhost呢
leaf_zhi 2011-10-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 opps_zhou 的回复:]

listener.ora 怎么配置的
[/Quote]

配置文件感觉没什么问题
listener.ora

# listener.ora Network Configuration File: D:\oracle\product\11.2.0\dbhome_2\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_2)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_2\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_2)
(SID_NAME = ORCL)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)

ADR_BASE_LISTENER = D:\oracle

tnsnames.ora

# tnsnames.ora Network Configuration File: D:\oracle\product\11.2.0\dbhome_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)



opps_zhou 2011-10-14
  • 打赏
  • 举报
回复
listener.ora 怎么配置的

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧