首页 > 数据库 > Oracle > Oracle常见UNDO等待事件
latch:undo global data
通常是undo tablespace datafile达到上限后,DBA_UNDO_EXTENTS.STATUS=EXPIRED 没有或者很少了。 Oracle需要将UN EXPIRED状态变为 EXPIRED后DML才能执行,这是 主要等待时间。
解决方法 : 修改undo_retention改小,或增加undo datafile
enq: US - contention
通常是DML并发 量增加(例: 两节点RAC,一节点业务,一节点空闲,业务节点crash failover到空闲节点后发生此等待), Oracle需从undo tablespace中分配大量online状态的rollback segment供DML操作使用,这是主要等待时间。
解决方法 : 将_rollback_segment_count 参数设置较大的固定值,比如无脑设置6000
alter system set "_rollback_segment_count"=6000 scope=both sid='*';
PS: 可以查看V$UNDOSTAT.MAXCONCURRENCY 这是DB启动后配置过的最大的 rollback_segment_count
latch: row cache objects (dc_rollback_segments)
通常是undo tablespace datafile size不足时自动扩展导致, 这是主要等待时间。
解决方法 : 将 undo tablespace datafile size调大/多增加几个,并设置为不自动扩展 ,如:
alter database datafile '/oradata/orcl/undotbs01.dbf' resize 32767M ;
alter tablespace undotbs1 add datafile '/oradata/orcl/undotbs02.dbf' size 32767M autoextend off;
检查latch过程:
通过取ASH中P1 值
select p1 from v$active_session_history where EVENT='latch: row cache objects' ;
计算P1值十六进制:
SELECT to_char(p1,'XXXXXXXXXXXXXX') FROM DUAL;
--------------
123BF1CB9
检查latch对象
SELECT kqrsttxt PARAMETER,
kqrstcid CACHE#,
kqrstcln "Lchild#",
kqrstgrq "DCGets",
l.gets "LGets",
l.misses "Misses",
l.addr
FROM X$KQRST, V$LATCH_CHILDREN l
WHERE l.addr like '%123BF1CB9'
and l.child# = KQRSTCLN
PARAMETER CACHE# Lchild# DCGets LGets Misses ADDR
-------------------------------- ---------- ---------- ---------- --------- ---------- ----------------
dc_rollback_segments 3 1 ................
或:
select la.addr laaddr,dc.kqrstcid CACHE#, dc.kqrsttxt PARAMETER,
decode(dc.kqrsttyp, 1,'PARENT','SUBORDINATE') type,
decode(dc.kqrsttyp, 2, kqrstsno, null) subordinate#,
dc.kqrstgrq rcgets, dc.kqrstgmi rcmisses, dc.kqrstmrq rcmodifications,
dc.kqrstmfl rcflushes, dc.kqrstcln,
la.gets lagets, la.misses lamisses, la.immediate_gets laimge
from x$kqrst dc,
v$latch_children la
where dc.inst_id = userenv('instance')
and la.child# = dc.kqrstcln
and la.name = 'row cache objects'
and la.ADDR like '%123BF1CB9';
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25583515/viewspace-2990280/ ,如需转载,请注明出处,否则将追究法律责任。