oracle hanganalyze工具的使用

使用hanganalyze分析数据库hang 立即下载

hanganalyze是ORACLE的一款性能诊断工具,这个款工具是从oracle 8.0.6开始可用,在oracle数据库出现严重的性能问题的时候它可以帮助你定位问题所在。

 

1.首先说说hanganalyze工具的用法

对于单实例数据库语法如下

alter session set events 'immediate trace name hanganalyze level <level>';

或则使用oradebug进行hanganalyze

conn /as sysdba

SQLPLUS>oradebug hanganalyze <level>;

 

对于RAC数据的语法如下

con /as sysda

SQLPLUS> oradebug setmypid

SQLPLUS>oradebug setinst all

SQLPLUS>oradebug -g def hanganalyze <level>

 

 

关于level的说明:

10     Dump all processes (IGN state)

5      Level 4 + Dump all processes involved in wait chains (NLEAF state)

4      Level 3 + Dump leaf nodes (blockers) in wait chains (LEAF,LEAF_NW,IGN_DMP state)

3      Level 2 + Dump only processes thought to be in a hang (IN_HANG state)

1-2    Only HANGANALYZE output, no process dump at all

#############################

[level  4] :  23 node dumps -- [LEAF] [LEAF_NW] [IGN_DMP]

[level  5] :  36 node dumps -- [NLEAF]

[level 10] : 130 node dumps -- [IGN]

 

 

 

2.dump文件的分析

 

下面是一个例子:

[oracle@SHDBService01 ~]$ more /data/oracle/admin/ora10g/udump/ora10g_ora_28378.trc

/data/oracle/admin/ora10g/udump/ora10g_ora_28378.trc

Oracle Database10gEnterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP,DataMining and Real Application Testing options

ORACLE_HOME = /data/oracle/product/10.2.1

System name:

Linux

Node name:

SHDBService01

Release:

 

2.6.9-67.ELlargesmp

Version:

 

#1 SMP Wed Nov 7 14:07:22 EST 2007

Machine:

 

x86_64

Instance name: ora10g

Redo thread mounted by this instance: 1

Oracle process number: 62

Unix process pid: 28378, image: oracle@SHDBService01 (TNS V1-V3)

 

*** ACTION NAME:() 2009-08-21 13:36:46.238

*** MODULE NAME:(sqlplus@SHDBService01 (TNS V1-V3)) 2009-08-21 13:36:46.238

*** SERVICE NAME:(SYS$USERS) 2009-08-21 13:36:46.238

*** SESSION ID:(532.3192) 2009-08-21 13:36:46.238

*** 2009-08-21 13:36:46.238

==============

HANG ANALYSIS:

==============

Open chains found:

Chain 1 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :

<0/542/2126/0xd1006f28/25642/SQL*Net message from client>

-- <0/1097/44386/0xd2001048/26064/enq: TX - row lock contention>

Other chains found:

Chain 2 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :

<0/532/3192/0xd1007710/28378/No Wait>

Chain 3 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :

<0/534/3/0xd10096b0/30838/Streams AQ: waiting for time man>

Chain 4 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :

<0/539/3/0xd1008ec8/30830/Streams AQ: qmn coordinator idle>

Chain 5 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :

<0/541/2497/0xd1005f58/16409/jobq slave wait>

Chain 6 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :

<0/1099/3/0xd2002fe8/30840/Streams AQ: qmn slave idle wait>

Extra information that will be dumped at higher levels:

[level 4] :  1 node dumps -- [REMOTE_WT] [LEAF] [LEAF_NW]

[level 5] :  5 node dumps -- [SINGLE_NODE] [SINGLE_NODE_NW] [IGN_DMP]

[level 6] :  1 node dumps -- [NLEAF]

[level 10] : 17 node dumps -- [IGN]

 

State of nodes

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

[531]/0/532/3192/0xd13bd850/28378/SINGLE_NODE_NW/1/2//none

[532]/0/533/655/0xd13bedb8/19321/IGN/3/4//none

[533]/0/534/3/0xd13c0320/30838/SINGLE_NODE/5/6//none

[538]/0/539/3/0xd13c6e28/30830/SINGLE_NODE/7/8//none

[540]/0/541/2497/0xd13c98f8/16409/SINGLE_NODE/9/10//none

[541]/0/542/2126/0xd13cae60/25642/LEAF/11/12//1096

[542]/0/543/1/0xd13cc3c8/30755/IGN/13/14//none

