千家信息网

如何进行oradebug诊断系统问题的分析

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,如何进行oradebug诊断系统问题的分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。oracle hanganalyzehang
千家信息网最后更新 2026年11月01日如何进行oradebug诊断系统问题的分析

如何进行oradebug诊断系统问题的分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

oracle hanganalyze
hanganalyze有如下几种level:
10 Dump all processes (IGN state)
5 Level 4 + Dump all processes involved inwait chains (NLEAF state)
4 Level3 + Dump leaf nodes (blockers) in wait chains(LEAF,LEAF_NW,IGN_DMP state)
3 Level2 + Dump only processes thought to be in a hang (IN_HANG state)
1-2 Only HANGANALYZE output, no process dump at all
从上面的信息看,在进行hanganalyzedump时有多种级别的level可以选择,那么如何选择level?
一般来讲,不建议使用level 3以上的操作,因为产生的trace可能会很大,尤其是大型的OLTP系统;
另外一般数据库hang住时可能系统压力都巨大,所以再产生很大的trace可能导致问题更加严重。
systemstate


systemstate dump级别简介:
1. 级别2:dump(不包括lock element)
2. 级别10:dump
3. 级别11:dump+global cache of rac
4. 级别256:short stack(函数堆栈)
5. 级别258:级别256+级别2
6. 级别266:级别256+级别10
7. 级别267:级别256+级别11
processstate

1. 级别11和级别267会dump global cache,会产生较大的trace 文件,一般不推荐。
2. 一般情况下,如果进程不是太多,建议用256,因为这样可以dump出来进程的函数堆栈,可以用来分析进程在执行什么操作,但是生成short stack比较耗时,如果进程非常多,比如2000个进程,那么可能耗时30分钟以上。这种情况下,可以生成level 10 或者 level 258, level 258 比 level 10会多收集short short stack, 但比level 10少收集一些lock element data。
3. 对于RAC系统,需要关注Bug 11800959 - A SYSTEMSTATE dump with level >= 10 in RAC dumps huge BUSY GLOBAL CACHE ELEMENTS - can hang/crash instances (Doc ID 11800959.8)。这个Bug在11.2.0.3上被修复,对于<=11.2.0.2的RAC,当系统中的lock element很多的时候,如果执行level 10、266或者267的systemstate dump时,可能会导致数据库hang或者crash,这种情况下可以采用level 25


使用oradebug命令

ORADEBUG setmypid
ORADEBUG setinst all
ORADEBUG -g def hanganalyze -针对rac的用法
对于单实例,我们通常进行如下操作即可:
oradebug setmypid
oradebug hanganalyze 3
其次在做hang分析的时候,建议同时做一个systemstatedump或针对个别的process进行processstatedump,如下:

---systemstate dump

oradebug setmypid

oradebug unlimit

oradebug dump systemstate level 2;

oradebug close_trace

oradebug tracefile_name

---processstatedump

oradebug setospid xxxx

oradebug dump processstate level 3;

oradebug close_trace

oradebug tracefile_name

我们知道当一个数据库hang住时,最头痛的问题是无法登陆数据,也就无法进行故障的处理,因此很多人只能通过重启
操作系统来讲解决问题,其实从Oracle 10g开始,Oracle提供了prelim的登陆方式,如下:

sqlplus -prelim / as sysdba

oradebug setospid

oradebug unlimit

oradebug dump systemstate 10

关于如何进行oradebug诊断系统问题的分析问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

级别 问题 系统 分析 进程 数据 建议 情况 数据库 很大 函数 堆栈 时候 更多 帮助 生成 登陆 解答 选择 巨大 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳九邦互联网科技有限公司 互联网科技垄断 朗新科技与工业互联网 互联网科技与金融科技 深圳科技互联网 金融科技与互联网金融 互联网与未来科技 银川新华互联网科技学校地址 互联网时代科技改变生活 中国航天科技大学国际工业互联网 玉溪互联网科技怎么选 洛阳昕诺飞互联网科技有限公司 广西互联网科技孵化中心 山东子淼互联网科技有限公司 互联网金融科技公司的优势 互联网科技快讯热点 互联网科技年终奖 工业互联网科技创业 中国科技和美国互联网 10位科技互联网大佬 互联网和科技创新 百单互联网科技有限公司 上海电发互联网科技有限公司 广州优美互联网科技 中和天地互联网科技有限公司 云南省自由互联网科技有限公司 富国互联网金融科技混合基金 富国互联网科技002692 上海同邻互联网科技有限公司规模 互联网科技手抄报图片
0