热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

配置tnsping跟踪来诊断OracleNet连接

一般我们都是借助OracleClient(非JDBC)的OCI接口方式进行Oracle连接,配置本地连接名localname。一旦连接过程出现错误,我们

一般我们都是借助Oracle Client(非JDBC)的OCI接口方式进行Oracle连接,配置本地连接名local name。一旦连接过程出现错误,我们

用客户端连入Oracle服务器的主要方法。从组件相关方角度看,Oracle Net连接过程涉及到很多的技术和过程,例如客户端连接方式、连接字符串、监听器行为和数据库实例。

一般我们都是借助Oracle Client(非JDBC)的OCI接口方式进行Oracle连接,配置本地连接名local name。一旦连接过程出现错误,,我们的诊断策略也是从外到内,从客户端到服务器逐步诊断。

不同用户下使用tnsping+客户端服务名,结果不同

Oracle中tnsping命令解析

1、Tnsping简述

Tnsping是Oracle提供的诊断连接动作的重要方法。我们在客户端上使用tnsping xxx(本地连接名),可以快速的定位连接过程中错误,进行问题判断。从功能上看,tnsping能够帮助我们解决几个方面问题:

ü 本地Oracle Net配置文件解析:sqlnet.ora、tnsname.ora是我们客户端最重要的两个配置文件。由于历史的原因,Oracle基础配置文件很多是文本格式,Oracle Net三个核心配置文件尤其如此。netca等配置工具也只是一个文本文件写入读取功能。很多朋友进行配置的时候,图简单直接进行文本复制黏贴,容易引起问题故障。tnsping可以模拟连接过程,对配置文件中的名称进行预解析,如果存在格式错误,解析必定失败;

ü 服务器端监听器状态诊断:在远程连接数据库服务器的时候,监听器是一个不能回避的组件。tnsping是可以进行网络访问判断的,如果监听器没有运行、或者没有在指定的端口上运行,tnsping是可以做出判断提示信息的;

ü 注册服务有限验证:在本地连接名称中,服务名、主机名、监听器伺候端口、连接协议是连接信息的几个要素。服务名是tnsping不能验证的对象,也就是说。如果监听器注册信息(动态注册、静态注册)中不存在连接的服务名,tnsping是不会报错的;

C:\Documents and Settings\liuzy>tnsping chdb

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 12-5月 -

2014 17:58:21

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

已使用的参数文件:

D:\app\Administrator\product\11.2.0\client_1\network\admin\sqlnet.ora

已使用 TNSNAMES 适配器来解析别名

尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.4.53)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = chdb)))

OK (30 毫秒)

对于tnsping,我们除了最后的结果信息之后,还可以使用跟踪trace方法,查看每个步骤执行情况,以及在哪个步骤出现问题。本篇就介绍如何从客户端进行tnsping过程跟踪。

2、配置跟踪参数

默认情况下,tnsping跟踪功能是关闭的。我们需要在Oracle Net配置文件sqlnet.ora中进行手工的配置。注意:配置是在客户端,我们执行tnsping命令也是在客户端进行。

--客户端sqlnet.ora,位置$ORACLE_HOME/network/admin

# sqlnet.ora Network Configuration File: D:\app\Administrator\product\11.2.0\client_1\network\admin\sqlnet.ora

# Generated by Oracle configuration tools.

# This file is actually generated by netca. But if customers choose to

# install "Software Only", this file wont exist and without the native

# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

TNSPING.TRACE_LEVEL=SUPPORT

TNSPING.TRACE_DIRECTORY=D:\app\Administrator\product\11.2.0\client_1\network\trace

最后的tnsping.trace_level和tnsping.trace_directory标注了tnsping的跟踪级别和跟踪文件存放目录。和其他Oracle跟踪操作相同,tnsping也支持不同跟踪级别粒度,可以依据我们的目的不同进行调整。

目前我们trace_level可选的参数有:off、user、admin和support。在实验中我们选择了support级别,属于比较细的跟踪粒度。

trace_directory是指定跟踪目录位置。跟踪文件名称统一为tnsping.trc。

3、执行跟踪过程

使用tnsping连接一个本地连接名cogdb。

C:\Documents and Settings\liuzy>tnsping cogdb

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 08-5月 -

2014 12:17:43

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

已使用的参数文件:

D:\app\Administrator\product\11.2.0\client_1\network\admin\sqlnet.ora

已使用 TNSNAMES 适配器来解析别名

尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.3.101)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = cogdb)))

OK (30 毫秒)

在指定目录中,我们可以看到生成的跟踪文件。

D:\app\Administrator\product\11.2.0\client_1\network\trace

tnsping.trc

下面就是对跟踪文件的解析。

更多详情见请继续阅读下一页的精彩内容:


推荐阅读
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
author-avatar
黑旦儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有