UNDO信息收集
UNDO数据是用来维护事物操作的记录。记录修改前的数据映像。
用途:
回滚活动的事务
恢复中断的事务
提供一致读
执行逻辑闪回操作
UNDO数据保存在块中,和数据块一样,会产生redo日志。
和数据块一样,UNDO有表空间,段(SEGMENT),区域(EXTENT),块(BLOCK)
Undo段头包含:
空闲的undo区域(EXTENTS)池
UNDO槽号(SLOT)集合
Version: 0x01
FREE BLOCK POOL::
uba: 0x00000000.20c0.11 ext: 0x2 spc: 0x1848
uba: 0x00000000.20c0.02 ext: 0x2 spc: 0x1ef6
uba: 0x00000000.20be.26 ext: 0x0 spc: 0xa2a
uba: 0x00000000.1f16.02 ext: 0x4 spc: 0x1f1e
uba: 0x00000000.1f16.0b ext: 0x4 spc: 0x1b0c
TRN TBL::
index state cflags wrap# uel scn dba parent-xid nub stmt_num cmt
------------------------------------------------------------------------------------------------
0x00 9 0x00 0x9ea1 0x0003 0x0418.14952377 0x46800318 0x0000.000.00000000 0x00000001 0x00000000 1312888300
......
0x0c 10 0x80 0x9e77 0x0002 0x0418.14952662 0x46800319 0x0000.000.00000000 0x00000001 0x00000000 0
......
每个槽号(SLOT)分配给一个事务
每个槽号(SLOT)包含UNDO区域(EXTENTS)的列表
区域(EXTENTS)可以从一个UNDO段移植到另一个段
UNDO槽号(SLOT)可以循环使用,并尽量长地保留在段头中,减少出现ORA-01555的机会。
TRANSACTION ID
可以从data block中获取transaction id
Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x0035.01a.0000a9e6 0x468000ed.2fb1.26 C--- 0 scn 0x0418.14952662
0x02 0x0033.00c.00009e77 0x46800319.20c0.12 ---- 1 fsc 0x0000.00000000
如果事务是活动的,那么可以从视图v$transaction中获取transaction id
XIDUSN 段号
XIDSLOT 槽号(SLOT)
XIDSQN 序列号(INDEX)
Undo区域(EXTENTS):
包含连续的undo block集合
多个事务可以同时写同样的段和区域(EXTENT)。
当前的区域满,第一个事务检查下一个区域(EXTENT)。如果下一个区域(EXTENT)没有包含活动事务的数据,
那么下一个区域(EXTENT)就成为当前的区域。如果下一个区域(EXTENT)包含活动事务的数据,数据库尝试
分配一个新的区域(EXTENT)。
UNDO块(block)
一个UNDO块只能分配给一个事务
UNDO块包含块头,UNDO记录
UNDO块头包含:
事务ID(XID):当前或上一个使用这个块的事务
UNDO块的序列号
UNDO块中的记录数,当前事务不需要这个。
uba: 0x46800319.20c0.10 ctl max scn: 0x0418.149521cd prv tx scn: 0x0418.149521f0
txn start scn: scn: 0x0418.149523e8 logon user: 569
prev brb: 1182794519 prev bcl: 0
KDO undo record:
KTB Redo
op: 0x03 ver: 0x01
op: Z
Array Update of 1 rows:
tabn: 0 slot: 1(0x1) flag: 0x2c lock: 0 ckix: 0
ncol: 1 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x012afa9c hdba: 0x012afa9b
itli: 2 ispac: 0 maxfr: 4858
vect = 0
col 0: [ 2] c1 03
UNDO记录串联在一起,这样允许事务被回滚
UNDO记录可以被循环利用,并尽量久地保持在块中,减少ORA-01555的错误
UBA-UNDO字节地址,指UNDO记录的地址。包含UNDO块的DBA,UNDO块的序列号,UNDO块中的记录
0x468000ed.2fb1.26
在视图中V$TRANSACTION也可以看到
UBAFIL, UBABLK - 文件和块号
UBASQN - 序列号
UBAREC - 记录号
UNDO的初始化参数
UNDO_RETENTION:在覆盖undo信息前,Oracle数据库尝试保留undo信息的最小时间。在undo
retetion之前的旧undo信息被成为expired,并且空间可以被新事务覆盖。在undo retention
之后的undo信息被成为unexpired,并被保留来提供一致读和闪回操作。
UNDO_RETENTION可以参考v$undostat.maxquerylen
UNDO表空间的大小:
undo的大小 = 最大的v$undostat.undoblks*undo_retention*block_size
然后再增加20%
系统的事务数在auto管理时由rollback segment header block上的事务表( TRN TBL)所决定的,34个。
alter system dump undo header '_SYSSMU11_2654867243$';
TRN TBL::
index state cflags wrap# uel scn dba parent-xid nub stmt_num cmt
------------------------------------------------------------------------------------------------
0x00 9 0x00 0x000d 0x000c 0x0000.0017b290 0x014001ef 0x0000.000.00000000 0x00000010 0x00000000 1326013252
0x01 9 0x00 0x000d 0x0021 0x0000.0017b1b5 0x01400083 0x0000.000.00000000 0x00000001 0x00000000 1326013200
0x02 9 0x00 0x000d 0x0003 0x0000.0017b26a 0x01400089 0x0000.000.00000000 0x00000001 0x00000000 1326013252
0x03 9 0x00 0x000d 0x0004 0x0000.0017b26e 0x0140008c 0x0000.000.00000000 0x00000003 0x00000000 1326013252
0x04 9 0x00 0x000d 0x0005 0x0000.0017b275 0x014001e1 0x0000.000.00000000 0x00000003 0x00000000 1326013252
0x05 9 0x00 0x000d 0x001b 0x0000.0017b279 0x014001e4 0x0000.000.00000000 0x00000003 0x00000000 1326013252
0x06 9 0x00 0x000d 0x000a 0x0000.0017b284 0x014001ec 0x0000.000.00000000 0x00000003 0x00000000 1326013252
0x07 9 0x00 0x000d 0x0014 0x0000.0017b3cc 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x08 9 0x00 0x000d 0x000b 0x0000.0017b28c 0x014002a1 0x0000.000.00000000 0x00000003 0x00000000 1326013252
0x09 9 0x00 0x000c 0x000e 0x0000.0017b31c 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x0a 9 0x00 0x000d 0x0008 0x0000.0017b288 0x014001ee 0x0000.000.00000000 0x00000003 0x00000000 1326013252
0x0b 9 0x00 0x000d 0x0000 0x0000.0017b28f 0x014002a3 0x0000.000.00000000 0x00000003 0x00000000 1326013252
0x0c 9 0x00 0x000d 0x000d 0x0000.0017b294 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013252
0x0d 9 0x00 0x000d 0x0009 0x0000.0017b314 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x0e 9 0x00 0x000d 0x000f 0x0000.0017b338 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x0f 9 0x00 0x000d 0x0011 0x0000.0017b359 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x10 9 0x00 0x000d 0x0007 0x0000.0017b3bb 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x11 9 0x00 0x000d 0x0012 0x0000.0017b36f 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x12 9 0x00 0x000d 0x0013 0x0000.0017b382 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x13 9 0x00 0x000d 0x0010 0x0000.0017b38c 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x14 9 0x00 0x000d 0x0015 0x0000.0017b3df 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x15 9 0x00 0x000d 0x0016 0x0000.0017b404 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x16 9 0x00 0x000d 0x0017 0x0000.0017b427 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x17 9 0x00 0x000d 0x0018 0x0000.0017b440 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x18 9 0x00 0x000d 0x0019 0x0000.0017b44f 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x19 9 0x00 0x000d 0x001a 0x0000.0017b45d 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x1a 9 0x00 0x000d 0x001c 0x0000.0017b468 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x1b 9 0x00 0x000c 0x0006 0x0000.0017b280 0x014001e9 0x0000.000.00000000 0x00000003 0x00000000 1326013252
0x1c 9 0x00 0x000d 0x001d 0x0000.0017b485 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x1d 9 0x00 0x000d 0x001e 0x0000.0017b4a7 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x1e 9 0x00 0x000d 0x001f 0x0000.0017b4c7 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x1f 9 0x00 0x000d 0xffff 0x0000.0017b4dc 0x014002a3 0x0000.000.00000000 0x00000001 0x00000000 1326013549
0x20 9 0x00 0x000c 0x0001 0x0000.0017b123 0x01400083 0x0000.000.00000000 0x00000001 0x00000000 1326012800
0x21 9 0x00 0x000c 0x0002 0x0000.0017b1f8 0x01400083 0x0000.000.00000000 0x00000001 0x00000000 1326013246
EXT TRN CTL::
而系统的事务数是由session来决定的。session*1.1=transactions
SQL> show parameter sessions
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
sessions integer 248
shared_server_sessions integer
SQL> show parameter tran
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
redo_transport_user string
star_transformation_enabled string FALSE
transactions integer 272
transactions_per_rollback_segment integer 5
SQL> select 248*1.1 from dual;
248*1.1
----------
272.8
UNDO相关视图信息:
v$undostat
undoblks - 在一段时间内产生的undo blocks。
unxpstealcnt - unexpired blocks的数目;其他的事务因为没有足够的空间开始使用这些块。
maxquerylen - 最长的运行事务
nospacerrcnt - 记录当数据库开始写undo事务块的时候,空间不可用的错误的次数
SQL> select * from v$rollname;
USN NAME
---------- ------------------------------
0 SYSTEM
11 _SYSSMU11_2654867243$
12 _SYSSMU12_1424393968$
13 _SYSSMU13_836041116$
14 _SYSSMU14_3753167083$
15 _SYSSMU15_829884116$
16 _SYSSMU16_3434936924$
17 _SYSSMU17_760283974$
18 _SYSSMU18_593553207$
19 _SYSSMU19_3576614825$
20 _SYSSMU20_3805373609$
SQL> select usn,extents,rssize,writes,hwmsize,shrinks from v$rollstat;
USN EXTENTS RSSIZE WRITES HWMSIZE SHRINKS
---------- ---------- ---------- ---------- ---------- ----------
0 6 385024 5368 385024 0
11 15 974848 464 974848 0
12 4 253952 300 253952 0
13 5 319488 524 319488 0
14 3 188416 626 188416 0
15 18 2154496 386 2154496 0
16 4 253952 610 253952 0
17 359 43180032 1708 43180032 0
18 8 516096 390 516096 0
19 15 974848 306 974848 0
20 7 450560 714 450560 0
连续执行下列语句,直至耗尽所有的undo表空间
insert into test select * from test;
select usn,extents,rssize,writes,hwmsize,shrinks from v$rollstat;
select XIDUSN,XIDSLOT,XIDSQN,UBAFIL,UBABLK,UBASQN,UBAREC,USED_UBLK,USED_UREC,t.STATUS,
s.sid,to_char(s.LOGON_TIME,'yyyy-mm-dd hh24:mi:ss')
from v$transaction t, v$session s
where t.addr = s.taddr
;
SQL> insert into test select * from test;
已创建 72202 行。
SQL> select usn,extents,rssize,writes,hwmsize,shrinks from v$rollstat;
USN EXTENTS RSSIZE WRITES HWMSIZE SHRINKS
---------- ---------- ---------- ---------- ---------- ----------
0 6 385024 5368 385024 0
11 15 974848 267942 974848 0
12 4 253952 454 253952 0
13 5 319488 994 319488 0
14 3 188416 626 188416 0
15 18 2154496 804 2154496 0
16 4 253952 908 253952 0
17 359 43180032 1918 43180032 0
18 8 516096 390 516096 0
19 15 974848 268194 974848 0
20 7 450560 714 450560 0
已选择11行。
SQL> select XIDUSN,XIDSLOT,XIDSQN,UBAFIL,UBABLK,UBASQN,UBAREC,USED_UBLK,USED_UREC,t.STATUS,
2 s.sid,to_char(s.LOGON_TIME,'yyyy-mm-dd hh24:mi:ss')
3 from v$transaction t, v$session s
4 where t.addr = s.taddr
5 ;
XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC USED_UBLK USED_UREC STATUS SID TO_CHAR(S.LOGON_TIM
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- ---------- -------------------
19 32 13 5 6346 25 20 34 1904 ACTIVE 125 2012-01-08 16:19:39
11 9 10 5 590 33 27 34 1901 ACTIVE 127 2012-01-08 16:19:32
SQL> insert into test select * from test;
已创建 144404 行。
SQL> select usn,extents,rssize,writes,hwmsize,shrinks from v$rollstat;
USN EXTENTS RSSIZE WRITES HWMSIZE SHRINKS
---------- ---------- ---------- ---------- ---------- ----------
0 6 385024 5368 385024 0
11 15 974848 267942 974848 0
12 4 253952 454 253952 0
13 5 319488 994 319488 0
14 3 188416 626 188416 0
15 18 2154496 804 2154496 0
16 4 253952 908 253952 0
17 359 43180032 1918 43180032 0
18 8 516096 390 516096 0
19 15 974848 803052 974848 0
20 7 450560 714 450560 0
已选择11行。
SQL> select XIDUSN,XIDSLOT,XIDSQN,UBAFIL,UBABLK,UBASQN,UBAREC,USED_UBLK,USED_UREC,t.STATUS,
2 s.sid,to_char(s.LOGON_TIME,'yyyy-mm-dd hh24:mi:ss')
3 from v$transaction t, v$session s
4 where t.addr = s.taddr
5 ;
XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC USED_UBLK USED_UREC STATUS SID TO_CHAR(S.LOGON_TIM
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- ---------- -------------------
19 32 13 5 420 33 32 100 5707 ACTIVE 125 2012-01-08 16:19:39
SQL> insert into test select * from test;
已创建 288808 行。
SQL> select usn,extents,rssize,writes,hwmsize,shrinks from v$rollstat;
USN EXTENTS RSSIZE WRITES HWMSIZE SHRINKS
---------- ---------- ---------- ---------- ---------- ----------
0 6 385024 5368 385024 0
11 15 974848 267942 974848 0
12 4 253952 454 253952 0
13 5 319488 994 319488 0
14 3 188416 626 188416 0
15 18 2154496 804 2154496 0
16 4 253952 908 253952 0
17 359 43180032 1918 43180032 0
18 8 516096 390 516096 0
19 17 2088960 1873168 2088960 0
20 7 450560 714 450560 0
已选择11行。
SQL> select XIDUSN,XIDSLOT,XIDSQN,UBAFIL,UBABLK,UBASQN,UBAREC,USED_UBLK,USED_UREC,t.STATUS,
2 s.sid,to_char(s.LOGON_TIME,'yyyy-mm-dd hh24:mi:ss')
3 from v$transaction t, v$session s
4 where t.addr = s.taddr
5 ;
XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC USED_UBLK USED_UREC STATUS SID TO_CHAR(S.LOGON_TIM
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- ---------- -------------------
19 32 13 5 1137 36 12 233 13321 ACTIVE 125 2012-01-08 16:19:39
SQL> insert into test select * from test;
已创建 577616 行。
SQL> select usn,extents,rssize,writes,hwmsize,shrinks from v$rollstat;
USN EXTENTS RSSIZE WRITES HWMSIZE SHRINKS
---------- ---------- ---------- ---------- ---------- ----------
0 6 385024 5368 385024 0
11 15 974848 267942 974848 0
12 2 122880 536 253952 1
13 3 188416 1076 319488 1
14 2 122880 708 188416 1
15 8 1499136 886 2154496 1
16 2 122880 990 253952 1
17 349 42524672 2000 43180032 1
18 8 516096 390 516096 0
19 49 4186112 4013138 4186112 0
20 7 450560 714 450560 0
已选择11行。
SQL> select XIDUSN,XIDSLOT,XIDSQN,UBAFIL,UBABLK,UBASQN,UBAREC,USED_UBLK,USED_UREC,t.STATUS,
2 s.sid,to_char(s.LOGON_TIME,'yyyy-mm-dd hh24:mi:ss')
3 from v$transaction t, v$session s
4 where t.addr = s.taddr
5 ;
XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC USED_UBLK USED_UREC STATUS SID TO_CHAR(S.LOGON_TIM
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- ---------- -------------------
19 32 13 5 946 68 15 498 28546 ACTIVE 125 2012-01-08 16:19:39
SQL> insert into test select * from test;
已创建 1155232 行。
SQL> select usn,extents,rssize,writes,hwmsize,shrinks from v$rollstat;
USN EXTENTS RSSIZE WRITES HWMSIZE SHRINKS
---------- ---------- ---------- ---------- ---------- ----------
0 6 385024 5368 385024 0
11 5 319488 268024 974848 1
12 2 122880 536 253952 1
13 3 188416 1076 319488 1
14 2 122880 708 188416 1
15 3 1171456 968 2154496 2
16 2 122880 990 253952 1
17 329 40230912 2164 43180032 3
18 3 188416 472 516096 1
19 100 8511488 8293238 8511488 0
20 4 253952 796 450560 1
已选择11行。
SQL> select XIDUSN,XIDSLOT,XIDSQN,UBAFIL,UBABLK,UBASQN,UBAREC,USED_UBLK,USED_UREC,t.STATUS,
2 s.sid,to_char(s.LOGON_TIME,'yyyy-mm-dd hh24:mi:ss')
3 from v$transaction t, v$session s
4 where t.addr = s.taddr
5 ;
XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC USED_UBLK USED_UREC STATUS SID TO_CHAR(S.LOGON_TIM
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- ---------- -------------------
19 32 13 5 1420 119 12 1028 59000 ACTIVE 125 2012-01-08 16:19:39
SQL> insert into test select * from test;
已创建 2310464 行。
SQL> select usn,extents,rssize,writes,hwmsize,shrinks from v$rollstat;
USN EXTENTS RSSIZE WRITES HWMSIZE SHRINKS
---------- ---------- ---------- ---------- ---------- ----------
0 6 385024 5368 385024 0
11 6 385024 269336 974848 1
12 2 122880 2256 253952 1
13 3 188416 3588 319488 1
14 2 122880 1908 188416 1
15 3 1171456 1784 2154496 2
16 2 122880 3366 253952 1
17 259 30728192 3530 43180032 10
18 3 188416 1864 516096 1
19 161 17424384 16853176 17424384 0
20 4 253952 2572 450560 1
已选择11行。
SQL> select XIDUSN,XIDSLOT,XIDSQN,UBAFIL,UBABLK,UBASQN,UBAREC,USED_UBLK,USED_UREC,t.STATUS,
2 s.sid,to_char(s.LOGON_TIME,'yyyy-mm-dd hh24:mi:ss')
3 from v$transaction t, v$session s
4 where t.addr = s.taddr
5 ;
XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC USED_UBLK USED_UREC STATUS SID TO_CHAR(S.LOGON_TIM
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- ---------- -------------------
19 32 13 5 2647 181 58 2087 119905 ACTIVE 125 2012-01-08 16:19:39
SQL> insert into test select * from test;
已创建 4620928 行。
SQL> select usn,extents,rssize,writes,hwmsize,shrinks from v$rollstat;
USN EXTENTS RSSIZE WRITES HWMSIZE SHRINKS
---------- ---------- ---------- ---------- ---------- ----------
0 6 385024 5368 385024 0
11 7 450560 270672 974848 5
12 3 188416 4514 253952 1
13 4 253952 9896 319488 3
14 2 122880 4884 188416 1
15 4 1236992 3748 2154496 4
16 3 188416 10494 253952 1
17 119 13688832 6126 43180032 24
18 3 188416 4456 516096 1
19 302 34529280 33973212 34529280 0
20 4 253952 5604 450560 1
已选择11行。
SQL> select XIDUSN,XIDSLOT,XIDSQN,UBAFIL,UBABLK,UBASQN,UBAREC,USED_UBLK,USED_UREC,t.STATUS,
2 s.sid,to_char(s.LOGON_TIME,'yyyy-mm-dd hh24:mi:ss')
3 from v$transaction t, v$session s
4 where t.addr = s.taddr
5 ;
XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC USED_UBLK USED_UREC STATUS SID TO_CHAR(S.LOGON_TIM
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- ---------- -------------------
19 32 13 5 4511 321 12 4207 241719 ACTIVE 125 2012-01-08 16:19:39
SQL> insert into test select * from test;
insert into test select * from test
*
第 1 行出现错误:
ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS2' 中)
SQL> select usn,extents,rssize,writes,hwmsize,shrinks from v$rollstat;
USN EXTENTS RSSIZE WRITES HWMSIZE SHRINKS
---------- ---------- ---------- ---------- ---------- ----------
0 6 385024 5368 385024 0
11 2 122880 271246 974848 12
12 2 122880 4984 253952 4
13 2 122880 10378 319488 7
14 2 122880 6222 188416 2
15 2 122880 4412 2154496 7
16 2 122880 11696 253952 2
17 2 122880 7602 43180032 38
18 2 122880 4756 516096 3
19 436 50192384 49456626 50192384 1
20 2 122880 6558 450560 2
已选择11行。
SQL> select XIDUSN,XIDSLOT,XIDSQN,UBAFIL,UBABLK,UBASQN,UBAREC,USED_UBLK,USED_UREC,t.STATUS,
2 s.sid,to_char(s.LOGON_TIME,'yyyy-mm-dd hh24:mi:ss')
3 from v$transaction t, v$session s
4 where t.addr = s.taddr
5 ;
XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC USED_UBLK USED_UREC STATUS SID TO_CHAR(S.LOGON_TIM
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- ---------- -------------------
19 32 13 5 4511 321 12 4207 241719 ACTIVE 125 2012-01-08 16:19:39
SQL>
所有的空间都被集中在19回滚段,其他的回滚段只有基本的2个extents。
在自动管理的undo表空间中,set transaction use rollback segment是不起效的。
set transaction use rollback segment "_SYSSMU11_2654867243$";
SQL> select usn,extents,rssize,writes,hwmsize,shrinks from v$rollstat;
USN EXTENTS RSSIZE WRITES HWMSIZE SHRINKS
---------- ---------- ---------- ---------- ---------- ----------
0 6 385024 5368 385024 0
11 2 122880 278782 974848 12
12 2 122880 8034 253952 4
13 2 122880 58396 319488 7
14 2 122880 15242 188416 2
15 2 122880 5806 2154496 7
16 2 122880 99134 253952 2
17 5 319488 282314 43180032 38
18 2 122880 6628 516096 3
19 423 49340416 49456954 50192384 5
20 5 319488 280048 450560 2
已选择11行。
SQL> select XIDUSN,XIDSLOT,XIDSQN,UBAFIL,UBABLK,UBASQN,UBAREC,USED_UBLK,USED_UREC,t.STATUS,
2 s.sid,to_char(s.LOGON_TIME,'yyyy-mm-dd hh24:mi:ss')
3 from v$transaction t, v$session s
4 where t.addr = s.taddr
5 ;
XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC USED_UBLK USED_UREC STATUS SID TO_CHAR(S.LOGON_TIM
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- ---------- -------------------
20 5 15 5 380 17 53 34 1901 ACTIVE 127 2012-01-08 16:39:54
新事务使用的自动分配的段20。
参考:
Biti回滚段探究.pdf
http://www.hellodb.net/2009/04/undo.html
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25105315/viewspace-714361/ ,如需转载,请注明出处,否则将追究法律责任。