Oracle数据库性能障碍分析利器:SYSTEMSTATE DUMP介绍

作者  孟庆辉

沃趣科技数据库工程师


当数据库出现严重的性能问题或者hang了的时候,我们非常需要通过systemstate dump来知道进程在做什么,在等待什么,谁是资源的持有者,谁阻塞了别人。


在出现上述问题时,及时收集systemstate dump非常有助于问题原因的分析。


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


  • 注 意


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


systemstate dump大部分时候需要手工生成,其生成方式如下:

 

1. 用sqlplus登录到数据库


$sqlplus / as sysdba

 

当数据库已经非常慢或者数据库hang到无法连接时,可使用如下方式登录:

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值