熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

判斷一個死事務的恢復進度

2013-11-13 15:30:42  來源: Oracle 

  在啟用SMON的串行恢復後對於一個死事務如何觀察其恢復進度

  由於死事務已經無法通過v$transaction來觀察所以必須通過內部表來進行判斷

  這個內部表是x$ktuxe該表會記錄Dead事務的恢復進度

  

  :: SQL> select distinct KTUXECFLcount(*) from x$ktuxe group by KTUXECFL; KTUXECFL COUNT(*) DEAD NONE SCO|COL

  可以通過觀察KTUXESIZ字段來評估恢復進度

  

  :: SQL> select ADDRKTUXEUSNKTUXESLTKTUXESQNKTUXESIZ from x$ktuxe where KTUXEUSN= and KTUXESLT=; ADDR KTUXEUSN KTUXESLT KTUXESQN KTUXESIZ FFFFFFFFDBC :: SQL> select ADDRKTUXEUSNKTUXESLTKTUXESQNKTUXESIZ from x$ktuxe where KTUXEUSN= and KTUXESLT=; ADDR KTUXEUSN KTUXESLT KTUXESQN KTUXESIZ FFFFFFFFDBC

  根據評估這個事務回滾需要大約我Ft

  

  :: SQL> declare :: l_start number; :: l_end number; :: begin :: select ktuxesiz into l_start from x$ktuxe where KTUXEUSN= and
KTUXESLT=; :: dbms_locksleep(); :: select ktuxesiz into l_end from x$ktuxe where KTUXEUSN= and
KTUXESLT=; :: dbms_outputput_line(time est Day:|| round(l_end/(l_start
l_end)//)); :: end; :: / time est Day:

  這是非常有用的一個內部表大家可以參考一下


From:http://tw.wingwit.com/Article/program/Oracle/201311/16834.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.