如何根据V$TRACTION 查找事务的内容

[复制链接]
查看11 | 回复6 | 2013-1-30 22:13:19 | 显示全部楼层 |阅读模式
如题,现在已知某个会话和某个事务,我如何得到这个事务在做什么呢?比如执行了一条UPDATE语句,且执行后一直没提交,我如何得知这个事务的内容?
我在V$SESSION 中看到SQL_ID字段的内容为空,所以无法得知事务的内容,求高手帮忙。

回复

使用道具 举报

千问 | 2013-1-30 22:13:19 | 显示全部楼层
ash report
回复

使用道具 举报

千问 | 2013-1-30 22:13:19 | 显示全部楼层
分析undo和redo的dump文件可以得到不
回复

使用道具 举报

千问 | 2013-1-30 22:13:19 | 显示全部楼层
这个如果你打开附加日志,可以查询
select * from flashback_transaction_query where xid=hextoraw('&xid');

回复

使用道具 举报

千问 | 2013-1-30 22:13:19 | 显示全部楼层
SELECT 'ALTER SYSTEM DUMP UNDO BLOCK '''
|| (SELECT name

FROM sys.undo$

WHERE us# = xidusn)
|| ''' XID '
|| xidusn
|| ' '
|| xidslot
|| ' '
|| xidsqn
|| ';'
|| CHR (10)
|| 'ALTER SYSTEM DUMP UNDO HEADER '''
|| (SELECT name

FROM sys.undo$

WHERE us# = xidusn)
|| ''''
|| ';'
|| CHR (10)
|| 'ALTER SYSTEM DUMP DATAFILE '
|| UBAFIL
|| ' BLOCK '
|| UBABLK
|| ';'

c70
,XIDUSN
,XIDSLOT
,XIDSQN
,UBAFIL
,UBABLK
,UBASQN
,UBAREC
,STATUS
,used_ublk
,USED_UREC
,xid
,ADDR
,START_DATE
FROM v$transaction;
--在执行类似这个
ALTER SYSTEM DUMP UNDO BLOCK '_SYSSMU10_1197734989$' XID 10 15 2983;

回复

使用道具 举报

千问 | 2013-1-30 22:13:19 | 显示全部楼层
但是这样仅仅能看到修改的前image。
回复

使用道具 举报

千问 | 2013-1-30 22:13:19 | 显示全部楼层
试试根据sid和时间在v$open_cursor视图里面能不能找到sql_id
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行