我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么使用hanganalyze

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么使用hanganalyze

本篇内容主要讲解“怎么使用hanganalyze”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用hanganalyze”吧!

hanganalyze 和systemstate还是不同的,hanganalyze 里面会有清晰的等待链、等待时间、callstack等,比较轻量级。systemstate 相对hanganalyze 信息较多,会有很多proces和session的信息,还会有shared pool的信息,但是看等待链比较吃力。

1.命令

(1)单实例
SQL>oradebug setmypid 
SQL>oradebug unlimit 
SQL>oradebug hanganalyze 3 
等1~2分钟 
SQL>oradebug hanganalyze 3 
等1~2分钟 
SQL>oradebug hanganalyze 3 
(2).RAC
SQL>oradebug setmypid 
SQL>oradebug unlimit 
SQL>oradebug -g all hanganalyze 3 
等1~2分钟 
SQL>oradebug -g all hanganalyze 3 
等1~2分钟 
SQL>oradebug -g all hanganalyze 3

2.解读trace文件

(1).State of nodes

([nodenum]/cnode/sid/sess_srno/session/ospid/state/start/finish/[adjlist]/predecessor):

[894]/0/895/60406/0xba362838/17792/NLEAF/261/264/[908]/1004

[908]/0/909/3031/0xba3754c8/16376/LEAF/262/263//894

[1004]/0/1005/23626/0xba3f61c8/18465/NLEAF/405/406/[894][908]/none

nodenum:定义每个session的序列号

sid:session的sid

sess_srno:session的Serial#

ospid:OS的进程ID

state:node的状态

adjlist:表示blocker node

predecessor:表示waiter node

State有如下几种状态:

(1)IN_HANG:如果Session处于这种状态,表示Session遇到deadlock或者处于hung状态。

(2)LEAF/LEAF_NW:这些Session通常是“blocker”或者是等待某些资源的“slow” node,通过字段“predecessor” 可以很容易标识出这些node。

(3)NLEAF:这些Session通常被认为是“stuck”会话,意味着这些Session在等待某些Session的资源。通过字段“adjlist”可以很容易的定义该进程的blocker。

(4)IGN/IGN_DMP:这些Session通常是IDLE Session。

(5)SINGLE_NODE and SINGLE_NODE_NW 与leaf和leaf_nw相同,只是它们没有依赖于它们的进程

根据上述信息可以得出:

[1004] block [894][908]

[894] block [908]

(2).CYCLES 处于死锁状态的会话之间的进程依赖性

Cycle 1 : <sid/sess_srno/proc_ptr/ospid/wait_event> :
    <980/3887/0xe4214964/24065/latch free>
 -- <2518/352/0xe4216560/24574/latch free>
 -- <55/10/0xe41236a8/13751/latch free>

(3).Found blocker会话,通常情况是1个session block了很多session会在这部分显示

Found 21 objects waiting for <sid/sess_srno/proc_ptr/ospid/wait_event>
    <55/10/0xe41236a8/13751/latch free>
Found 12 objects waiting for <sid/sess_srno/proc_ptr/ospid/wait_event>
    <2098/2280/0xe42870d0/3022/db file scattered read>
Found 12 objects waiting for <sid/sess_srno/proc_ptr/ospid/wait_event>
    <1941/1783/0xe41ac9e0/462/No Wait>
Found 12 objects waiting for <sid/sess_srno/proc_ptr/ospid/wait_event>
    <980/3887/0xe4214964/24065/latch free>

(4).Chain 等待链上涉及的会话。等待链意味着一个会话正在阻塞一个或多个其他会话。

Open chains found:
Chain 1 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
    <0/909/3031/0xbcc5dc48/16376/SQL*Net message from client>
 -- <0/895/60406/0xbcc54448/17792/enq: TX - row lock contention>
 -- <0/1005/23626/0xbcc5fc48/18465/enq: TX - row lock contention>

(5).Other chains found 不是被Open chains上链阻塞的进程

Chain 2 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
    <0/820/40757/0xbcc61448/20057/jobq slave wait>
Chain 3 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
    <0/882/36187/0xbcc68448/19717/jobq slave wait>
Chain 4 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
    <0/985/3438/0xbcc50448/20054/No Wait>
Chain 5 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
    <0/1072/2/0xbcbf3448/20322/Streams AQ: qmn slave idle wait>
Chain 6 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
    <0/1079/2/0xbcbf0448/20117/Streams AQ: waiting for time man>
Chain 7 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :
    <0/1085/1/0xbcbed448/20070/Streams AQ: qmn coordinator idle>

到此,相信大家对“怎么使用hanganalyze”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么使用hanganalyze

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2024-04-02
2024-04-02

Matplotlib怎么使用

这篇文章给大家分享的是有关Matplotlib怎么使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Matplotlib是一个Python语言的2D绘图库,它支持各种平台,并且功能强大,能够轻易绘制出各种专业的图
2023-06-02

怎么使用Explain

本篇内容主要讲解“怎么使用Explain”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Explain”吧!执行计划 (Execution Plan)什么执行计划?Postgres 有一个
2023-06-03

怎么使用ReactiveObjC

这篇文章给大家分享的是有关怎么使用ReactiveObjC的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述RAC架构框架图信号流程基本使用1、基本控件UITextField//监听文本输入 [[_textFie
2023-06-15

怎么使用Try

这篇文章主要介绍“怎么使用Try”,在日常操作中,相信很多人在怎么使用Try问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Try”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!Java的Option
2023-06-15

Jpcap怎么使用

本篇内容主要讲解“Jpcap怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Jpcap怎么使用”吧!一。我们为什么需要Jpcap?Java的.net包中,给出了传输层协议 TCP和UDP有
2023-06-17

pandas.DataFrame.iloc怎么使用

这篇文章主要介绍了pandas.DataFrame.iloc怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇pandas.DataFrame.iloc怎么使用文章都会有所收获,下面我们一起来看看吧。ilo
2023-07-02

编程热搜

目录