详解如何从undo块中找出具体数据库对象,附案例分析
mhr18 2024-09-26 14:11 27 浏览 0 评论
概述
最近发现Oracle数据库其中一个节点告警日志频繁提示:Transaction recovery: lock conflict caught and ignored,还是有点棘手的,下面记录下问题排查的过程:
环境:Oracle11.2.0.1 RAC 2节点 AIX 6.1
处理思路
1.找出该对象
2.查看对象的具体状态。
1、通过该对象所使用的undo段
select b.name useg, b.inst# instid, b.status$ status, a.ktuxeusn xid_usn, a.ktuxeslt xid_slot, a.ktuxesqn xid_seq, a.ktuxesiz undoblocks, a.ktuxesta txstatus from x$ktuxe a, undo$ b where a.ktuxecfl like '%DEAD%' and a.ktuxeusn = b.us#;
2、通过dump undo header 寻找事务使用的undo segment
ALTER SYSTEM DUMP UNDO HEADER '_SYSSMU8_1131636851