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

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

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

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

或则使用oradebug进行hanganalyze

conn /as sysdba

SQLPLUS>oradebug hanganalyze ;

对于RAC数据的语法如下

con /as sysda

SQLPLUS> oradebug setmypid

SQLPLUS>oradebug setinst all

SQLPLUS>oradebug -g def hanganalyze

关于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 Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining 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, p_w_picpath: 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 : :

<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 : :

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

Chain 3 : :

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

Chain 4 : :

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

Chain 5 : :

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

Chain 6 : :

<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 : :

<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

可以看出上面例子中看出

session542 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。

oracle hang analyze,Oracle hanganalyze工具的使用相关推荐

  1. oracle hang analyze,hanganalyze 分析数据库挂起

    0 概览 hanganaylze主要步骤: oradebugsetmypid oradebugunlimit --RAC环境 oradebugsetinstall --级别一般指定为3足够了 orad ...

  2. 看懂oracle trc文件,oracle 的 debug 工具 和 分析 trc 文件工具 ass.awk

    oracle的dump工具和分析trc文件工具ass.awk 之前介绍了oracle的一个hang住时的一个分析工具hanganalyze,这里再引入另外的一个工具,分析系统进程和单个进程的工具 1. ...

  3. Oracle hang 之sqlplus -prelim使用方法

    第一章  Oracle hang 之sqlplus -prelim使用方法 很多情况下,Oracle hang导致sqlplus无法连接,从而无法获得Oracle系统和进程状态,使得定位问题缺少强有力 ...

  4. Oracle hang 之sqlplus -prelim方法

       很多情况下,Oracle hang导致sqlplus无法连接,从而无法获得Oracle系统和进程状态,使得定位问题缺少强有力的依据. 所幸的是Oracle 10g推出了sqlplus -pr ...

  5. oracle for 记录数,可视化工具dbForge Documenter for Oracle全新上线!让您轻松记录Oracle数据库...

    dbForge Documenter for Oracle是一个用于记录Oracle数据库的便捷可视化工具.此Oracle文档工具以HTML,PDF和MARKDOWN文件格式自动生成整个Oracle数 ...

  6. macbook oracle 工具,Navicat for Oracle Mac 四种实用工具

    Navicat for Oracle Mac 凭借精心设计的用户界面,可以简便快捷地以安全且简单的方法创建.组织.访问和共享信息,优化 Oracle 管理.除了 Oracle 的核心功能外,Navic ...

  7. Oracle RDA(Remote Diagnostic Agent) 工具说明

    Oracle RDA(Remote Diagnostic Agent) 工具说明 分类: Oracle 性能调优 Oracle 高级知识  一.RDA 说明 RDA(RemoteDiagnostic ...

  8. oracle as sydba,Oracle数据库之SQL*Plus工具使用 sqlplus / as sysdba登录

    本文主要向大家介绍了Oracle数据库之SQL*Plus工具使用 sqlplus / as sysdba登录,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. A: 正常情况下 [ ...

  9. Oracle 补丁体系 及 opatch 工具 介绍

    本文转自:http://blog.csdn.net/tianlesoftware/article/details/5809526 一.CPU(Critical Patch Update) 一个CPU内 ...

最新文章

  1. (C#)如何利用Graphics画出一幅图表
  2. 两个时间的差值Java,Java如何找到两个时间之间的差值?
  3. java加载配置文件_java 读取和修改配置文件
  4. Atitit.web ui  组件化 vs  mvc
  5. 12. URI , URN, URL 区别
  6. Python+Android进行TensorFlow开发
  7. 手机工商银行显示服务器安装不了,工行网银助手无法安装怎么办?
  8. 打开计算机任务栏有桌面没,如何解决Win7任务栏不显示打开的窗口的问题
  9. MacBook连接打印机-惠普HP LaserJet Pro MFP M427fdn 连接方法
  10. 免费开源的拉曼光谱分析软件 Raman Spectral Analysis software
  11. 模块定义图(BDD)
  12. ABYY OCR 文字识别软件 V15. 安装教程
  13. python第三方库汇总
  14. C#--color颜色对照表
  15. 阿里云对象存储oss私有桶生成链接
  16. 【背包DP练习】洛谷 P5020货币系统 P1757通天之分组背包 P1064[NOIP2006 提高组]金明的预算方案 P5322 [BJOI2019]排兵布阵
  17. Avaya PBX sip trunk对接第三方sip server传递UUI的方法
  18. python身份验证(身份证号中提取出生日期及性别)。
  19. MnTTS: 开源蒙古语语音合成数据集及其基线模型
  20. Oracle Clob类型和Blob类型之间的转换

热门文章

  1. 牛客网–华为机试在线训练8:合并表记录
  2. 【深度学习】卷积计算与训练模型的几种方法
  3. 维纳滤波的详细讲解(同为小白,相互取暖)
  4. 代码块作用域内外的静态变量
  5. Batch Normalization的意义
  6. 对tensorflow中的tensor、placeholder及feed_dict的理解
  7. Win10环境下,SecureCRT连接不上虚拟机,显示连接超时Connection time out. 而且网络连接里没有网络适配器VMnet1和VMnet8,互ping也不同。...
  8. 【LOJ】#2230. 「BJOI2014」大融合
  9. 第四篇 NumPy基础:数组和⽮量计算
  10. Ncurses 命令行图形库