轉儲oracle undo段資訊

531968912發表於2016-06-12
  轉儲oracle undo段資訊:
      從Oracle 7.3 開始,我們就可以轉儲UNDO 的資訊了。在日常維護工作中,轉儲UNDO 信
    息的機會比較少。不過在一些故障分析或者效能分析中,有時還是會用到這項技術。這裡將簡單
    介紹如何轉儲UNDO 資訊。轉儲UNDO 資訊需要使用sysdba 或者sysoper 賬號,然後透過ALTER
    SYSTEM DUMP UNDO 命令來完成。其語法如下所示:
    ALTER SYSTEM DUMP UNDO[ HEADER <rbs-name> ][ BLOCK <rbs-name> [ <filter> ] ];
    Filters:
    XID <usn> <slot> <sqn> //透過select XIDUSN,XIDSLOT,XIDSQN from v$transaction
    //可以獲取上述資訊
    UBA MIN <file> <block>
    UBA MAX <file> <block>
    EXTENT MIN <extentno>
    EXTENT MAX <extentno>OBJNO <objno>
    LAYER <layer>
    LEVEL <level>
    下面舉例說明。
    (1) 轉儲回滾段頭。
    (2) SQL> alter system dump undo header '_SYSSMU01$';
    (3) 根據XID 來轉儲UNDO 鏈。
    a. 找到XID。
    SQL> select xidusn, xidslot, xidsqn from v$transaction;
    XIDUSN XIDSLOT XIDSQN
    --------- ---------- ----------
    3 3 834
    b. 根據上一步結果中的XIDUSN 找到回滾段。
    SQL> select name from v$rollname where usn=3;
    NAME
    ------------------------------
    _SYSSMU3$   
    c. 轉儲UNDO 鏈。
    SQL> alter system dump undo block '_SYSSMU3$' xid 3 3 834;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2119140/,如需轉載,請註明出處,否則將追究法律責任。

相關文章