使用tnsping时,我可以指定端口号和SID吗?

时间:2014-08-07 22:20:01

标签: oracle tnsping

我使用Bitvise Tunnelier使用SQL Developer连接到一系列Oracle数据库;连接到localhost和一个特定的端口号,这很好。我想通过其他方式(例如,.NET)进行连接,我正在使用tnsping进行故障排除。

有没有办法用端口号和SID运行tnsping?我试过了:

tnsping DatabaseSIDName:9001
tnsping DatabaseSIDName;9001
tnsping DatabaseSIDName,9001

全部给出“TNS-03505:无法解析名称”。

1 个答案:

答案 0 :(得分:6)

当您使用tnsping时,它将获取一些Oracle .ora文件以确定它知道哪些DB。你应该看到类似的东西:

$ tnsping myDB

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 24-MAY-2007 08:55:13
Copyright (c) 1997, 2005, Oracle.  All rights reserved.
Used parameter files:
/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact...

您可以创建自己的tnsnames.ora文件并将其添加到TNS_ADMIN环境变量中以添加新的数据库,端口,SID等。完整的示例如下所示:

ORA11 =
 (DESCRIPTION = 
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 9001))
  )
 (CONNECT_DATA =
  (SERVICE_NAME = DatabaseSIDName)
 )
)

只需export TNS_ADMIN=<path to folder containing new tnsnames.ora file>并再次尝试ping。以下是一些参考文献:

http://www.orafaq.com/wiki/Tnsnames.ora

Oracle - What TNS Names file am I using?

修改


根据您的原始示例/后续评论,最简单的可能是:

$ORACLE_HOME/bin/tnsping <hostname>:<port>/<sid>

还有很多其他选项,例如EZConnect和sqlplus,它们将测试相同的功能。