最近有客户问到v$transaction表used_urec字段是什么意思,看了下官方文档关于v$transaction视图的介绍
其中关于used_urec 的解释为number of undo records used,从字面意思来看,很容易理解为dml操作时影响的行数,但是实际上并非完全如此,下面通过对delete、insert、update操作做undo的相关dump来说明。
1. delete 操作
从上图可以看到当对表做delete操作删除9条数据后,查看v$transaction视图的used_urec字段显示的数据也是9,跟实际操作的行数是一致的,
在dump文件中,也能看到undo的记录数(* Rec #0x相关)也是9行,在每一个undo的记录中都能看到相关的delete删除表的记录信息
2. insert操作
从上图可以看到当对表做insert操作插入了49条数据后,查看v$transaction视图的used_urec字段显示的数据只有1,跟实际操作的行数是不一致的,
在dump文件中,也只能看到undo的记录数(* Rec #0x相关)也只有1行,在这行记录里面记录下了所有insert的信息
3. update操作
从上图可以看到当对表做update操作插入了19条数据后,查看v$transaction视图的used_urec字段显示的数据只有18,跟实际操作的行数是不一致的,
在dump文件中,也只能看到undo的记录数(* Rec #0x相关)也只有18行,但是通过slot检索其实是可以看到19行记录的,这又是什么情况喃,其实在仔细看了Rec的记录后就会发现其中一个Rec中有两条记录
从上面的信息中可以看到,在做insert和update操作的时候,实际操作的行记录是可能存放在同一个record中的,只有delete操作的时候才会放在各自的record中,也是为什么会看到v$transaction表used_urec字段记录的数字会跟实际操作的行数不一致的情况,当然其中是什么原理,这个只有更进一步的了解undo的管理机制才行,后续再做补充。
V$TRANSACTION lists the active transactions in the system.
Column Datatype Description
ADDR RAW(4 | 8) Address of the transaction state object
XIDUSN NUMBER Undo segment number
XIDSLOT NUMBER Slot number
XIDSQN NUMBER Sequence number
UBAFIL NUMBER Undo block address (UBA) filenum
UBABLK NUMBER UBA block number
UBASQN NUMBER UBA sequence number
UBAREC NUMBER UBA record number
STATUS VARCHAR2(16) Status
START_TIME VARCHAR2(20) Start time (wall clock)
START_SCNB NUMBER Start system change number (SCN) base
START_SCNW NUMBER Start SCN wrap
START_UEXT NUMBER Start extent number
START_UBAFIL NUMBER Start UBA file number
START_UBABLK NUMBER Start UBA block number
START_UBASQN NUMBER Start UBA sequence number
START_UBAREC NUMBER Start UBA record number
SES_ADDR RAW(4 | 8) User session object address
FLAG NUMBER Flag
SPACE VARCHAR2(3) YES if a space transaction
RECURSIVE VARCHAR2(3) YES if a recursive transaction
NOUNDO VARCHAR2(3) YES if a no undo transaction
PTX VARCHAR2(3) YES if parallel transaction
NAME VARCHAR2(256) Name of a named transaction
PRV_XIDUSN NUMBER Previous transaction undo segment number
PRV_XIDSLT NUMBER Previous transaction slot number
PRV_XIDSQN NUMBER Previous transaction sequence number
PTX_XIDUSN NUMBER Rollback segment number of the parent XID
PTX_XIDSLT NUMBER Slot number of the parent XID
PTX_XIDSQN NUMBER Sequence number of the parent XID
DSCN-B NUMBER This column is obsolete and maintained for backward compatibility. The value of this column is always equal to the value in DSCN_BASE.
DSCN-W NUMBER This column is obsolete and maintained for backward compatibility. The value of this column is always equal to the value in DSCN_WRAP.
USED_UBLK NUMBER Number of undo blocks used
USED_UREC NUMBER Number of undo records used
LOG_IO NUMBER Logical I/O
PHY_IO NUMBER Physical I/O
CR_GET NUMBER Consistent gets
CR_CHANGE NUMBER Consistent changes
START_DATE DATE Start time (wall clock)
DSCN_BASE NUMBER Dependent SCN base
DSCN_WRAP NUMBER Dependent SCN wrap
START_SCN NUMBER Start SCN
DEPENDENT_SCN NUMBER Dependent SCN
XID RAW(8) Transaction XID
PRV_XID RAW(8) Previous transaction XID
PTX_XID RAW(8) Parent transaction XID
其中关于used_urec 的解释为number of undo records used,从字面意思来看,很容易理解为dml操作时影响的行数,但是实际上并非完全如此,下面通过对delete、insert、update操作做undo的相关dump来说明。
1. delete 操作
SQL>
SQL> delete from test2 where rownum<10;
9 rows deleted.
SQL>
SQL>
SQL> select xidusn,xidslot,xidsqn,ubablk,ubafil,ubarec,used_ublk,used_urec from v$transaction;
XIDUSN XIDSLOT XIDSQN UBABLK UBAFIL UBAREC USED_UBLK USED_UREC
---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
2 7 979 2609 3 49 1 9
SQL>
SQL>
SQL>
SQL>
SQL> ALTER SYSTEM DUMP UNDO BLOCK '_SYSSMU2_2996391332$' XID 2 7 979;
System altered.
SQL>
SQL>
SQL> oradebug setmypid;
Statement processed.
SQL>
SQL> oradebug tracefile_name;
/u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_4755.trc
SQL>
SQL>
[oracle@orl5 ~]$
[oracle@orl5 ~]$ cat /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_4755.trc
Trace file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_4755.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1
System name: Linux
Node name: orl5.oracle.com
Release: 2.6.32-200.13.1.el5uek
Version: #1 SMP Wed Jul 27 21:02:33 EDT 2011
Machine: x86_64
VM name: VMWare Version: 6
Instance name: ora11g
Redo thread mounted by this instance: 1
Oracle process number: 22
Unix process pid: 4755, image: oracle@orl5.oracle.com (TNS V1-V3)
*** 2016-05-23 16:05:20.311
*** SESSION ID:(133.65) 2016-05-23 16:05:20.311
*** CLIENT ID:() 2016-05-23 16:05:20.311
*** SERVICE NAME:(SYS$USERS) 2016-05-23 16:05:20.311
*** MODULE NAME:(sqlplus@orl5.oracle.com (TNS V1-V3)) 2016-05-23 16:05:20.311
*** ACTION NAME:() 2016-05-23 16:05:20.311
********************************************************************************
Undo Segment: _SYSSMU2_2996391332$ (2)
xid: 0x0002.007.000003d3
Low Blk : (0, 0)
High Blk : (4, 127)
Object Id : ALL
Layer : ALL
Opcode : ALL
Level : 2
********************************************************************************
UNDO BLK: Extent: 4 Block: 49 dba (file#, block#): 3,0x00000a31
xid: 0x0002.007.000003d3 seq: 0xa3 cnt: 0x31 irb: 0x31 icl: 0x0 flg: 0x0000
|—v$transaction.ubarec UBA record number
Rec Offset Rec Offset Rec Offset Rec Offset Rec Offset
---------------------------------------------------------------------------
0x01 0x1f7c 0x02 0x1f10 0x03 0x1ea4 0x04 0x1e38 0x05 0x1d88
0x06 0x1cd8 0x07 0x1c6c 0x08 0x1bf0 0x09 0x1b84 0x0a 0x1ad4
0x0b 0x1a68 0x0c 0x19e0 0x0d 0x1984 0x0e 0x18d4 0x0f 0x1824
0x10 0x1778 0x11 0x16c8 0x12 0x1618 0x13 0x156c 0x14 0x14c0
0x15 0x1410 0x16 0x1388 0x17 0x1328 0x18 0x12a0 0x19 0x1240
0x1a 0x11a4 0x1b 0x10f8 0x1c 0x102c 0x1d 0x0f44 0x1e 0x0edc
0x1f 0x0e84 0x20 0x0dfc 0x21 0x0da0 0x22 0x0cf4 0x23 0x0c48
0x24 0x0bc0 0x25 0x0b50 0x26 0x0aa4 0x27 0x0a1c 0x28 0x0988
0x29 0x0884 0x2a 0x07ac 0x2b 0x06d8 0x2c 0x0600 0x2d 0x0528
0x2e 0x0450 0x2f 0x0370 0x30 0x0298 0x31 0x01c0
*-----------------------------
* Rec #0x31 slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x30
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00a31.00a3.30
KDO Op code: IRP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 8(0x8) size/delt: 79
fb: --H-FL-- lb: 0x0 cc: 14
null:
01234567890123456789012345678901234567890123456789012345678901234567890123456789
--N-----------
col 0: [ 3] 53 59 53
col 1: [ 7] 49 5f 43 44 45 46 32
col 2: *NULL*
col 3: [ 2] c1 37
col 4: [ 2] c1 37
col 5: [ 5] 49 4e 44 45 58
col 6: [ 7] 78 6f 09 11 0a 2f 0e
col 7: [ 7] 78 6f 09 11 0a 2f 0e
col 8: [19] 32 30 31 31 2d 30 39 2d 31 37 3a 30 39 3a 34 36 3a 31 33
col 9: [ 5] 56 41 4c 49 44
col 10: [ 1] 4e
col 11: [ 1] 4e
col 12: [ 1] 4e
col 13: [ 2] c1 05
*-----------------------------
* Rec #0x30 slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x2f
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00a31.00a3.2f
KDO Op code: IRP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 7(0x7) size/delt: 78
fb: --H-FL-- lb: 0x0 cc: 14
null:
01234567890123456789012345678901234567890123456789012345678901234567890123456789
--N-----------
col 0: [ 3] 53 59 53
col 1: [ 6] 49 5f 49 4e 44 31
col 2: *NULL*
col 3: [ 2] c1 2a
col 4: [ 2] c1 2a
col 5: [ 5] 49 4e 44 45 58
col 6: [ 7] 78 6f 09 11 0a 2f 0e
col 7: [ 7] 78 6f 09 11 0a 2f 0e
col 8: [19] 32 30 31 31 2d 30 39 2d 31 37 3a 30 39 3a 34 36 3a 31 33
col 9: [ 5] 56 41 4c 49 44
col 10: [ 1] 4e
col 11: [ 1] 4e
col 12: [ 1] 4e
col 13: [ 2] c1 05
*-----------------------------
* Rec #0x2f slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x2e
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00a31.00a3.2e
KDO Op code: IRP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 6(0x6) size/delt: 88
fb: --H-FL-- lb: 0x0 cc: 14
null:
01234567890123456789012345678901234567890123456789012345678901234567890123456789
--N-----------
col 0: [ 3] 53 59 53
col 1: [16] 50 52 4f 58 59 5f 52 4f 4c 45 5f 44 41 54 41 24
col 2: *NULL*
col 3: [ 2] c1 1a
col 4: [ 2] c1 1a
col 5: [ 5] 54 41 42 4c 45
col 6: [ 7] 78 6f 09 11 0a 2f 0e
col 7: [ 7] 78 6f 09 11 0a 2f 0e
col 8: [19] 32 30 31 31 2d 30 39 2d 31 37 3a 30 39 3a 34 36 3a 31 33
col 9: [ 5] 56 41 4c 49 44
col 10: [ 1] 4e
col 11: [ 1] 4e
col 12: [ 1] 4e
col 13: [ 2] c1 02
*-----------------------------
* Rec #0x2e slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x2d
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00a31.00a3.2d
KDO Op code: IRP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 5(0x5) size/delt: 78
fb: --H-FL-- lb: 0x0 cc: 14
null:
01234567890123456789012345678901234567890123456789012345678901234567890123456789
--N-----------
col 0: [ 3] 53 59 53
col 1: [ 6] 49 5f 4f 42 4a 23
col 2: *NULL*
col 3: [ 2] c1 04
col 4: [ 2] c1 04
col 5: [ 5] 49 4e 44 45 58
col 6: [ 7] 78 6f 09 11 0a 2f 0e
col 7: [ 7] 78 6f 09 11 0a 2f 0e
col 8: [19] 32 30 31 31 2d 30 39 2d 31 37 3a 30 39 3a 34 36 3a 31 33
col 9: [ 5] 56 41 4c 49 44
col 10: [ 1] 4e
col 11: [ 1] 4e
col 12: [ 1] 4e
col 13: [ 2] c1 05
*-----------------------------
* Rec #0x2d slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x2c
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00a31.00a3.2c
KDO Op code: IRP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 4(0x4) size/delt: 81
fb: --H-FL-- lb: 0x0 cc: 14
null:
01234567890123456789012345678901234567890123456789012345678901234567890123456789
--N-----------
col 0: [ 3] 53 59 53
col 1: [ 7] 43 5f 43 4f 42 4a 23
col 2: *NULL*
col 3: [ 2] c1 1e
col 4: [ 2] c1 1e
col 5: [ 7] 43 4c 55 53 54 45 52
col 6: [ 7] 78 6f 09 11 0a 2f 0e
col 7: [ 7] 78 6f 09 11 0a 2f 0e
col 8: [19] 32 30 31 31 2d 30 39 2d 31 37 3a 30 39 3a 34 36 3a 31 33
col 9: [ 5] 56 41 4c 49 44
col 10: [ 1] 4e
col 11: [ 1] 4e
col 12: [ 1] 4e
col 13: [ 2] c1 06
*-----------------------------
* Rec #0x2c slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x2b
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00a31.00a3.2b
KDO Op code: IRP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 3(0x3) size/delt: 77
fb: --H-FL-- lb: 0x0 cc: 14
null:
01234567890123456789012345678901234567890123456789012345678901234567890123456789
--N-----------
col 0: [ 3] 53 59 53
col 1: [ 5] 55 4e 44 4f 24
col 2: *NULL*
col 3: [ 2] c1 10
col 4: [ 2] c1 10
col 5: [ 5] 54 41 42 4c 45
col 6: [ 7] 78 6f 09 11 0a 2f 0e
col 7: [ 7] 78 6f 09 11 0a 2f 0e
col 8: [19] 32 30 31 31 2d 30 39 2d 31 37 3a 30 39 3a 34 36 3a 31 33
col 9: [ 5] 56 41 4c 49 44
col 10: [ 1] 4e
col 11: [ 1] 4e
col 12: [ 1] 4e
col 13: [ 2] c1 02
*-----------------------------
* Rec #0x2b slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x2a
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00a31.00a3.2a
KDO Op code: IRP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 2(0x2) size/delt: 76
fb: --H-FL-- lb: 0x0 cc: 14
null:
01234567890123456789012345678901234567890123456789012345678901234567890123456789
--N-----------
col 0: [ 3] 53 59 53
col 1: [ 4] 43 4f 4e 24
col 2: *NULL*
col 3: [ 2] c1 1d
col 4: [ 2] c1 1d
col 5: [ 5] 54 41 42 4c 45
col 6: [ 7] 78 6f 09 11 0a 2f 0e
col 7: [ 7] 78 6f 09 11 0b 05 15
col 8: [19] 32 30 31 31 2d 30 39 2d 31 37 3a 30 39 3a 34 36 3a 31 33
col 9: [ 5] 56 41 4c 49 44
col 10: [ 1] 4e
col 11: [ 1] 4e
col 12: [ 1] 4e
col 13: [ 2] c1 02
*-----------------------------
* Rec #0x2a slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x29
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00a31.00a3.29
KDO Op code: IRP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 1(0x1) size/delt: 79
fb: --H-FL-- lb: 0x0 cc: 14
null:
01234567890123456789012345678901234567890123456789012345678901234567890123456789
--N-----------
col 0: [ 3] 53 59 53
col 1: [ 7] 49 5f 55 53 45 52 31
col 2: *NULL*
col 3: [ 2] c1 2f
col 4: [ 2] c1 2f
col 5: [ 5] 49 4e 44 45 58
col 6: [ 7] 78 6f 09 11 0a 2f 0e
col 7: [ 7] 78 6f 09 11 0a 2f 0e
col 8: [19] 32 30 31 31 2d 30 39 2d 31 37 3a 30 39 3a 34 36 3a 31 33
col 9: [ 5] 56 41 4c 49 44
col 10: [ 1] 4e
col 11: [ 1] 4e
col 12: [ 1] 4e
col 13: [ 2] c1 05
*-----------------------------
* Rec #0x29 slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x00
Undo type: Regular undo Begin trans Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000Ext idx: 0
flg2: 0
*-----------------------------
uba: 0x00c00a31.00a3.28 ctl max scn: 0x0000.00149fc5 prv tx scn: 0x0000.00149fd9
txn start scn: scn: 0x0000.00000000 logon user: 90
prev brb: 12585520 prev bcl: 0
KDO undo record:
KTB Redo
op: 0x03 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: Z
KDO Op code: IRP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 0(0x0) size/delt: 77
fb: --H-FL-- lb: 0x0 cc: 14
null:
01234567890123456789012345678901234567890123456789012345678901234567890123456789
--N-----------
col 0: [ 3] 53 59 53
col 1: [ 5] 49 43 4f 4c 24
col 2: *NULL*
col 3: [ 2] c1 15
col 4: [ 2] c1 03
col 5: [ 5] 54 41 42 4c 45
col 6: [ 7] 78 6f 09 11 0a 2f 0e
col 7: [ 7] 78 6f 09 11 0a 3b 01
col 8: [19] 32 30 31 31 2d 30 39 2d 31 37 3a 30 39 3a 34 36 3a 31 33
col 9: [ 5] 56 41 4c 49 44
col 10: [ 1] 4e
col 11: [ 1] 4e
col 12: [ 1] 4e
col 13: [ 2] c1 02
+++++++++++ Next block not in extent map - rollback segment has been shrunk.
+ WARNING + Block dba (file#, block#): 0,0x00000000
+++++++++++
*************************************
Total undo blocks scanned = 1
Total undo records scanned = 9
Total undo blocks dumped = 1
Total undo records dumped = 9
##Total warnings issued = 1
*************************************
*** 2016-05-23 16:05:28.799
Processing Oradebug command 'setmypid'
*** 2016-05-23 16:05:28.800
Oradebug command 'setmypid' console output: <none>
*** 2016-05-23 16:05:36.698
Processing Oradebug command 'tracefile_name'
*** 2016-05-23 16:05:36.698
Oradebug command 'tracefile_name' console output:
/u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_4755.trc
[oracle@orl5 ~]$
[oracle@orl5 ~]$
[oracle@orl5 ~]$ cat /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_4755.trc|grep "Rec #"
* Rec #0x31 slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x30 slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x2f slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x2e slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x2d slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x2c slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x2b slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x2a slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x29 slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
[oracle@orl5 ~]$
从上图可以看到当对表做delete操作删除9条数据后,查看v$transaction视图的used_urec字段显示的数据也是9,跟实际操作的行数是一致的,
在dump文件中,也能看到undo的记录数(* Rec #0x相关)也是9行,在每一个undo的记录中都能看到相关的delete删除表的记录信息
*-----------------------------
* Rec #0x30 slt: 0x07 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x2f
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00a31.00a3.2f
KDO Op code: IRP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 7(0x7) size/delt: 78
fb: --H-FL-- lb: 0x0 cc: 14
null:
01234567890123456789012345678901234567890123456789012345678901234567890123456789
--N-----------
col 0: [ 3] 53 59 53
col 1: [ 6] 49 5f 49 4e 44 31
col 2: *NULL*
col 3: [ 2] c1 2a
col 4: [ 2] c1 2a
col 5: [ 5] 49 4e 44 45 58
col 6: [ 7] 78 6f 09 11 0a 2f 0e
col 7: [ 7] 78 6f 09 11 0a 2f 0e
col 8: [19] 32 30 31 31 2d 30 39 2d 31 37 3a 30 39 3a 34 36 3a 31 33
col 9: [ 5] 56 41 4c 49 44
col 10: [ 1] 4e
col 11: [ 1] 4e
col 12: [ 1] 4e
col 13: [ 2] c1 05
2. insert操作
SQL>
SQL> insert into test2 select * from dba_objects where rownum<50;
49 rows created.
SQL>
SQL>
SQL> select xidusn,xidslot,xidsqn,ubablk,ubafil,ubarec,used_ublk,used_urec from v$transaction;
XIDUSN XIDSLOT XIDSQN UBABLK UBAFIL UBAREC USED_UBLK USED_UREC
---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
9 29 1068 31551 3 32 1 1
SQL>
SQL> select s.usn,n.name,s.extents,s.hwmsize,s.status from v$rollstat s, v$rollname n where s.usn=n.usn;
USN NAME EXTENTS HWMSIZE STATUS
---------- ------------------------------ ---------- ---------- ---------------
0 SYSTEM 6 385024 ONLINE
1 _SYSSMU1_3724004606$ 5 2285568 ONLINE
2 _SYSSMU2_2996391332$ 5 2285568 ONLINE
3 _SYSSMU3_1723003836$ 5 3268608 ONLINE
4 _SYSSMU4_1254879796$ 7 450560 ONLINE
5 _SYSSMU5_898567397$ 4 2220032 ONLINE
6 _SYSSMU6_1263032392$ 7 450560 ONLINE
7 _SYSSMU7_2070203016$ 23 22142976 ONLINE
8 _SYSSMU8_517538920$ 4 253952 ONLINE
9 _SYSSMU9_1650507775$ 20 26337280 ONLINE
10 _SYSSMU10_1197734989$ 10 7528448 ONLINE
11 rows selected.
SQL>
SQL>
SQL>
SQL> ALTER SYSTEM DUMP UNDO BLOCK '_SYSSMU9_1650507775$' XID 9 29 1068;
System altered.
SQL>
SQL>
SQL> oradebug setmypid;
Statement processed.
SQL>
SQL>
SQL> oradebug tracefile_name;
/u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_4985.trc
SQL>
SQL>
[oracle@orl5 ~]$
[oracle@orl5 ~]$ cat /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_4985.trc
Trace file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_4985.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1
System name: Linux
Node name: orl5.oracle.com
Release: 2.6.32-200.13.1.el5uek
Version: #1 SMP Wed Jul 27 21:02:33 EDT 2011
Machine: x86_64
VM name: VMWare Version: 6
Instance name: ora11g
Redo thread mounted by this instance: 1
Oracle process number: 31
Unix process pid: 4985, image: oracle@orl5.oracle.com (TNS V1-V3)
*** 2016-05-23 16:31:56.910
*** SESSION ID:(192.69) 2016-05-23 16:31:56.910
*** CLIENT ID:() 2016-05-23 16:31:56.910
*** SERVICE NAME:(SYS$USERS) 2016-05-23 16:31:56.910
*** MODULE NAME:(sqlplus@orl5.oracle.com (TNS V1-V3)) 2016-05-23 16:31:56.910
*** ACTION NAME:() 2016-05-23 16:31:56.910
********************************************************************************
Undo Segment: _SYSSMU9_1650507775$ (9)
xid: 0x0009.01d.0000042c
Low Blk : (0, 0)
High Blk : (19, 127)
Object Id : ALL
Layer : ALL
Opcode : ALL
Level : 2
********************************************************************************
UNDO BLK: Extent: 18 Block: 63 dba (file#, block#): 3,0x00007b3f
xid: 0x0009.01d.0000042c seq: 0x11b cnt: 0x20 irb: 0x20 icl: 0x0 flg: 0x0000
|—v$transaction.ubarec UBA record number
Rec Offset Rec Offset Rec Offset Rec Offset Rec Offset
---------------------------------------------------------------------------
0x01 0x1fa4 0x02 0x1f4c 0x03 0x1ec4 0x04 0x1e68 0x05 0x1db8
0x06 0x1d4c 0x07 0x1c9c 0x08 0x1c30 0x09 0x1b80 0x0a 0x1ad4
0x0b 0x1a28 0x0c 0x197c 0x0d 0x18d0 0x0e 0x1824 0x0f 0x1778
0x10 0x16cc 0x11 0x1620 0x12 0x1574 0x13 0x14c8 0x14 0x1418
0x15 0x139c 0x16 0x1330 0x17 0x12b4 0x18 0x1204 0x19 0x1154
0x1a 0x10e8 0x1b 0x1038 0x1c 0x0f88 0x1d 0x0ed8 0x1e 0x0e28
0x1f 0x0dbc 0x20 0x0ce8
*-----------------------------
* Rec #0x20 slt: 0x1d objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x00
Undo type: Regular undo Begin trans Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000Ext idx: 0
flg2: 0
*-----------------------------
uba: 0x00c07b3f.011b.1e ctl max scn: 0x0000.0014a0ad prv tx scn: 0x0000.0014a0b9
txn start scn: scn: 0x0000.0014a98b logon user: 90
prev brb: 12614449 prev bcl: 0
KDO undo record:
KTB Redo
op: 0x03 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: Z
KDO Op code: QMD row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x01000795 hdba: 0x0100020a
itli: 1 ispac: 0 maxfr: 4858
tabn: 0 lock: 0 nrow: 49 -----新插入的行记录
slot[0]: 0
slot[1]: 1
slot[2]: 2
slot[3]: 3
slot[4]: 4
slot[5]: 5
slot[6]: 6
slot[7]: 7
slot[8]: 8
slot[9]: 9
slot[10]: 10
slot[11]: 11
slot[12]: 12
slot[13]: 13
slot[14]: 14
slot[15]: 15
slot[16]: 16
slot[17]: 17
slot[18]: 18
slot[19]: 19
slot[20]: 20
slot[21]: 21
slot[22]: 22
slot[23]: 23
slot[24]: 24
slot[25]: 25
slot[26]: 26
slot[27]: 27
slot[28]: 28
slot[29]: 29
slot[30]: 30
slot[31]: 31
slot[32]: 32
slot[33]: 33
slot[34]: 34
slot[35]: 35
slot[36]: 36
slot[37]: 37
slot[38]: 38
slot[39]: 39
slot[40]: 40
slot[41]: 41
slot[42]: 42
slot[43]: 43
slot[44]: 44
slot[45]: 45
slot[46]: 46
slot[47]: 47
slot[48]: 48
+++++++++++ Next block not in extent map - rollback segment has been shrunk.
+ WARNING + Block dba (file#, block#): 0,0x00000000
+++++++++++
*************************************
Total undo blocks scanned = 1
Total undo records scanned = 1
Total undo blocks dumped = 1
Total undo records dumped = 1
##Total warnings issued = 1
*************************************
*** 2016-05-23 16:32:04.498
Processing Oradebug command 'setmypid'
*** 2016-05-23 16:32:04.498
Oradebug command 'setmypid' console output: <none>
*** 2016-05-23 16:32:11.642
Processing Oradebug command 'tracefile_name'
*** 2016-05-23 16:32:11.642
Oradebug command 'tracefile_name' console output:
/u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_4985.trc
[oracle@orl5 ~]$
[oracle@orl5 ~]$
[oracle@orl5 ~]$ cat /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_4985.trc|grep "Rec #"
* Rec #0x20 slt: 0x1d objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
[oracle@orl5 ~]$
[oracle@orl5 ~]$
[oracle@orl5 ~]$
[oracle@orl5 ~]$ cat /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_4985.trc|grep "slot"|wc -l
49
[oracle@orl5 ~]$
[oracle@orl5 ~]$
从上图可以看到当对表做insert操作插入了49条数据后,查看v$transaction视图的used_urec字段显示的数据只有1,跟实际操作的行数是不一致的,
在dump文件中,也只能看到undo的记录数(* Rec #0x相关)也只有1行,在这行记录里面记录下了所有insert的信息
*-----------------------------
* Rec #0x20 slt: 0x1d objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x00
Undo type: Regular undo Begin trans Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000Ext idx: 0
flg2: 0
*-----------------------------
uba: 0x00c07b3f.011b.1e ctl max scn: 0x0000.0014a0ad prv tx scn: 0x0000.0014a0b9
txn start scn: scn: 0x0000.0014a98b logon user: 90
prev brb: 12614449 prev bcl: 0
KDO undo record:
KTB Redo
op: 0x03 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: Z
KDO Op code: QMD row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x01000795 hdba: 0x0100020a
itli: 1 ispac: 0 maxfr: 4858
tabn: 0 lock: 0 nrow: 49 -----新插入的行记录
slot[0]: 0
slot[1]: 1
slot[2]: 2
slot[3]: 3
slot[4]: 4
slot[5]: 5
slot[6]: 6
slot[7]: 7
slot[8]: 8
slot[9]: 9
slot[10]: 10
slot[11]: 11
slot[12]: 12
slot[13]: 13
slot[14]: 14
slot[15]: 15
slot[16]: 16
slot[17]: 17
slot[18]: 18
slot[19]: 19
slot[20]: 20
slot[21]: 21
slot[22]: 22
slot[23]: 23
slot[24]: 24
slot[25]: 25
slot[26]: 26
slot[27]: 27
slot[28]: 28
slot[29]: 29
slot[30]: 30
slot[31]: 31
slot[32]: 32
slot[33]: 33
slot[34]: 34
slot[35]: 35
slot[36]: 36
slot[37]: 37
slot[38]: 38
slot[39]: 39
slot[40]: 40
slot[41]: 41
slot[42]: 42
slot[43]: 43
slot[44]: 44
slot[45]: 45
slot[46]: 46
slot[47]: 47
slot[48]: 48
3. update操作
SQL>
SQL> update test2 set object_name='TEST' where rownum<20;
19 rows updated.
SQL>
SQL>
SQL>
SQL> set lines 200
SQL>
SQL>
SQL> select xidusn,xidslot,xidsqn,ubablk,ubafil,ubarec,used_ublk,used_urec from v$transaction;
XIDUSN XIDSLOT XIDSQN UBABLK UBAFIL UBAREC USED_UBLK USED_UREC
---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
3 20 1014 2981 3 31 1 18
SQL>
SQL> select s.usn,n.name,s.extents,s.hwmsize,s.status from v$rollstat s, v$rollname n where s.usn=n.usn;
USN NAME EXTENTS HWMSIZE STATUS
---------- ------------------------------ ---------- ---------- ---------------
0 SYSTEM 6 385024 ONLINE
1 _SYSSMU1_3724004606$ 5 2285568 ONLINE
2 _SYSSMU2_2996391332$ 5 2285568 ONLINE
3 _SYSSMU3_1723003836$ 5 3268608 ONLINE
4 _SYSSMU4_1254879796$ 7 450560 ONLINE
5 _SYSSMU5_898567397$ 4 2220032 ONLINE
6 _SYSSMU6_1263032392$ 7 450560 ONLINE
7 _SYSSMU7_2070203016$ 23 22142976 ONLINE
8 _SYSSMU8_517538920$ 4 253952 ONLINE
9 _SYSSMU9_1650507775$ 20 26337280 ONLINE
10 _SYSSMU10_1197734989$ 10 7528448 ONLINE
11 rows selected.
SQL>
SQL>
SQL>
SQL>
SQL> ALTER SYSTEM DUMP UNDO BLOCK '_SYSSMU3_1723003836$' XID 3 20 1014;
System altered.
SQL>
SQL> oradebug setmypid
Statement processed.
SQL>
SQL> oradebug tracefile_name
/u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_5152.trc
SQL>
SQL>
[oracle@orl5 ~]$
[oracle@orl5 ~]$ cat /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_5152.trc
Trace file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_5152.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1
System name: Linux
Node name: orl5.oracle.com
Release: 2.6.32-200.13.1.el5uek
Version: #1 SMP Wed Jul 27 21:02:33 EDT 2011
Machine: x86_64
VM name: VMWare Version: 6
Instance name: ora11g
Redo thread mounted by this instance: 1
Oracle process number: 32
Unix process pid: 5152, image: oracle@orl5.oracle.com (TNS V1-V3)
*** 2016-05-23 16:54:39.948
*** SESSION ID:(9.89) 2016-05-23 16:54:39.948
*** CLIENT ID:() 2016-05-23 16:54:39.948
*** SERVICE NAME:(SYS$USERS) 2016-05-23 16:54:39.948
*** MODULE NAME:(sqlplus@orl5.oracle.com (TNS V1-V3)) 2016-05-23 16:54:39.948
*** ACTION NAME:() 2016-05-23 16:54:39.948
********************************************************************************
Undo Segment: _SYSSMU3_1723003836$ (3)
xid: 0x0003.014.000003f6
Low Blk : (0, 0)
High Blk : (4, 127)
Object Id : ALL
Layer : ALL
Opcode : ALL
Level : 2
********************************************************************************
UNDO BLK: Extent: 4 Block: 37 dba (file#, block#): 3,0x00000ba5
xid: 0x0003.014.000003f6 seq: 0xe5 cnt: 0x1f irb: 0x1f icl: 0x0 flg: 0x0000
Rec Offset Rec Offset Rec Offset Rec Offset Rec Offset
---------------------------------------------------------------------------
0x01 0x1f98 0x02 0x1f48 0x03 0x1ea4 0x04 0x1e1c 0x05 0x1dbc
0x06 0x1d68 0x07 0x1d04 0x08 0x1c4c 0x09 0x1be0 0x0a 0x1b84
0x0b 0x1b20 0x0c 0x1acc 0x0d 0x1a0c 0x0e 0x1980 0x0f 0x1914
0x10 0x18b4 0x11 0x1838 0x12 0x17d0 0x13 0x1770 0x14 0x1710
0x15 0x16b0 0x16 0x1650 0x17 0x15f0 0x18 0x154c 0x19 0x14ec
0x1a 0x148c 0x1b 0x1410 0x1c 0x13b0 0x1d 0x1350 0x1e 0x12d4
0x1f 0x1270
*-----------------------------
* Rec #0x1f slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x1e
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.1e
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 27(0x1b) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 7
col 1: [11] 50 52 4f 58 59 5f 44 41 54 41 24
*-----------------------------
* Rec #0x1e slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x1d
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.1d
Array Update of 1 rows:
tabn: 0 slot: 26(0x1a) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
vect = 4
col 1: [ 4] 43 4c 55 24
*-----------------------------
* Rec #0x1d slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x1c
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.1c
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 25(0x19) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 3
col 1: [ 7] 49 5f 55 4e 44 4f 32
*-----------------------------
* Rec #0x1c slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x1b
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.1b
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 24(0x18) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 1
col 1: [ 5] 49 5f 54 53 31
*-----------------------------
* Rec #0x1b slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x1a
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.1a
Array Update of 1 rows:
tabn: 0 slot: 23(0x17) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
vect = 4
col 1: [ 4] 43 4f 4c 24
*-----------------------------
* Rec #0x1a slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x19
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.19
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 22(0x16) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 3
col 1: [ 7] 49 5f 46 49 4c 45 32
*-----------------------------
* Rec #0x19 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x18
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.18
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 21(0x15) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 1
col 1: [ 5] 43 5f 54 53 23
*-----------------------------
* Rec #0x18 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x17
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.17
Array Update of 2 rows:
tabn: 0 slot: 19(0x13) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
vect = 4
col 1: [ 4] 49 4e 44 24
tabn: 0 slot: 20(0x14) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
vect = 4
col 1: [ 4] 53 45 47 24
*-----------------------------
* Rec #0x17 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x16
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.16
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 18(0x12) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 3
col 1: [ 7] 49 5f 43 44 45 46 34
*-----------------------------
* Rec #0x16 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x15
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.15
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 17(0x11) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 1
col 1: [ 5] 49 5f 54 53 23
*-----------------------------
* Rec #0x15 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x14
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.14
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 16(0x10) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 2
col 1: [ 6] 49 5f 4f 42 4a 33
*-----------------------------
* Rec #0x14 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x13
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.13
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 15(0xf) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 2
col 1: [ 6] 49 5f 43 4f 4e 31
*-----------------------------
* Rec #0x13 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x12
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.12
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 14(0xe) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 3
col 1: [ 7] 49 5f 46 49 4c 45 31
*-----------------------------
* Rec #0x12 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x11
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.11
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 13(0xd) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 10
col 1: [14] 49 5f 46 49 4c 45 23 5f 42 4c 4f 43 4b 23
*-----------------------------
* Rec #0x11 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x10
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.10
Array Update of 1 rows:
tabn: 0 slot: 12(0xc) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
vect = 4
col 1: [ 4] 55 45 54 24
*-----------------------------
* Rec #0x10 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x0f
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.0f
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 11(0xb) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 1
col 1: [ 5] 46 49 4c 45 24
*-----------------------------
* Rec #0xf slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x0e
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.0e
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 10(0xa) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 16
col 1: [20] 49 5f 50 52 4f 58 59 5f 52 4f 4c 45 5f 44 41 54 41 24 5f 31
*-----------------------------
* Rec #0xe slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x00
Undo type: Regular undo Begin trans Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000Ext idx: 0
flg2: 0
*-----------------------------
uba: 0x00c00ba5.00e5.04 ctl max scn: 0x0000.0014a065 prv tx scn: 0x0000.0014a083
txn start scn: scn: 0x0000.00000000 logon user: 90
prev brb: 12585891 prev bcl: 0
KDO undo record:
KTB Redo
op: 0x03 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: Z
KDO Op code: URP row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
tabn: 0 slot: 9(0x9) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 2
col 1: [ 6] 49 5f 4f 42 4a 35
+++++++++++ Next block not in extent map - rollback segment has been shrunk.
+ WARNING + Block dba (file#, block#): 0,0x00000000
+++++++++++
*************************************
Total undo blocks scanned = 1
Total undo records scanned = 18
Total undo blocks dumped = 1
Total undo records dumped = 18
##Total warnings issued = 1
*************************************
*** 2016-05-23 16:54:57.409
Processing Oradebug command 'setmypid'
*** 2016-05-23 16:54:57.409
Oradebug command 'setmypid' console output: <none>
*** 2016-05-23 16:55:05.167
Processing Oradebug command 'tracefile_name'
*** 2016-05-23 16:55:05.167
Oradebug command 'tracefile_name' console output:
/u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_5152.trc
[oracle@orl5 ~]$
[oracle@orl5 ~]$
[oracle@orl5 ~]$
[oracle@orl5 ~]$
[oracle@orl5 ~]$
[oracle@orl5 ~]$ cat /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_5152.trc|grep "Rec #"
* Rec #0x1f slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x1e slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x1d slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x1c slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x1b slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x1a slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x19 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x18 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x17 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x16 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x15 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x14 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x13 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x12 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x11 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0x10 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0xf slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Rec #0xe slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
[oracle@orl5 ~]$
[oracle@orl5 ~]$
[oracle@orl5 ~]$ cat /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_5152.trc|grep "Rec #"|wc -l
18
[oracle@orl5 ~]$
[oracle@orl5 ~]$
[oracle@orl5 ~]$
[oracle@orl5 ~]$ cat /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_5152.trc|grep "slot:"|wc -l
19
[oracle@orl5 ~]$
从上图可以看到当对表做update操作插入了19条数据后,查看v$transaction视图的used_urec字段显示的数据只有18,跟实际操作的行数是不一致的,
在dump文件中,也只能看到undo的记录数(* Rec #0x相关)也只有18行,但是通过slot检索其实是可以看到19行记录的,这又是什么情况喃,其实在仔细看了Rec的记录后就会发现其中一个Rec中有两条记录
*-----------------------------
* Rec #0x18 slt: 0x14 objn: 89055(0x00015bdf) objd: 89055 tblspc: 4(0x00000004)
* Layer: 11 (Row) opc: 1 rci 0x17
Undo type: Regular undo Last buffer split: No
Temp Object: No
Tablespace Undo: No
rdba: 0x00000000
*-----------------------------
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c00ba5.00e5.17
Array Update of 2 rows:
tabn: 0 slot: 19(0x13) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
vect = 4
col 1: [ 4] 49 4e 44 24
tabn: 0 slot: 20(0x14) flag: 0x2c lock: 0 ckix: 12
ncol: 14 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0100020b hdba: 0x0100020a
itli: 3 ispac: 0 maxfr: 4858
vect = 4
col 1: [ 4] 53 45 47 24
从上面的信息中可以看到,在做insert和update操作的时候,实际操作的行记录是可能存放在同一个record中的,只有delete操作的时候才会放在各自的record中,也是为什么会看到v$transaction表used_urec字段记录的数字会跟实际操作的行数不一致的情况,当然其中是什么原理,这个只有更进一步的了解undo的管理机制才行,后续再做补充。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。