分类: 服务器与存储
2008-06-14 14:05:45
由于死事务已经无法通过v$transaction来观察,所以必须通过内部表来进行判断。
这个内部表是x$ktuxe,该表会记录Dead事务的恢复进度:
17:30:37 SQL> select distinct KTUXECFL,count(*) from x$ktuxe group by KTUXECFL; KTUXECFL COUNT(*) ------------------------ ---------- DEAD 1 NONE 2393 SCO|COL 8 |
可以通过观察KTUXESIZ字段来评估恢复进度:
16:59:47 SQL> select ADDR,KTUXEUSN,KTUXESLT,KTUXESQN,KTUXESIZ 2 from x$ktuxe where KTUXEUSN=10 and KTUXESLT=39; ADDR KTUXEUSN KTUXESLT KTUXESQN KTUXESIZ ---------------- ---------- ---------- ---------- ---------- FFFFFFFF7D07B91C 10 39 2567412 1086075 17:02:12 SQL> select ADDR,KTUXEUSN,KTUXESLT,KTUXESQN,KTUXESIZ 2 from x$ktuxe where KTUXEUSN=10 and KTUXESLT=39; ADDR KTUXEUSN KTUXESLT KTUXESQN KTUXESIZ ---------------- ---------- ---------- ---------- ---------- FFFFFFFF7D07B91C 10 39 2567412 1086067 |
根据评估,这个事务回滚需要大约2.55天,我Ft:
17:08:28 SQL> declare 17:10:22 2 l_start number; 17:10:22 3 l_end number; 17:10:22 4 begin 17:10:22 5 select ktuxesiz into l_start from x$ktuxe where KTUXEUSN=10 and |
这是非常有用的一个内部表,大家可以参考一下。