• 浅析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

  • 相关阅读:
    Educational Codeforces Round 67 D. Subarray Sorting
    2019 Multi-University Training Contest 5
    Educational Codeforces Round 69 (Rated for Div. 2) E. Culture Code
    Educational Codeforces Round 69 D. Yet Another Subarray Problem
    2019牛客暑期多校训练第六场
    Educational Codeforces Round 68 E. Count The Rectangles
    2019牛客多校第五场题解
    2019 Multi-University Training Contest 3
    2019 Multi-University Training Contest 2
    [模板] 三维偏序
  • 原文地址:https://www.cnblogs.com/smile233/p/8023022.html
Copyright © 2020-2023  润新知