转储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;
从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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25462274/viewspace-2119140/