[543]/0/544/1/0xd13cd930/30753/IGN/15/16//none

[544]/0/545/1/0xd13cee98/30751/IGN/17/18//none

[545]/0/546/1/0xd13d0400/30749/IGN/19/20//none

[546]/0/547/1/0xd13d1968/30746/IGN/21/22//none

[547]/0/548/1/0xd13d2ed0/30744/IGN/23/24//none

[548]/0/549/1/0xd13d4438/30734/IGN/25/26//none

[549]/0/550/1/0xd13d59a0/30732/IGN/27/28//none

[550]/0/551/1/0xd13d6f08/30730/IGN/29/30//none

[551]/0/552/1/0xd13d8470/30728/IGN/31/32//none

[1096]/0/1097/44386/0xd23cee98/26064/NLEAF/33/34/[541]/none

[1098]/0/1099/3/0xd23d1968/30840/SINGLE_NODE/35/36//none

[1099]/0/1100/6/0xd23d2ed0/30861/IGN/37/38//none

[1101]/0/1102/1/0xd23d59a0/30742/IGN/39/40//none

[1102]/0/1103/1/0xd23d6f08/30736/IGN/41/42//none

[1651]/0/1652/3/0xd13d3c50/30858/IGN/43/44//none

[1653]/0/1654/1/0xd13d6720/30738/IGN/45/46//none

[2204]/0/2205/1/0xd03d6720/30740/IGN/47/48//none

====================

END OF HANG ANALYSIS

====================

 

 

open chains部分例子

Chain 1 : <cnode/sid/sess_srno/proc_ptr/ospid/wait_event> :

<0/542/2126/0xd1006f28/25642/SQL*Net message from client>

-- <0/1097/44386/0xd2001048/26064/enq: TX - row lock contention>

Other chains found:

 

sid        = Session ID

sess_srno  = Serial#

proc_ptr   = Process Pointer

ospid      = OS Process Id

wait_event = Waitevent

cnode      = Node Id (Only available since Oracle9i)

 

State of nodes部分例子:

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

[541]/0/542/2126/0xd13cae60/25642/LEAF/11/12//1096

[1096]/0/1097/44386/0xd23cee98/26064/NLEAF/33/34/[541]/none

 

 

Nodenum   = This is secuencial number used by HANGANALYZE to identify each session

 sid       = Session ID

 sess_srno = Serial#

 ospid     = OS Process Id

 state     = State of the node

 adjlist   = adjacent node (Usually represents a blocker node)

 predecessor = predecessor node (Usually represents a waiter node)

 cnode     = Node number (Only available since Oracle9i)

 

IN_HANG:This might be considered as the most critical STATE. Basically a node in this state is involved in a deadlock, or is hung. Usually there will be another “adjacent node” in the same status. For example:

 

LEAF and LEAF_NW:Leaf nodes are considered on top of the wait chain (usually blockers). They are considered “Blockers” when there is another session waiting. This can be easily identified using the “predecesor” field. If there is a node referenced in the ‘prdecessor’ field, the node is considered as “blocker”, otherwise it is considered as a “slow” session waiting for some resource.

The difference between LEAF and LEAF_NW is that LEAF nodes are not waiting for something, while LEAF_NW are not waiting or may be using the CPU

 

 

可以看出上面例子中看出

 

session 542  2126阻塞了session 1097 44386.

 

 

 

3.在很多情况下如果数据库HANG住则无法登陆sqlplus,这时如果想要对系统进行hanganalyze可以加参数登录sqlplus

具体语法如下:

 

[oracle@SHDBService01 ~]$ sqlplus -prelim /nolog

 

SQL*Plus: Release 10.2.0.4.0 - Production on Fri Aug 21 15:42:23 2009

 

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

 

SQL> conn /as sysdba

Prelim connection established

SQL>

 

 

prelim参数只对10g以后的版本有效。

 

10g以前的版本不能登录SQLPLUS时可以使用dbx或则gdb。


无人机+消防车:高楼灭火系统技术详解 传统的消防设备,如登高车、车载水枪、水炮和高喷车,在50米以上高度的火源面前往往力不从心,100米以上高层火灾则更加依赖消防员“爬楼”灭火,效率低下且风险极高。消防水带:采用聚乙烯丝材质,超轻、耐腐蚀、强度高,能够携带大量水或灭火泡沫进行高空喷水灭火作业。“无人机+消防车”高楼灭火系统主要由消防车和无人机两部分组成,通过机车联动实现高效灭火。高效灭火:无人机能够快速到达高层建筑顶部或指定位置进行灭火作业,大大提高了灭火效率。空压泡沫系统:配备超大水箱,支持长时间供应灭火泡沫,满足无人机灭火剂的需求。 阅读详情

