不能tnsping但可以sqlplus连接

时间:2013-01-31 16:32:33

标签: oracle11g

我有一个问题,希望有人可以向我解释。我在服务器上正确安装了Oracle 11g。从工作站,我已经安装了oracle客户端,其中tnsname.ora指向Oracle数据库。我可以ping到安装了oracle db的服务器。我可以sqlplus连接到数据库,我甚至可以使用C#以编程方式连接到数据库。但是,我无法改变它。我收到错误消息3511尝试这样做时找不到。所以我的问题是:在什么情况下使用tnsping以及如何使tnsping工作?换句话说,如果我的tnsping不起作用但我仍然可以使用C#以编程方式连接到数据库,那么我应该担心的是什么问题?我是Oracle的新手..谢谢!

2 个答案:

答案 0 :(得分:1)

我尝试过以下行动但没有成功,尽管它们是类似于我的类似场景的最受欢迎的答案。

1) Set Oracle_Sid to my oracle sid
2) Set Oracle_Home to my oracle home directory

我为解决这个问题做了什么:

1) Uninstall oracle client
2) Reinstall the oracle client with the newest version 11.2.xx. 

我相信,重新安装早期版本的oracle客户端也会起作​​用。 但是,由于我必须重新安装客户端,我可能想要获得最新版本。 原因可能是第一次安装不当,因为我们有预装应用程序的磁盘映像以自动准备新计算机。 其他Oracle操作似乎无法阻止tnsping(至少不是我所知道的)。

如果有人知道什么是无法进行tnsping的限制,但可以sqlplus连接,ping ...,如果你能分享,我将不胜感激。

答案 1 :(得分:0)

您的$ Oracle_Home值未设置或您的默认sid未在$ ORACLE_SID中设置

试试这个:

set ORACLE_SID=mysid
export ORACLE_SID
tnsping mysid

并查看它的回复。