即使我可以成功连接到数据库,但ping ping失败

在试图从我的工作站(实际上,在WinXP32和Win764工作站上看到相同的行为)build立到Oracle服务器的连接时,我经常尝试的第一件事情就是昙花一现。 当我这样做,这是我得到:

> C:\>tnsping MYDBNAME > > TNS Ping Utility for 32-bit Windows: > Version 10.2.0.1.0 - Production on > 25-JAN-2 011 15:03:35 > > Copyright (c) 1997, 2005, Oracle. All > rights reserved. > > Message 3511 not found; No message > file for product=NETWORK, > facility=TNSMessage 3512 not found; > No message file for product=NETWORK, > facility=TNSAttempting to contact > (DESCRIPTION = (ADDRESS_LIST = > (ADDRESS = (PROTOCOL = TCP) (HOST = > thisismyservername.com)(PORT = 1577))) > (CONNECT_DATA = (SID = MYDBNAME))) > Message 3509 not found; No message > file for product=NETWORK, facility=TNS 

所以,正如你所看到的,它正确地检测我的tnsnames文件,并为指定的数据库选取正确的服务器地址和端口,但是tnsping失败,出现3511和3509错误。

奇怪的部分是,从同一个工作站使用sqlplus或Toad,我可以成功地连接到同一个数据库。

任何人都可以解释这里发生了什么?

FWIW:

ORACLE_HOME系统环境variables(以及任何其他oracle环境variables) 设置。

更新

ORACLE_HOME环境variables不一定需要设置,它似乎依赖于每台机器。 我特别的问题是:Oracle 10g有一个已知的缺陷,因为tnsping.exe根本无法工作。 有一个补丁

Solutions Collecting From Web of "即使我可以成功连接到数据库,但ping ping失败"

我相信这可能发生在你的ORACLE_HOME环境变量设置不正确时。 tnsping仍然可以从PATH找到,但是找不到它的消息文件。 echo %ORACLE_HOME%显示什么,Oracle客户端实际安装在哪里?

这并不一定对Toad的访问有任何影响,因为它不需要直接访问ORACLE_HOME ; 您可能已经给了一个完整的连接字符串,或者如果TNS_ADMIN ,它可能能够获取服务名称。

编辑您也可能有几个相互干扰的Oracle产品。 如果是这样,请尝试开始 – >所有程序 – > Oracle安装产品 – >主页选择器,并选择与您正在执行的tnsping相关的。 (实际上这是为9i客户端;我认为10g您可能需要使用通用安装程序,通过安装产品 – >环境更改,但无法检查)。

除了设置ORACLE_HOME变量之外,还应该确保c:\ orant \ bin; 条目出现在可能已安装的其他Oracle客户端的任何其他路径条目之前。