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,没有高版本或大量硬解析
相关参数
也都做了预防。
下次发生再查:
-
-
select SEGMENT_NAME,STATUS,TABLESPACE_NAME from dba_rollback_segs where status = 'OFFLINE';
-
select latch#, child#, sleeps from v$latch_children where name='row cache objects' and sleeps > 0 order by sleeps desc;
-
select parameter, gets from v$rowcache order by gets desc;
-
select count(*),STATUS from dba_rollback_segs group by status ;
-
-
--系统转储
-
sqlplus "/ as sysdba"
-
-
oradebug setmypid
-
oradebug unlimit
-
oradebug dump systemstate 266
-
wait 90 seconds
-
oradebug dump systemstate 266
-
wait 90 seconds
-
oradebug dump systemstate 266
-
quit
-
-
--当已经找到阻塞进程和被阻塞进程,可以使用 Errorstack 取得相关进程信息,从而得到类似 systemstate dump 信息,来定位已知的问题。
-
$ sqlplus
-
SQL> oradebug setospid <p.spid from above>
-
oradebug dump errorstack 3
-
<< wait 1min>>
-
oradebug dump errorstack 3
-
<< wait 1min>>
-
oradebug dump errorstack 3
-
exit
-
-
--有时 systemstate dump 是不适合收集的,因为它消耗资源较多。这时定期执行如下 SQL,来确定哪些进程和 SQL 在等待 library cache: mutex X。
-
select s.sid, t.sql_text
-
from v$session s, v$sql t
-
where s.event like '%mutex%'
-
and t.sql_id = s.sql_id
参考:
High Requests on dc_rollback_segments (Doc ID 1951703.1)
阅读(2865) | 评论(0) | 转发(0) |