oracle监听生成trace,监听器控制程序lsnrctl跟踪trace file
Oracle监听器是一个独立的数据库组件,在整个体系中扮演非常重要的作用。即使在windows平台上,监听器listener也被实现成为一个独立的进程程序。
在一些与网络相关的故障中,监听器相关故障占了很大部分。了解监听器的工作过程,分析每个环节出现问题的几率,是监听器发生故障时我们常常需要做的事情。这个过程我们就需要使用监听器trace功能。
本篇主要介绍如何使用lsnrctl工具获取到监听器跟踪文件(trace file),以及获取的跟踪级别。
1、环境介绍
本次我们选择10g监听器进行试验。
Microsoft Windows XP [版本5.1.2600]
(C)版权所有1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>lsnrctl
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-12月-2011 20:31:59
Copyright (c) 1991, 2005, Oracle.All rights reserved.
欢迎来到LSNRCTL,请键入"help"以获得信息。
注意,lsnrctl并不是监听器程序本身,而是监听器控制的一个小工具。借助这个工具,我们可以操纵监听器行为、设置监听器参数。Lsnrctl命令行使用的命令很简单。
LSNRCTL> help
以下操作可用
星号(*)表示修改符或扩展命令:
startstopstatus
servicesversionreload
save_configtracechange_password
quitexitset*
show*
此时,数据库尚未启动。监听器处于运行状态。
LSNRCTL> status
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)))
LISTENER的STATUS
------------------------
别名LISTENER
版本TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
启动日期19-12月-2011 20:28:53
正常运行时间0天0小时3分32秒
跟踪级别off
安全性ON: Local OS Authentication
SNMPOFF
监听程序参数文件D:\oracle\network\admin\listener.ora
监听程序日志文件D:\oracle\network\log\listener.log
(篇幅原因,有省略……)
LSNRCTL>
此时,没有进行跟踪文件输出。
2、简单跟踪文件生成
我们先介绍如何使用一般监听跟踪方法。该配置从lsnrctl设置。在lsnrctl配置中,有一些与trace相关的内容。
LSNRCTL> show
show之后提供了以下操作
星号(*)表示修改符或扩展命令:
rawmodedisplaymode
rulestrc_file
trc_directorytrc_level
log_filelog_directory
(篇幅原因,有省略……)
其中,以trc开头的几个参数显然是与trace文件操作生成有关。我们可以使用show命令加以显示。
--跟踪文件名称
LSNRCTL> show trc_file
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=www-0e6111dff74)(PORT=1521)))
LISTENER参数"trc_file"设为listener.trc
命令执行成功
--跟踪文件目录
LSNRCTL> show trc_directory
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)
))
LISTENER参数"trc_directory"设为D:\oracle\network\trace
命令执行成功
--跟踪程度
LSNRCTL> show trc_level
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)
))
LISTENER参数"trc_level"设为off
命令执行成功
通过上面参数,我们可以配置跟踪文件的位置、名称和跟踪级别。
开启跟踪,我们可以使用trace命令。具体格式如下:
LSNRCTL> help trace
trace OFF | USER | ADMIN | SUPPORT [] : set tracing to the specif
ied level
注意,我们开启跟踪是有三个级别的,分别为user、admin和support级别。具体含义如下:
üOff或者数值0:表示对当前的监听器不开启跟踪;
üUser或者数值4:user trace information;
üAdmin或者数值10:administration trace information;
üSupport或者数值16:Oracle support Services trace information;
通常,我们使用support级别作为跟踪。
LSNRCTL> trace12
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)
))
打开的跟踪文件:D:\oracle\network\trace\listener.trc
LSNRCTL> show trc_level
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)
))
LISTENER参数"trc_level"设为admin
命令执行成功
从返回信息和status信息,都可以看出此时监听器是被监听状态。
LSNRCTL> status
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)))
LISTENER的STATUS
------------------------
别名LISTENER
版本TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
启动日期19-12月-2011 20:28:53
正常运行时间0天0小时15分5秒
跟踪级别admin
安全性ON: Local OS Authentication
SNMPOFF
监听程序参数文件D:\oracle\network\admin\listener.ora
监听程序日志文件D:\oracle\network\log\listener.log
监听程序跟踪文件D:\oracle\network\trace\listener.trc
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))
(篇幅原因,有省略……)
LSNRCTL>
我们可以在这个过程中,尝试进行动态注册或者新连接连入等操作。最后关闭监听。
LSNRCTL> trace off
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)))
命令执行成功
LSNRCTL> status
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)
))
LISTENER的STATUS
------------------------
别名LISTENER
版本TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
启动日期19-12月-2011 20:28:53
正常运行时间0天0小时17分16秒
跟踪级别off
安全性ON: Local OS Authentication
SNMPOFF
监听程序参数文件D:\oracle\network\admin\listener.ora
监听程序日志文件D:\oracle\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))
此时,我们到监听目录下,就可以找到监听文件。下面是片段:
nsglrespond: entry
nsdo: cid=3, pcode=67, *bl=97, *what=1, uflgs=0x0, cflgs=0x3
nsdo: rank=64, nsctxrnk=0
nsdo: nsctx: state=8, flg=0x100400c, mvd=0
nsdo: gtn=206, gtc=206, ptn=10, ptc=2011
nsdo: 97 bytes to NS buffer
nsdo: nsctxrnk=0
nsglrespond: exit
nsgldissolve: entry
nstimarmed: no timer allocated
nsdo: cid=3, pcode=66, *bl=0, *what=0, uflgs=0x0, cflgs=0x2
nsdo: rank=64, nsctxrnk=0
nsdo: nsctx: state=8, flg=0x1004008, mvd=0
nsevunreg: cid=3, sgt=0, rdm=2
上面每一行记录,都对应监听器程序的动作信息。当然,直观上是不容易读懂的。我们以后再讨论如何读懂监听跟踪文件内容。
3、带时间信息的监听跟踪文件
上面部分中,我们已经获得了简单的跟踪文件。但是我们诊断问题的时候,通常是希望得到每个阶段操作执行时间的长短,从而发现问题瓶颈。
例如:我们发现通过监听器连接速度很慢,但是绕过监听器直接连接的速度很快。说明连接操作中,一个或者几个环节存在性能问题。具体是哪个?还是需要进一步时间间隔判断。
我们想要获得时间信息,需要配置两个参数在listener.ora文件中。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = www-0e6111dff74)(PORT = 1521))
)
)
TRACE_TIMESTAMP_LISTENER=true
TRACE_LEVEL_LISTENER=16
首先,需要在参数文件listener.ora中,加入两个参数取值。其中trace_timestamp_表示是否开启跟踪时间功能。如果设置为true/on,表示记录跟踪事件的时候,同时会记录上具体的时间。
另一个参数trace_level_表示启动监听程序时的跟踪级别。要让这两个参数生效,需要reload或者重新启动监听器。
LSNRCTL> start
启动tnslsnr:请稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系统参数文件为D:\oracle\network\admin\listener.ora
写入D:\oracle\network\log\listener.log的日志信息
写入D:\oracle\network\trace\listener.trc的跟踪信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)
))
LISTENER的STATUS
------------------------
别名LISTENER
版本TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期19-12月-2011 21:47:12
正常运行时间0天0小时0分1秒
跟踪级别support
安全性ON: Local OS Authentication
SNMPOFF
监听程序参数文件D:\oracle\network\admin\listener.ora
监听程序日志文件D:\oracle\network\log\listener.log
监听程序跟踪文件D:\oracle\network\trace\listener.trc
(篇幅原因,省略部分……)
LSNRCTL> trace 0
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)
))
命令执行成功
LSNRCTL> trace 16
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)
))
打开的跟踪文件: D:\oracle\network\trace\listener.trc
命令执行成功
此时生成的trace文件中,有如下内容:
[19-12月-2011 21:53:40:281] nsglrespond: entry
[19-12月-2011 21:53:40:281] nsdo: entry
[19-12月-2011 21:53:40:281] nsdo: cid=5, pcode=67, *bl=97, *what=1, uflgs=0x0, cflgs=0x3
[19-12月-2011 21:53:40:281] nsdo: rank=64, nsctxrnk=0
[19-12月-2011 21:53:40:281] nsdo: nsctx: state=8, flg=0x100400c, mvd=0
[19-12月-2011 21:53:40:281] nsdo: gtn=206, gtc=206, ptn=10, ptc=2011
[19-12月-2011 21:53:40:281] nsdo: 97 bytes to NS buffer
[19-12月-2011 21:53:40:281] nsdo: nsctxrnk=0
[19-12月-2011 21:53:40:281] nsiooverflow: entry
[19-12月-2011 21:53:40:281] nsdo: normal exit
[19-12月-2011 21:53:40:281] nsglrespond: exit
[19-12月-2011 21:53:40:281] nsgldissolve: entry
[19-12月-2011 21:53:40:281] nsdisc: entry
[19-12月-2011 21:53:40:281] nsclose: entry
记录在毫秒级别的跟踪信息。
4、结论
监听器是一个涉及网络、Oracle实例、连接、客户端和Oracle Net复杂组件。我们遇到的很多问题,根源其实都与监听器有或多或少的关系。掌握跟踪文件,对于监听器诊断至关重要。
oracle监听生成trace,监听器控制程序lsnrctl跟踪trace file相关推荐
- mysql 监听器_实例讲解Oracle监听口令及监听器安全
很多人都知道,Oracle的监听器一直存在着一个安全隐患,假如不设置安全措施,那么能够访问的用户就可以远程关闭监听器. 相关示例: D:lsnrctl stop eygle LSNRCTL for 3 ...
- oracle监听host配置,监听器listener.ora中HOST参数配置
4.Host使用IP地址 下面使用IP地址配置Host的情况,修改listener.ora文件. [Oracle@SimpleLinux admin]$ cat listener.ora # list ...
- oracle集群监听启动,在RAC中lsnrctl和srvctl操作监听区别
朋友今天询问了一个问题RAC中使用srvctl 操作监听和lsnrctl 操作监听结果不一样,下面我通过实验说明问题 0.listener.ora文件内容 LISTENER_RAC1 = (DESCR ...
- oracle 监听 lsnrctl 命令
listener control 监听控制 因为你在键入 lsnrctl 回车之后,就进入到监听控制界面. 在启动.关闭或者重启oracle监听器之前确保使用lsnrctl status命令检查 ...
- oracle监听_保存在,oracle 监听 lsnrctl 命令 (推荐)
oracle 监听 lsnrctl 命令 (推荐) listener control 监听控制 因为你在键入 lsnrctl 回车之后,就进入到监听控制界面. 在启动.关闭或者重启oracle监听器之 ...
- oracle 监听服务启动后停止
发现Oracle 监听服务启动后刷新又停止了,导致这种问题的有几种可能情况: 1.listener服务不正常,因此需要重建这个服务 方法一 :修改注册表 1>进入dos窗口,手工启动listen ...
- Linux环境 Oracle 监听和服务 日常操作
文章目录 一.Oracle监听 1.1. 查看Oracle监听运行状态 1.2. 启动Oracle监听 1.3. 关闭监听器 二.Oracle 服务 2.1. 以SYS用户身份登录Oracle 2.2 ...
- cmd删除oracle监听,oracle数据库监听删除
oracle 10G for linux常用命令 oracle 10G for linux常用命令 首先以Oracle用户登录 1. $/oracle/oracle/app/product/101/b ...
- oracle判断侦听状态,oracle 监听状态为BLOCKED
静态监听的状态是UNKNOWN.当数据库状态是OPEN时,动态监听是READY:当数据库状态是NOMOUNT时,动态监听状态是BLOCKED. LSNRCTL> status Connectin ...
最新文章
- 2021 AAAI Fellow名单重磅出炉,华人学者遗憾连续两年无缘入选 | AI日报
- 平台篇-58 HBase 平台实践和应用
- 记载下这个题中的语法(对这些语法的使用不熟悉)
- 华三服务器怎么设置系统启动模式,H3C 开局设置
- 安装Docker的三种方式
- C++ Regsvr32订购具体解释
- A1028[List Sorting] 小水题
- 海豚湾在哪_前任3再见前任里的海豚湾在哪 电影拍摄取景地点介绍
- 利用LU分解法的多项式拟合实验
- 【牛客网-公司真题-前端入门篇】——百度2021校招Web前端研发工程师笔试卷(第一批)
- 学习单片机的三个步骤
- Mybatis 缓存配置 ,如何禁用缓存与一些细节
- 武汉坚守第三十二天——鱼菜价格已超高,病死猪肉现武汉
- opencv之subtract
- 实时数据库简介和比较---PI
- android打印动画,Android实用View系列------TextView实现打印机效果
- 面临困难不知道如何抉择怎么办,《大话西游之大圣娶亲》观后感
- 对List中的map的key按中文拼音进行排序。
- 小程序实现canvas添加图文
- makefile学习笔记
热门文章
- 用程序实现:给一个不多于4位的正整数,求出它是几位数,逆序输出各位数字?
- 剑指 Offer第 11 天 双指针(简单)
- 12.2 关闭DLM 自动收集统计信息 (SCM0)ORA-00600之[ksliwat: bad wait time]
- CentOS 7.6 编译安装最新版本glibc2.30 实录
- 高铁盈利地图:东部赚翻 中西部普遍巨亏
- 中间件系列——EMQX 的集群搭建
- Centos7 上安装 FastDFS
- 中通开放平台简介——连锁门店解决方案
- mc服务器bug修复,我的世界服务器BUG解决办法大全
- 20210215 Cobalt Strike 重定器/转发器/红队反溯源手段