Oracle 查看 使用 UNDO 段的事务 脚本
Oracle 查看 使用 UNDO 段的事务 脚本
Undo 表空间管理的说明,参考:Oracle undo 表空间管理
我们可以使用如下脚本查看Oracle undo segment段的信息:
- /* Formatted on 2012/6/18 18:10:55 (QP5 v5.185.11230.41888) */
- SELECT T1.USN,
- T2.NAME,
- T1.STATUS,
- T1.LATCH,
- T1.EXTENTS,
- T1.WRAPS,
- T1.EXTENDS
- FROM V$ROLLSTAT T1, V$ROLLNAME T2
- WHERE T1.USN = T2.USN;
当Undo 表空间出现故障的时候,我们就会需要注意这些undo segment 信息:
Currentonline Redo 和 Undo 损坏的处理方法
结合v$session 和v$transaction 视图就可以确认每个事务使用使用undo segment的情况,当undo 表空间使用异常的时候,就可以使用如下的脚本来检查事务使用undo segment的情况:
- /* Formatted on 2012/6/18 13:28:55 (QP5 v5.185.11230.41888) */
- SELECT S.SID,
- S.USERNAME,
- U.NAME,
- Q.SQL_TEXT,
- Q.HASH_VALUE,
- T.UBABLK
- FROM V$TRANSACTION T,
- V$ROLLSTAT R,
- V$ROLLNAME U,
- V$SESSION S,
- V$SQL Q
- WHERE S.TADDR = T.ADDR
- AND T.XIDUSN = R.USN
- AND R.USN = U.USN
- AND Q.HASH_VALUE =
- DECODE(S.SQL_HASH_VALUE,
- NULL, S.PREV_HASH_VALUE,
- S.SQL_HASH_VALUE)
- ORDER BY S.USERNAME;
评论暂时关闭