精华内容
下载资源
问答
  • tnsping

    2009-01-08 11:20:38
    比较orale的tnsping与TCP/IP的ping命令: - Oracle Net 工具(命令)tnsping,是一个OSI会话层的工具,它用来: 1)验证名字解析(name resolution,当然是oracle...

    比较orale的tnsping与TCP/IP的ping命令:  -
      Oracle Net 工具(命令)tnsping,是一个OSI会话层的工具,它用来:   
    1)验证名字解析(name resolution,当然是oracle自己的网络服务名)  
    2)远程的listener是否启动  
    在验证上面两项功能方面,它是DBA手头上一个比较得心应手的工具。Oracle 网络接口支持不同的网络与传输协议,其中我们最熟悉的就是TCP/IP.这篇文章只描述TCP/IP 协议族,然而,在oracle网络接口支持的其它协议下,tnsping的功能是一样的。  Tnsping 可以用在多个网络协议上,但是本文只讨论TCP/IP网络协议  
      ORACLE TNSPING
     Oracle的tnsping测试程序,在通讯时使用TCP协议。TCP 是面向连接的OSI传输层协议。面向连接的协议在初始建立连接的阶段需要进行初始的序列号的交换,这就是我们通常所指的三次握手。即tnsping测试程序在与listener进行通讯时会产生三次握手现象。  
    当在命令行中发出了tnsping命令后,会执行oracle 网络别名(即网络服务名,主机连接字符串)的解析工作。这个解析工作会在本地的tnsnames.ora文件或ORACLE的命令服务器或ORACLE LDAP(目录服务)中进行。解析的目的是得到目标listener所在的机器名(IP地址)和listener侦听的端口号。  
    一旦得到listener的机器名与端口号,就可以打开一个到目标机器与端口的TCP连接。为了打开这个TCP连接,listener的机器名必须被解析为ip地址(当然这只有在解析出的listener的连接地址为机器名时才这样做),然后TCP/IP执行三次握手来完成这次连接。  
    在连接建立之后,Tnsping工具然后就发送一个Oracle TNS 连接包给Oracle Listener,Listener然后就回应一个TNS 拒绝包(Refuse packet),在两个机器间的TCP/IP连接就结束了。从oracle 网络别名的解析到结束TCP/IP连接之间的总的耗费的时间就显示在tnsping命令的输出中。  
    一个例子:  
    C:\>tnsping V817  4   
    TNS Ping Utility for 32-bit Windows:  
    Version 8.1.7.0.0 - ProdUCtion on 18-MAY-2001 14:27:57   
    (c) Copyright 1997 Oracle Corporation.  All rights reserved.   
    Attempting to contact   
    ADDRESS=(PROTOCOL=TCP)(HOST=abadah.us.oracle.com)(PORT=1521))  
    OK (1770 msec)  OK (10 msec)  OK (0 msec)  OK (10 msec)  
    上面这个例子显示第一次tnsping需要1770毫秒,这些时间由在tnsnames.ora文件中解析V817网络别名需要的时间、利用DNS解析listener机器名“ abadah”需要的时间,三次TCP/IP握手需要的时间、TNS Connect 和Refuse packets传输需要的时间、断开TCP/IP连接需要的时间。第二次tnsping只花费了10毫秒,这是因为所有的信息 (V817别名与IP地址)都已经在cache中了,然而Tnsping程序仍然做 TCP的连接与断开操作。
      TCP/IP PING
    Transmission Control Protocol/Internet 协议族 (TCP/IP) 有一个称为ping的工具。它是到TCP/IP 协议族中ICMP(Internet Control Message Protocol)协议的命令行接口。  
    根据RFC 792:  
    "有时候,一个网关或目的地址需要同源地址进行通讯,如:为了给源地址一个关于在处理数据报的过程中产生的错误。为了这种目的,就需要使用ICMP协议。 ICMP需要网际协议(IP)的支持,这使它看起来就像一个更高层的协议,然而,ICMP实际上是IP的一个组成部分,在IP的每个模块中必须实现它。  
    Ping命令的作用之一就是收集不同大小的IP数据包在网络上传输一个往返需要的时间。这可以用来估计网络的大体性能和响应时间。  
    Ping命令使用IP,而不是TCP,这样就不需要TCP的3次握手机制,当运行ping命令时,它只发送与接收一个ip数据包,这比oracle的tnsping程序运行时需要更少的数据包。
      Ping的第一个的response time经常比平均response time要长,这是因为第一次一般需要对ping的机器名进行解析。这个解析可以通过本地的hosts文件、DNS服务器或其它方法实现。  
    一个ping的例子:  
    Pinging abadah.us.oracle.com [144.25.223.156] with 32 bytes of data:  Reply from AAA.BBB.CCC.DDD: bytes=32 time<40ms TTL=255   
    Reply from AAA.BBB.CCC.DDD: bytes=32 time<10ms TTL=255   
    Reply from AAA.BBB.CCC.DDD: bytes=32 time<10ms TTL=255   
    Reply from AAA.BBB.CCC.DDD: bytes=32 time<10ms TTL=255   
    上面的例子显示第一次的ping时间需要40毫秒,这包括DNS解析的时间。  
    从上面的介绍我们可以得出:  
    1.tnsping需要使用TCP,所以需要3次握手建立连接,而ping只使用IP,所以不需要3次握手,这也就解释了为什么有的机器不能ping通,但是用tnsping确能测试通。  
    2.Tnsping通,并不能说明客户端能与数据库建立连接。因为  
    ping通只能说明客户端能解析listener的机器名,而且lister也已经启动,但是并不能说明数据库已经打开,而且tsnping的过程与真正客户端连接的过程也不一致。  但是假如不能用tnsping通,则肯定连接不到数据库。  
    关于第2条可以用tns-12545错误来说明:  TNS-12545 (ORA-12545): Connect failed because target host or object does not exist   
    原因:  
    客户端不能正确解析服务器的机器名。该错误一般出现在客户端没有设置或没有正确设置域名服务器的情况下出现。  
    解决办法:  
    疑问:出现这种情况时,有时可以用tnsping 测程序测试网络服务名可以通过,但还是不能用程序连接数据库,你会感到很希奇。有时即使将客户端的tnsnames.ora中的服务器的机器名换为ip地址,还是会报错,这会令人感到更加迷惑,会不会系统有问题?  
    要真正解决这个问题,需要知道客户端与服务器端在建立连接时所的数据流。并需要了解redirect session的概念。  
    当一个客户端连接在window上的数据库,或以共享连接的模式连接在unix上的数据库时(此时数据库为MTS模式),客户端的连接会发生重定向现象,也就是listener在接受客户端的连接后,会发送一个重定向的包给客户端,然后客户端利用这个重定向包中提供的信息(服务器的ip(或机器名)和端口等信息)重新发起一个真正的到数据库的连接。当将客户端的tnsnames.ora中的服务器的机器名换为ip地址,客户端的连接还是会报ora- 12545错的罪魁祸首就是这个重定向包中的内容。  当客户端连接window上的数据库,或以共享连接的模式连接在unix上的数据库时,因为tnsnames.ora中为服务器的ip地址,所以不存在名字解析的问题,客户端的连接请求会到达listener,这也就是tnsping 测试程序测试网络服务名可以通过的原因,因为tnsping测试程序不会产生重定向问题。在listener接受客户端的连接后,会跟据客户请求的连接模式(专用连接还是共享连接)和操作系统对socket的实现的情况,决定是否需要将客户端的连接进行重定向,假如需要进行重定向,则会产生一个重定向包,该包中包含的服务器的地址信息为从listener.ora文件中得到的listener侦听的地址(根据listener.ora中的配置可能为服务器的机器名,也可能为服务器的ip地址),该包中还包含客户端应该重定向连接的端口信息(同listener侦听的端口可能不为同一个),客户端在收到这个重定向包后,解析出应该重新连接的服务器地址(机器名或ip)和端口,重新利用解析出的信息建立一个新的连接,此时假如客户端得到的为服务器的机器名并且没有配置域名解析,就会因为解析不出服务器的ip地址,从而导致产生ora-12545错误。  
    所以,假如假如要彻底解决ora-12545错误,需要:  
    1) 配置一个域名服务器,并正确的设置客户端机器的域名服务器  
    2) 将服务器的机器名与ip配置在客户端的hosts文件中。  
    3) 将客户端tnsnames.ora和listener.ora中的地址部分都改为ip地址,而不是用机器名  
    4) 将客户端的连接改为专用连接,这样会避免redirect 现象。(适用与客户端tnsnames.ora中为服务器的ip地址的情况下)
    资料引用:http://www.knowsky.com/385749.html

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8797129/viewspace-531795/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/8797129/viewspace-531795/

    展开全文
  • oracle用户可以tnsping通,普通用户tnsping报错 用普通用户tnsping数据库的时候报 TNS-03505: Failed to resolve name 而用oracle用户tnsping数据库的时候却可以ping通 &lt;34 linux-sit:/home/smsds&gt;...

    今天碰到了一个有趣的问题
    oracle用户可以tnsping通,普通用户tnsping报错
    用普通用户tnsping数据库的时候报
    TNS-03505: Failed to resolve name
    而用oracle用户tnsping数据库的时候却可以ping通


    <34 linux-sit:/home/smsds>tnsping orarpt

    TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 24-DEC-2011 15:33:18

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

    Used parameter files:
    /home/oracle/product/11.1.0/db_1/network/admin/sqlnet.ora

    TNS-03505: Failed to resolve name


    oracle@linux-sit:~/product/11.1.0/db_1/network/admin> tnsping orarpt

    TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 24-DEC-2011 15:35:42

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

    Used parameter files:
    /home/oracle/product/11.1.0/db_1/network/admin/sqlnet.ora


    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.39)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orarpt)))
    OK (0 msec)


    到底是什么原因呢,查看了tnsnames.ora发现也没问题

    oracle@linux-sit:~/product/11.1.0/db_1/network/admin> more tnsnames.ora
    # tnsnames.ora Network Configuration File: /home/oracle/product/11.1.0/db_1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.

    orarpt =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.39)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orarpt)
        )
      )
     
    查看下文件权限,发现问题在这,tnsnames.ora的权限有问题
    oracle@linux-sit:~/product/11.1.0/db_1/network/admin> ll
    total 16
    -rw-r--r-- 1 oracle oinstall 335 2011-12-22 15:58 listener.ora
    drwxr-xr-x 2 oracle oinstall 144 2011-12-22 15:18 samples
    -rw-r--r-- 1 oracle oinstall 187 2007-05-07 23:03 shrept.lst
    -rw-r--r-- 1 oracle oinstall 188 2011-12-22 15:58 sqlnet.ora
    -rw-r----- 1 oracle oinstall 328 2011-12-24 15:21 tnsnames.ora


    修改试试chmod 755 tnsnames.ora

    再用普通用户tnsping一下,问题解决
    <34 linux-sit:/home/smsds>tnsping orarpt

    TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 24-DEC-2011 17:11:50

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

    Used parameter files:
    /home/oracle/product/11.1.0/db_1/network/admin/sqlnet.ora


    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.39)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orarpt)))
    OK (0 msec)
     

    展开全文
  • tnsping命令

    2016-05-18 21:45:16
    tnsping 查看客户端sqlnet.ora和tnsname.ora文件的配置正确与否,及对应的服务器的listener进程的状态。...执行tnsping 网络服务名,如tnsping mydb 如果监听未启动,使用tnsping会出现以下提示

    tnsping 查看客户端sqlnet.ora和tnsname.ora文件的配置正确与否,及对应的服务器的listener进程的状态。 


    执行tnsping 网络服务名,如tnsping mydb



    如果监听未启动,使用tnsping会出现以下提示




    展开全文
  • 浅析tnsping

    2017-12-11 14:43:00
    首先,先弄清楚tnsping是什么: OracleNet 工具(命令)tnsping,是一个OSI会话层的工具,测试数据库服务的命令,用来决定是否一个Oracle Net 网络服务(service)可以被接受。从某种意义上来说,tnsping 针对的 ...

    首先,先弄清楚tnsping是什么:

    Oracle Net 工具(命令)tnsping,是一个OSI会话层的工具,测试数据库服务的命令,用来决定是否一个Oracle Net 网络服务(service)可以被接受。从某种意义上来说,tnsping 针对的 sqlnet连接,就好比为我们常用的ping 命令来检查IP,主机名网络连接情况。tnsping常用来:①验证名字解析(name resolution,是oracle自己的网络服务名)②远程的listener是否启动③检查tcp协议是否已通,俗称我们说的网络通不通。

    然后,怎么用?

    命令格式为:tnsping IP地址:端口号/数据库服务名。或者 tnsping 网络服务名。

    在Windows 客户端, 开始 菜单=》 运行 =》 输入 cmd 命令,进入dos窗口,并输入tnsping bxsim

    上面返回的 “Attempting to contact” 后面部分是sqlnet 如何解析到的bxsim 别名,或者叫 连接标识符。该别名的解析是通过客户端的 TNS_ADMIN指定路径下的 sqlnet.ora文件中的NAMES.DIRECTORY_PATH 参数决定的。上面的试验结果显示的是通过 TNSNAMES 适配器 来解析成功的。

    该请求可以看到,是通过 TCP 的网络协议  (PROTOCOL = TCP), 连接到了 IP地址为127.0.0.1(本机IP)上的服务器(也可以是主机名),希望连接的端口为 1521,服务名为 (SERVICE_NAME = orcl)。

    连接时间毫秒的意思是 一个预估的大概网络传输往返一次的时间(这里为0ms)。

    其实,不论数据库是否运行,只要监听存在并在运行,tnsping 都可以成功解析! tnsping 即使在数据库实例停止的情况下,并没有监听1521端口,只要监听运行,tnsping就可以返回正常!监听停止之后,tnsping 无法被远端监听接受。

    总结:

    tnsping 用于诊断各种客户端连接问题还是一个非常好的工具。但是我们要清楚的知道,这个工具能做什么(检查客户端TNS配置),什么不能做(检查数据库实例是否启动,监听端口是否在1521上)!tnsping的解析成功仅仅意味着本地的tnsnames.ora ,IP地址等配置成功但是,完全跟目标数据库实例连接没有任何关系!最后,sqlnet 跟数据库也完全是独立的两个问题。不要因为sqlnet连接方面出错,就肯定是数据库的问题。要从客户端自身先找原因。

    推荐阅读:

    https://blogs.oracle.com/database4cn/tnsping

     

    转载于:https://www.cnblogs.com/smile233/p/8023022.html

    展开全文
  • tnsping用法

    万次阅读 2015-05-06 12:02:15
    tnsping IP地址:端口号/数据库服务名 [count] tnsping 网络服务名 [count] 比如:tnsping localhost:1521/study  tnsping studydb      tnsping命令:如果能够ping通,则说明客户端能解析listener的机器名,...
  • tnsping命令解析

    2017-10-09 19:21:00
    tnsping命令格式: tnsping <service_name> n n的意义是可以让tnsping ping多次 例: c:\Documents and Settings\Tony>tnsping orcl Oracle Net 工具(命令)tnsping,是一个OSI会话层的工具,...
  • tnsping的说明

    2017-06-07 13:42:25
    不论数据库是否运行,只要监听存在并在运行,tnsping 都可以成功解析 tnsping 即使在数据库实例停止的情况下,并没有监听1521端口,只要监听运行,tnsping就可以返回正常 监听停止之后,tnsping 无法被远端...
  • tnsping简介

    2012-11-09 19:32:17
    tnsping命令格式: tnsping n n的意义是可以让tnsping ping多次 Oracle Net 工具(命令)tnsping,是一个OSI会话层的工具,它用来: 1)验证名...
  • tnsping命令介绍

    千次阅读 2018-06-28 18:34:39
    什么是tnsping? 可以参考官方文档的具体介绍 http://docs.oracle.com/cd/E11882_01/network.112/e41945/connect.htm#NETAG378   tnsping 实际上就是一个小工具,用来决定是否一个Oracle Net 网络服务(service...
  • strace tnsping

    2017-06-02 22:49:49
    10919 22:43:11.828322 execve("/u01/app/product/11.2.0/dbhome_1/bin/tnsping", ["tnsping", "t127"], [/* 40 vars */]) = 0 10919 22:43:11.829246 brk(0) = 0xb0f000 10919 22:43:11.829661 mmap
  • tnsping 解析

    2016-02-01 19:40:58
    什么是tnsping? 可以参考官方文档的具体介绍 http://docs.oracle.com/cd/E11882_01/network.112/e41945/connect.htm#NETAG378 TNSPING is a utility in the ORACLE HOME/bin directory used to test if a SQL*...
  • tnsping命令详解

    万次阅读 2017-01-04 16:21:32
    Tnsping是Oracle提供的诊断连接动作的重要方法。我们在客户端上使用tnsping,可以快速的定位连接过程中错误,进行问题判断。从功能上看,tnsping能够帮助我们解决几个方面问题:   ü 本地Oracle Net配置文件...
  • 通过排查监听和防火墙限制,发现没有问题,主库通过tns服务名连接正常,从库通过tnsping报错 [oracle@dg ~]$ tnsping logdb TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 23-APR-2018 11:...
  • Oracle中tnsping命令解析

    万次阅读 2018-05-16 11:05:29
    Oracle Net 工具(命令)tnsping,是一个OSI会话层的工具,它用来:...启动监听,重新验证总结:1.tnsping 命令可以检查tcp协议是否已同,俗称我们说的网络通不通2.tnsping命令监听服务器上的监听是否已开启3.tnspi...
  • tnsping 命令

    2014-06-30 16:04:57
    然后在cmd窗体里面敲命令tnsping tns_name就可以看清楚了。 比较orale的tnsping与TCP/IP的ping命令: ----------------------------------------------------------------------------- Oracle Net 工具(命令...
  • oracle tnsping用法

    千次阅读 2014-06-05 17:38:15
    tnsping.查看远程的listener是否启动   用法: tnsping 连接名 次数 连接名:tnsnames.ora里配置的连接名 次数:测试次数 示例: C:\Documents and Settings\Administrator>tnsping test 2 TNS Ping ...
  • 两台主机centos5.1 主机,都安装oracle 10.2.0.1版本,一台oracle软件 是从另一台通过tar,然后ftp过去的。今天从一台主机A tnsping 主机B上的实例,出现如下错误 [oracle@yao1...
  • tnsping非常慢

    2017-09-27 10:18:00
    最近给同事虚拟机上安装了一个11g数据库,发现一个奇怪的问题,用windows客户段连接时候非常慢,慢到不能容忍的地步,但是本地os验证登录没有问题,速度非常快,初步定为问题出在监听上,于是我tnsping了一下,结果...
  • tnsping的一点心得

    2016-06-19 22:27:00
    在本地完成oracle客户端环境的搭建之后,发现无法连接到远程服务器,这时候有不少同学和我一样喜欢用tnsping这个命令去在测试远程数据库是否是通的。 但是对于为什么要用tnsping去做检测以及tnsping这个工具的工作...
  • tnsping报TNS-03505

    千次阅读 2013-07-19 21:00:48
    [root@rac1 admin]# tnsping rac2 TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 19-JUL-2013 20:40 :45 Copyright (c) 1997, 2011, Oracle. All rights reserved. Used param
  • tnsping,作为Oracle连接测试的一个小巧的工具,其实大家已经不陌生了,但是使用tnsping有一个问题,就是连接超时,当然这个和网络的安全策略等密不可分,但是摆在我面前的一个问题是,现在有大量的服务器,每台...
  • 在操作系统上直接运行tnsping命令,就可以得到它的使用方法,如下所示: [ora10g@capaa admin]$ tnsping TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 08-JUL-2012 12:03:42 Copyright (c) ...
  • oracle tnsping

    2014-11-25 18:07:40
    tnsping.查看远程的listener是否启动 用法: tnsping 连接名 次数 连接名:tnsnames.ora里配置的连接名 次数:测试次数 示例: C:\Documents and Settings\Administrator>tnsping test 2 TNS Ping Utility for 32-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,158
精华内容 463
关键字:

tnsping