热门标签 | 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

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

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


推荐阅读
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文介绍如何在Linux服务器之间使用SCP命令进行文件传输。SCP(Secure Copy Protocol)是一种基于SSH的安全文件传输协议,支持从远程机器复制文件到本地服务器或反之。示例包括从192.168.45.147复制tomcat目录到本地/home路径。 ... [详细]
  • 本文详细介绍了 MySQL 中 LAST_INSERT_ID() 函数的使用方法及其工作原理,包括如何获取最后一个插入记录的自增 ID、多行插入时的行为以及在不同客户端环境下的表现。 ... [详细]
  • 本文介绍如何通过SSH协议使用Xshell远程连接到Ubuntu系统。为了实现这一目标,需要确保Ubuntu系统已安装并配置好SSH服务器,并保证网络连通性。 ... [详细]
  • 本文详细介绍如何使用Samba软件配置CIFS文件共享服务,涵盖安装、配置、权限管理及多用户挂载等关键步骤。通过具体示例和命令行操作,帮助读者快速搭建并优化Samba服务器。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 本文介绍了如何在Python中使用join()方法将列表中的元素连接成一个字符串。join()方法允许用户指定分隔符,从而灵活地生成所需格式的字符串。此外,我们还将探讨一些实际应用中的注意事项和技巧。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 本文深入探讨了 Java 编程语言的基础,特别是其跨平台特性和 JVM 的工作原理。通过介绍 Java 的发展历史和生态系统,帮助初学者理解如何编写并运行第一个 Java 程序。 ... [详细]
  • MATLAB实现n条线段交点计算
    本文介绍了一种通过逐对比较线段来求解交点的简单算法。此外,还提到了一种基于排序的方法,但该方法较为复杂,尚未完全理解。文中详细描述了如何根据线段端点求交点,并判断交点是否在线段上。 ... [详细]
author-avatar
F_hai丽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有