博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅析tnsping
阅读量:7176 次
发布时间:2019-06-29

本文共 1173 字,大约阅读时间需要 3 分钟。

首先,先弄清楚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

你可能感兴趣的文章
[c++11]多线程编程(五)——unique_lock
查看>>
漫谈promise使用场景
查看>>
Design Pattern的万剑归宗 => Mediator
查看>>
Javascript中的原型继承的一些看法与见解
查看>>
HackerRank:JavaScript 是最知名的编程语言
查看>>
Linux修改本地时间
查看>>
elasticsearch字符串包含查询
查看>>
5- Flask构建弹幕微电影网站-项目分析、搭建目录及模型设计
查看>>
Mysql四种常见数据库引擎
查看>>
《Kotin 极简教程》第7章 面向对象编程(OOP)(1)
查看>>
Chrome吃内存的能力可不是说着玩的!
查看>>
iStaing获500万美元投资,VR室内设计离我们还远吗?
查看>>
Java日志框架-Spring中使用Logback(Spring/Spring MVC)
查看>>
读书笔记--101个shell脚本 之#12--函数
查看>>
TCP/IP之(四)Delay ack 和 Nagle算法
查看>>
linux学习:selinux 禁用后(disabled)Linux系统无法正常启动解决
查看>>
关于tomcat和jetty对比(不喜欢jetty的勿看)
查看>>
grafana使用详解
查看>>
linux 文件同步 rsync+crontab
查看>>
git如何删除远程仓库的某次错误提交
查看>>