系统Hang住时用oradebug分析的方法
来源:互联网 发布:快速模板匹配算法 编辑:程序博客网 时间:2024/05/16 11:04
系统Hang住时用oradebug分析的方法
某个用户做分析表的操作时,进程被阻塞,library cache lock,引起阻塞的进程也就是普通的查询该表的语句。
原因是有很多这个表相关的SQL在执行,产生这方面的冲突,分析的时候要修改相关的统计数据,而统计数据对于SQL分析是有影响的,如果一个SQL在执行过程中,是不允许修改和表相关的一些信息的。
如果系统hang住了,可以使用oradebug做一个HANGANALYZE来分析。
HANGANALYZE是系统级的分析,属于轻量级分析,不会对系统产生影响。
例如做一个1级的分析:
做的方法分两部
在SQLPLUS里,用SYS账号
1、 oradebug setmypid
2、 oradebug hanganalyze 1
之后将会生成一个trace报告,例如以下内容。
==============
HANG ANALYSIS:
==============
Open chains found:
Chain 1 : <sid/sess_srno/proc_ptr/ospid/wait_event> :
<48/29750/0x3ed60060/7856/PX Deq: Join ACK>
-- <141/31823/0x3ed5d680/2291/library cache pin>
Chain 2 : <sid/sess_srno/proc_ptr/ospid/wait_event> :
<76/16377/0x3ed554b0/6507/No Wait>
Chain 3 : <sid/sess_srno/proc_ptr/ospid/wait_event> :
<98/8617/0x3ed65c80/4550/No Wait>
说明:
nodenum:定义每个session的序列号
sid:session的sid
sess_srno:session的Serial#
ospid:OS的进程ID
state:node的状态
adjlist:表示blocker node
predecessor:表示waiter node
示例中,SID=141的就是被HANG主的会话,SID=48就是阻塞者。
Sid=48的这个进程挂死了,但是他持有了library cache pin,所以阻塞了141,杀掉48(OSPID=7856)就解决问题了。
而后根据等待事件的信息,具体原因具体分析。
HANGANALYZE报告里的阻塞有可能是HANG住,也有可能只是由于比较慢引起的,所以在分析的时候,可以做一个HANGANALYZE,然后隔几分钟再做一次,两次对比着看,如果是比较慢引起的,两次报告的情况会发生变化,如果是HANG住了,是不会变化的
- 系统Hang住时用oradebug分析的方法
- 【转】系统Hang住时用oradebug分析的方法
- 系统HANG住分析工具及方法
- 系统HANG住分析工具及方法
- Solaris 上调试系统 hang 的总结
- 应用服务器发生 hang 的诊断方法
- 应用服务器发生 hang 的诊断方法
- oradebug的使用
- oradebug
- oradebug
- oradebug
- oradebug
- oradebug
- oradebug
- IE hang 分析
- 一条hang住数据库的SQL的分析
- 当你的Solaris系统boot时hang住怎么办?
- Oracle11G密码延迟验证导致的系统HANG住
- 字典树[Trie]
- 变量和基本类型
- FLASH内存优化13条
- 红薯 使用Microsoft Web Application Stress Tool对web进行压力测试
- 二、数据类型、运算符和表达式
- 系统Hang住时用oradebug分析的方法
- ACMSTEP 1.2.2 A+B Coming //超级水题 控制格式输入输出(CC++)
- GitHub简介
- 批量删除
- ORADEBUG 学习笔记
- jQuery最佳实践
- 手机基站伪装潜伏引强烈关注
- 创业故事:挖人的手段
- 创意手机APP汇总