相关推荐

VIVADO中的IP核在MATLAB中仿真

VIVADO中的IP核在MATLAB中仿真项目简述VIVADO建立FFT IP核MATLAB调用FFT IP核 项目简述 我们都会用MATLAB进行算法验证,但是经常会发现如果VIVADO中调用了IP核,那么最终会发现VIVADO与MATLAB之间的数据不可以统一的对应起来。那么,MATLAB验证的效果就会大大下降,那么可不可以想办法将VIVADO中的IP核封装成一个函数在MATLAB中调用呢?答案是可以的。这篇博客主要以FFT的IP核为例讲解封装成一个函数并且成功在MATLAB中调用。 本次实验所使用的软

zhangningning1996的博客 6992

oracle hang analyze,什么是HANGANALYZE,如何使用HANGANALYZE

数据库HANG住是计较头痛的事情,如何找到HANG住的原因,是DBA必须面临的课题。当数据库HANG住的时候,大多数DBA往往是通过V$SESSION_WAIT视图来进行分析。实际上Oracle有一个十分有效的工具----hanganalyze。HANGANALYZE可以十分清晰的将HANG住的信息告诉DBA,便于DBA进行进一步分析。Hanganalyze是从Oracle 8i r2(8.1.6...

weixin_29439509的博客 528

利用Openlayers4实现地图遮罩效果(二)

之前实现的遮罩效果,在深色背景的底图上,对要突出的区域采用半透明遮罩,以此来突出该区域。但是有时底图颜色偏白,这时候不再适合对要突出的区域采用遮罩,而是要对突出区域之外进行遮罩处理。两种效果的对比入下图: ...

此爱如少年 6399

Oracle HANGANALYZE

环境: OS:Oracle Linux As 5.5 DB:11.2.0.1 RAC 如下我们通过使用hangalyze获取到两个会话更新同一行数据的等待事件情况. 1.session1更新行数据 SQL> create table tb_test (id number,name varchar2(10)) tablespace users; Table creat

u014429186的博客 766

CTP开发实战:如何高效处理预埋单与委托单的完整流程(附代码示例)

本文深入探讨了CTP开发中预埋单与委托单的完整处理流程,从订单生命周期理解、核心代码实现到异步事件处理与系统健壮性构建。通过详细的代码示例和状态机分析,为开发者提供了构建高可靠订单处理系统的实战指南,重点解决了状态同步、异常恢复等关键工程挑战。

weixin_29234239的博客 117

黑猫带你学UFS协议第2篇:UFS相关名词释义

本文依据UFSJEDEC3.1、个人工作经验整理而成,如有错误请留言。文章为个人辛苦整理,付费内容,已加入原创保护,禁止私自转载。文章所在专栏《黑猫带你学UFS协议详解》

黑猫奥利奥的博客 5305

Oracle Hang分析

1. 数据库hang的几种可能性 oracle 死锁 或者系统负载非常高比如cpu使用或其他一些锁等待很高都可能导致系统hang住,比如大量的DX锁。 通常来说,我们所指的系统hang住,是指应用无响应,普通的sqlplus...

congqiongsheng3499的博客 336

4.4 直流无刷电机(BLDC):控制器硬件设计

摘要 本文详细阐述了直流无刷电机(BLDC)控制器的硬件设计要点。控制器硬件主要包括微处理器单元、功率驱动模块、信号检测电路、通信接口和电源管理模块。在微处理器选型方面,分析了ARM Cortex-M系列、DSP等架构的适用场景,并对比了不同处理器的性能参数。功率驱动模块设计重点包括栅极驱动电路、逆变桥热管理和电流保护机制。信号检测部分介绍了位置传感器接口和模拟信号调理技术。此外,还讨论了通信接口设计、电源管理方案以及硬件布局与EMC设计规范。最后强调了硬件测试验证的重要性,包括故障注入测试等验证方法。整体

技术工作者 185

oracle hang分析使用

oracle hang分析测试

ZHANG123HUO的博客 844

五.EtherCAT开发之STM32F407ZGt6+ LAN9253 外置EEPROM配置数据含义

EtherCAT从站简称ESC,ESC在上电过程中,会自动加载EEPROM中前7个字(1word = 2 byte)到ESC寄存器。ESC寄存器总是可以被EtherCAT主站通过EtherCAT总线访问,无论PDI接口寄存器配置什么值。EEPROM存储器中的前7个字,将决定ESC的工作模式。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 3468

三步实现Java分布式追踪:像“开灯”一样简单

摘要: 本文通过三步实现Java分布式追踪: 引入依赖:配置Spring Cloud Sleuth+Zipkin,自动埋点无需代码侵入; 启动服务:REST接口自动生成Trace/Span ID,日志可验证; 可视化分析:通过Zipkin UI查看调用链耗时和拓扑关系。 亮点:AOP自动埋点、零业务代码修改、支持多服务链路追踪,助力快速定位性能瓶颈。适用于微服务诊断,生产环境可调整采样率平衡性能。(150字)

墨夶的博客 2711

oracle hang analyze,如何分析ORACLE 数据库HANG

数据库HANG是十分严重的故障,对DBA具有一定的挑战性。系统HANG或者出现一些致命性的故障,那么DBA的第一工作要旨是尽快恢复系统运行。其次是要搞清楚系统故障的原因。本文老白介绍几个常用的分析工具的使用方法,并通过一个小例子介绍如何使用工具进行分析。1.几个主要分析工具及使用方法HANGANALYZE$sqlplus‘/as sysdba’SQL>ORADEBUGSETMYPIDS...

weixin_39564036的博客 446

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

oracle oradebug hanganalyze简单使用

先做一个简单事务锁等待: 窗口1: 窗口2:修改同样的数据 这时候我们会发现窗口2 的语句被卡住了。下面做个oradebug: 窗口3: 根据提示,打开所生成的trace文件,寻找有用的信息。 Chain 1: ----------------------------------------------------------------------------

killvoon的专栏 1190

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

oracle hang analyze,Oracle hanganalyze工具的使用

hanganalyze是ORACLE的一款性能诊断工具,这个款工具是从oracle 8.0.6开始可用,在oracle数据库出现严重的性能问题的时候它可以帮助你定位问题所在。1.首先说说hanganalyze工具的用法对于单实例数据库语法如下alter session set events 'immediate trace name hanganalyze level ';或则使用oradebug...

weixin_39539807的博客 329

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Oracle HANGANALYZE 功能诊断 DB hanging

<br /> <br />       Oracle 数据库可能因为hang住而产生严重的性能问题,而通过HANGANALYZE  功能产生的日志可以帮助我们快速的定位是否是2个或者多个进程死锁了,有多少进程收到影响。从而帮助我们诊断出数据库的问题。<br /> <br /> <br />一.  HANGANALYZE 的2种使用方式:<br />(1)The “HANGANALYZE” command is available since Oracle Release 8.1.6. In Oracle9i

David Dai -- Focus on Oracle 1万+

Oracle hanganalyze工具的使用

hanganalyze是ORACLE的一款性能诊断工具,这个款工具是从oracle 8.0.6开始可用,在oracle数据库出现严重的性能问题的时候它可以帮助你定位问题所在。 1.首先说说hanganalyze工具的用法 对于单实例数据库语法如下 alter session set events 'immediate trace name hanganalyze ...

weixin_33692284的博客 254

oracle hanganalyze和systemstate使用测试

为什么要使用hanganalyzeOracle 数据库“真的”hang住了,可以理解为数据库内部发生死锁。因为普通的DML死锁,oracle服务器会自动监测他们的依赖关系,并回滚其中一个操作,终止这种相互等待的局面。而当这种死锁发生在争夺内核级别的资源(比如说是pins或latches)时,Oracle并不能自动的监测并处理这种死锁。其实很多时候数据库并没有hang住,而只是由于数据库的性能问题,...

雨花石 964

Oracle HANGANALYZE 功能诊断 DB hanging

Oracle 数据库可能因为hang住而产生严重的性能问题,而通过HANGANALYZE  功能产生的日志可以帮助我们快速的定位是否是2个或者多个进程死锁了,有多少进程受到影响。 从而帮助我们诊断出数据库的问题。   一.  HANGANALYZE 的2种使用方式: (1) The “HANGANALYZE” command is available since Oracle Release

小宝老豆的专栏 1551
上一篇: oracle的io优化--db_writer_processes & dbwr_io_slaves对比
下一篇: Oracle AWR报告及统计数据之DB Time说明
launch_225
博客等级 码龄18年 125粉丝 356原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值