查找當前undo正在處理的事務

查看當前回滾段表空間裏是否有活動的事物:
SQL> SELECT s.username,t.xidusn,t.ubafil,t.ubablk,t.used_ublk  FROM v$session s,v$transaction t WHERE s.saddr=t.ses_addr;


USERNAME                           XIDUSN     UBAFIL     UBABLK  USED_UBLK
------------------------------ ---------- ---------- ---------- ----------
SYS                                     5          2        228          1

v$transaction記錄未commit的活動事務
列出這幾列的含義,自己可以對比一下:
XIDUSN     Undo segment number    -->使用的回滾段id,可以和v$rollstat對應
UBAFIL    Undo block address (UBA) filenum
UBABLK    UBA block number
used_ublk --> 佔用的undo block


dump出內容
SQL> alter system dump datafile 2 block 228;
udump下面看最新的那個文件,文件名包含你當前session的spid

查詢當前session的process進程
select spid from v$session s,v$process p where s.paddr=p.addr and s.username='SYS';


SQL> SELECT b.name,a.xidusn, xidslot, xidsqn FROM v$transaction a, v$rollname b where a.XIDUSN = b.usn;

NAME                               XIDUSN    XIDSLOT     XIDSQN
------------------------------ ---------- ---------- ----------
_SYSSMU5$                               5         30        331

 

eg:
session1:
SQL> create table test as select  * from dba_objects;

表已創建。

SQL> delete from test;

已刪除49802行。

SQL> rollback;

回退已完成。


session2:
SQL>  SELECT s.username,t.xidusn,t.ubafil,t.ubablk,t.used_ublk FROM v$session s,v$transaction t WHERE s.saddr=t.ses_addr;

USERNAME                           XIDUSN     UBAFIL     UBABLK  USED_UBLK
------------------------------ ---------- ---------- ---------- ----------
SYS                                    19          9       1068        283

SQL>  SELECT s.username,t.xidusn,t.ubafil,t.ubablk,t.used_ublk  FROM v$session s,v$transaction t WHERE s.saddr=t.ses_addr;

未選定行

SQL> alter system dump datafile 9 block 1068;

系統已更改。


求回滾段正在處理的事務
select a.name,b.xacts,c.sid,c.serial#,d.sql_text
from v$rollname a,v$rollstat b,v$session c,v$sqltext d,v$transaction e
where a.usn=b.usn and b.usn=e.xidusn and c.taddr=e.addr
and c.sql_address=d.address and c.sql_hash_value=d.hash_value order by a.name,c.sid,d.piece;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章