Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3540213
  • 博文数量: 715
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7745
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(715)

文章存档

2023年(75)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

最近访客

分类: Oracle

2021-08-18 06:46:56


aix 19.11 单机,cpu特别高,跑批慢了,看看awr

主要等待事件是row cache mutex,查了查,在 12.2.0.1.0 (12cR2), "row cache mutex" 替代了 12.1.0.2.0 (12cR1) "latch: row cache objects"。


看到dc_rollback_segments请求次数非常多,这些cache的解释可以看 Doc ID 2016422.1


函数解释

看看ash


p1的值是3,对应的对象是:


引起这个事件的是一个简单的insert,没有高版本或大量硬解析

相关参数

也都做了预防。

下次发生再查:

  1. select SEGMENT_NAME,STATUS,TABLESPACE_NAME from dba_rollback_segs where status = 'OFFLINE';
  2. select latch#, child#, sleeps from v$latch_children where name='row cache objects' and sleeps > 0 order by sleeps desc;
  3. select parameter, gets from v$rowcache order by gets desc;
  4. select count(*),STATUS from dba_rollback_segs group by status ;


  1. --系统转储
  2. sqlplus "/ as sysdba"

  3. oradebug setmypid
  4. oradebug unlimit
  5. oradebug dump systemstate 266
  6. wait 90 seconds
  7. oradebug dump systemstate 266
  8. wait 90 seconds
  9. oradebug dump systemstate 266
  10. quit

  11. --当已经找到阻塞进程和被阻塞进程,可以使用 Errorstack 取得相关进程信息,从而得到类似 systemstate dump 信息,来定位已知的问题。
  12. $ sqlplus
  13. SQL> oradebug setospid <p.spid from above>
  14. oradebug dump errorstack 3
  15. << wait 1min>>
  16. oradebug dump errorstack 3
  17. << wait 1min>>
  18. oradebug dump errorstack 3
  19. exit

  20. --有时 systemstate dump 是不适合收集的,因为它消耗资源较多。这时定期执行如下 SQL,来确定哪些进程和 SQL 在等待 library cache: mutex X。
  21. select s.sid, t.sql_text
  22. from v$session s, v$sql t
  23. where s.event like '%mutex%'
  24. and t.sql_id = s.sql_id

参考:
High Requests on dc_rollback_segments (Doc ID 1951703.1)
阅读(2730) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~