tnsping命令对tnsname.ora文件的使用

简介: 先写结论,tnsping命令只识别到tnsname.ora文件中的ip和端口号,而对之后的service_name或者sid不进行识别,因此tnsping能ping通并不意味着sqlplus **/**@tnsname一定能登录。

先写结论,tnsping命令只识别到tnsname.ora文件中的ip和端口号,而对之后的service_name或者sid不进行识别,因此tnsping能ping通并不意味着sqlplus **/**@tnsname一定能登录。

测试:

本机IP:172.16.4.183

tnsname文件内容:

DRB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.4.137)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (sid = drb)
    )
  )

由于172.16.4.137的监听起着,尝试tnsping drb

[oracle@dbra admin]$ tnsping drb

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 10-APR-2012 16:05:21

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

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.4.137)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (sid = drb)))
OK (10 msec)

由于本来就已知137这个IP并不是想要的数据库所在ip,但是对tnsping能通产生疑惑

sqlplus登录:

[oracle@dbra admin]$ sqlplus sys/oracle@drb as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 10 16:05:42 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

ERROR:
ORA-12505: TNS:listener does not currently know of SID given in connect
descriptor


Enter user-name:

172.16.4.137上的监听状态如下:

C:\Users\Administrator>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.4.0 - Production on 10-4月 -2012 16:0
7:09

Copyright (c) 1991, 2007, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=VQBDTC9FC795994)(PORT=1521)
))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 32-bit Windows: Version 10.2.0.4.0 - Produ
ction
启动日期                  10-4月 -2012 09:00:03
正常运行时间              0 天 7 小时 7 分 7 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          F:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件          F:\oracle\product\10.2.0\db_1\network\log\listener.log

监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=VQBDTC9FC795994)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
  例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "mangdb" 包含 1 个例程。
  例程 "mangdb", 状态 READY, 包含此服务的 1 个处理程序...
服务 "mangdbXDB" 包含 1 个例程。
  例程 "mangdb", 状态 READY, 包含此服务的 1 个处理程序...
服务 "mangdb_XPT" 包含 1 个例程。
  例程 "mangdb", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功
 
可见,并不存在drb的实例。
修改本机tnsname.ora文件,注释相关行
DRB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.4.137)(PORT = 1521))
#    (CONNECT_DATA =
#      (SERVER = DEDICATED)
#      (sid = drb)
#    )
  )
[oracle@dbra admin]$ tnsping drb
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 10-APR-2012 16:09:30
Copyright (c) 1997, 2005, Oracle.  All rights reserved.
Used parameter files:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.4.137)(PORT = 1521)))
OK (10 msec)
 
因此可以得出结论,只要相关监听正常,tnsping对tnsname.ora文件中的相关IP和端口号配置符合监听要求,即能ping通。
相关文章
rac中连接pdb时遇到ORA-01033:
sqlplus system/dingjia@192.168.82.139:1528/third
115 0
|
SQL Oracle 网络协议
Oracle的网络三大配置文件sqlnet.ora、tnsnames.ora、listener.ora
Oracle的网络三大配置文件sqlnet.ora、tnsnames.ora、listener.ora
788 0
|
Oracle 网络协议 关系型数据库
Oracle环境变量、监听listener.ora、tnsnames.ora、sqlnet.ora配置
Oracle环境变量、监听listener.ora、tnsnames.ora、sqlnet.ora配置 点击(此处)折叠或打开 NLS_DATE_FORMAT=YYYY-MM-DD HH24:mi:ss NLS_LANG=AMERICAN_CHINA.
1060 1
|
SQL Oracle 关系型数据库
Oracle 连接玩我!ORA-12514及ORA-28547错误解决
安装了Oracle11g整整数据库,以前正Oracle都是安装好修改配置NET Manager就可以连接了。可是今天出现了一点小意外,这里总结一下。 (一) 安装检查的问题   在Win7中安装Oracle11g 企业版,在安装的过程中出现一个问题: Environment varia...
2173 0
|
Windows 数据库管理 关系型数据库
SQLNET.ORA 的常见用法
一、IP 黑白名单 相关参数 TCP.VALIDNODE_CHECKING = YES 使用这个参数来启用下边的两个参数。 TCP.EXCLUDED_NODES = (list of IP addresses) 指定不允许访问oracle的节点,可以使用主机名或者IP地址  TCP.INVITED_NODES = (list of IP addresses) 指定允许访问db的客户端,他的优先级比TCP.EXCLUDED_NODES高。
1403 0
|
Oracle 关系型数据库
|
Oracle 关系型数据库 数据库
|
Oracle Java 关系型数据库