从一个事务开始,回滚段,数据块的研究

21:57:36 kiwi@prod> select sid from v$mystat where rownum=1; 

SID 
------------- 
9

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 
------------- ---------- --------- ------------- ------------------- ------------- ------------- ------------- 
7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20 
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30 
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30 
7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 20 
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30 
7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30 
7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10 
7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20 
7839 KING PRESIDENT 1981-11-17 00:00:00 5000 10 
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30 
7876 ADAMS CLERK 7788 1987-05-23 00:00:00 1100 20 
7900 JAMES CLERK 7698 1981-12-03 00:00:00 950 30 
7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 20 
7934 MILLER CLERK 7782 1982-01-23 00:00:00 1300 10 

14 rows selected. 

Elapsed: 00:00:00.00 
21:55:47 kiwi@prod> insert into emp select * from emp where empno=7788; 

1 row created. 

Elapsed: 00:00:00.02 
21:56:36 kiwi@prod> select * from emp; 

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 
------------- ---------- --------- ------------- ------------------- ------------- ------------- ------------- 
7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20 
7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30 
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30 
7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 20 
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30 
7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30 
7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10 
7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20 
7839 KING PRESIDENT 1981-11-17 00:00:00 5000 10 
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30 
7876 ADAMS CLERK 7788 1987-05-23 00:00:00 1100 20 
7900 JAMES CLERK 7698 1981-12-03 00:00:00 950 30 
7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 20 
7934 MILLER CLERK 7782 1982-01-23 00:00:00 1300 10 
7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20 

15 rows selected. 

Elapsed: 00:00:00.00 
21:56:40 kiwi@prod> update emp set sal=4000 where empno=7900; 

1 row updated. 

Elapsed: 00:00:00.01 
21:57:08 kiwi@prod> delete from emp where empno=7499; 

1 row deleted. 

Elapsed: 00:00:00.00 
21:57:26 kiwi@prod> select * from emp; 

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 
------------- ---------- --------- ------------- ------------------- ------------- ------------- ------------- 
7369 SMITH CLERK 7902 1980-12-17 00:00:00 800 20 
7521 WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30 
7566 JONES MANAGER 7839 1981-04-02 00:00:00 2975 20 
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30 
7698 BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30 
7782 CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10 
7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20 
7839 KING PRESIDENT 1981-11-17 00:00:00 5000 10 
7844 TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30 
7876 ADAMS CLERK 7788 1987-05-23 00:00:00 1100 20 
7900 JAMES CLERK 7698 1981-12-03 00:00:00 4000 30 
7902 FORD ANALYST 7566 1981-12-03 00:00:00 3000 20 
7934 MILLER CLERK 7782 1982-01-23 00:00:00 1300 10 
7788 SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20 

14 rows selected. 

Elapsed: 00:00:00.01




21:58:48 sys@prod> select * from v$transaction where addr=(select taddr from v$session where sid=&id) ; 
Enter value for id: 9 
old 1: select * from v$transaction where addr=(select taddr from v$session where sid=&id) 
new 1: select * from v$transaction where addr=(select taddr from v$session where sid=9) 

ADDR XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC 
---------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- 
STATUS START_TIME START_SCNB START_SCNW START_UEXT START_UBAFIL START_UBABLK START_UBASQN 
---------------- -------------------- ------------- ------------- ------------- ------------- ------------- ------------- 
START_UBAREC SES_ADDR FLAG SPA REC NOU PTX 
------------- ---------------- ------------- --- --- --- --- 
NAME 
---------------------------------------------------------------------------------------------------------------------------------- 
PRV_XIDUSN PRV_XIDSLT PRV_XIDSQN PTX_XIDUSN PTX_XIDSLT PTX_XIDSQN DSCN-B DSCN-W USED_UBLK 
------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- ------------- 
USED_UREC LOG_IO PHY_IO CR_GET CR_CHANGE START_DATE DSCN_BASE DSCN_WRAP 
------------- ------------- ------------- ------------- ------------- ------------------- ------------- ------------- 
START_SCN DEPENDENT_SCN XID PRV_XID PTX_XID 
------------- ------------- ---------------- ---------------- ---------------- 
00000000BCF1C7D0 9 12 1145 3 1170 313 20 
ACTIVE 12/20/14 21:56:36 1231770 0 2 3 1170 313 
18 00000000BF667B70 3587 NO NO NO NO 

0 0 0 0 0 0 0 0 1 
3 7 2 18 0 2014-12-20 21:56:36 0 0 
1231770 0 09000C0079040000 0000000000000000 0000000000000000


21:59:58 sys@prod> select name from v$rollname where usn=9; 

NAME 
------------------------------ 
_SYSSMU9_1650507775$


22:00:29 sys@prod> oradebug setmypid 
Statement processed. 
22:03:10 sys@prod> alter system dump undo header "_SYSSMU9_1650507775$"; 

System altered. 

Elapsed: 00:00:00.01 
22:03:46 sys@prod> oradebug tracefile_name 
/u01/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_41135.trc

查看trace文件里面的内容:

********************************************************************************
Undo Segment: _SYSSMU9_1650507775$ (9)
********************************************************************************
  Extent Control Header
  -----------------------------------------------------------------
  Extent Header:: spare1: 0 spare2: 0 #extents: 4 #blocks: 271
                  last map 0x00000000 #maps: 0 offset: 4080
      Highwater:: 0x00c00492 ext#: 2 blk#: 18 ext size: 128
  #blocks in seg. hdr's freelists: 0
  #blocks below: 0
  mapblk 0x00000000 offset: 2
                   Unlocked
     Map Header:: next 0x00000000 #extents: 4 obj#: 0 flag: 0x40000000
  Extent Map
  -----------------------------------------------------------------
   0x00c00101 length: 7
   0x00c03a80 length: 8
   0x00c00480 length: 128
   0x00c00500 length: 128
 
 Retention Table
  -----------------------------------------------------------
 Extent Number:0 Commit Time: 1419081362
 Extent Number:1 Commit Time: 1419082010
 Extent Number:2 Commit Time: 1419082010
 Extent Number:3 Commit Time: 1419080679
 
  TRN CTL:: seq: 0x0139 chd: 0x0015 ctl: 0x0003 inc: 0x00000000 nfb: 0x0000
            mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)
            uba: 0x00c00492.0139.12 scn: 0x0000.0012c828
Version: 0x01
  FREE BLOCK POOL::
    uba: 0x00000000.0139.11 ext: 0x2 spc: 0x1674
    uba: 0x00000000.0136.0a ext: 0x3 spc: 0x11ca
    uba: 0x00000000.0136.0b ext: 0x3 spc: 0x674
    uba: 0x00000000.00bb.01 ext: 0x2 spc: 0x1f84
    uba: 0x00000000.00bb.01 ext: 0x2 spc: 0x1f84
  TRN TBL::

  index state cflags wrap# uel scn dba parent-xid nub stmt_num cmt
  ------------------------------------------------------------------------------------------------
   0x00 9 0x00 0x047b 0x001f 0x0000.0012c91c 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083523
   0x01 9 0x00 0x047a 0x0006 0x0000.0012c9b0 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083621
   0x02 9 0x00 0x047b 0x0012 0x0000.0012cb05 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083655
   0x03 9 0x00 0x047b 0xffff 0x0000.0012cba8 0x00c00492 0x0000.000.00000000 0x00000001 0x00000000 1419083755
   0x04 9 0x00 0x0479 0x0001 0x0000.0012c9a0 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083621
   0x05 9 0x00 0x047b 0x0017 0x0000.0012cb30 0x00c00492 0x0000.000.00000000 0x00000001 0x00000000 1419083657
   0x06 9 0x00 0x047b 0x000a 0x0000.0012c9c7 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083621
   0x07 9 0x00 0x047b 0x0016 0x0000.0012c97d 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083621
   0x08 9 0x00 0x047a 0x001a 0x0000.0012c85d 0x00c0048f 0x0000.000.00000000 0x00000001 0x00000000 1419083277
   0x09 9 0x00 0x0479 0x001b 0x0000.0012c8a1 0x00000000 0x0000.000.00000000 0x00000000 0x00000000 1419083375
   0x0a 9 0x00 0x047b 0x0014 0x0000.0012c9d0 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083621
   0x0b 9 0x00 0x047a 0x0000 0x0000.0012c90b 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083514
   0x0c 10 0x80 0x0479 0x0002 0x0000.0012cb9a 0x00c00492 0x0000.000.00000000 0x00000001 0x00000000 0
22:03:55 sys@prod> select to_number('0c','xx') from dual; 
TO_NUMBER('0C','XX') 
-------------------- 
12
这个就是我们在v$transaction 视图中看到的事务槽的
根据wrap#
22:07:31 sys@prod> select to_number('479','xxx') from dual; 
TO_NUMBER('479','XXX') 
---------------------- 
1145 
这个就是v$transaction 里面的XIDSQN

里面dba使用工具可以得出undo块的内容
23:42:01 sys@prod> SELECT DBMS_UTILITY.data_block_address_file ( 
23:42:20 2 TO_NUMBER (LTRIM ('0x00c00492', '0x'), 'xxxxxxxx')) 
23:42:20 3 AS file_no, 
23:42:20 4 DBMS_UTILITY.data_block_address_block ( 
23:42:20 5 TO_NUMBER (LTRIM ('0x00c00492', '0x'), 'xxxxxxxx')) 
23:42:20 6 AS block_no 
23:42:20 7 FROM DUAL; 

FILE_NO BLOCK_NO 
------------- ------------- 
3 1170 

我们可以通过dump这个数据块来查看里面的 内容或者使用undo dump的方式来只dump 某个dump段的内容

   0x0d 9 0x00 0x047b 0x000e 0x0000.0012cb6a 0x00c00492 0x0000.000.00000000 0x00000001 0x00000000 1419083695
   0x0e 9 0x00 0x047b 0x0003 0x0000.0012cb8c 0x00c00492 0x0000.000.00000000 0x00000001 0x00000000 1419083718
   0x0f 9 0x00 0x047a 0x0010 0x0000.0012ca43 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083651
   0x10 9 0x00 0x047b 0x0002 0x0000.0012caf2 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083654
   0x11 9 0x00 0x0479 0x0009 0x0000.0012c888 0x00c0048f 0x0000.000.00000000 0x00000001 0x00000000 1419083334
   0x12 9 0x00 0x047b 0x0005 0x0000.0012cb1a 0x00c00492 0x0000.000.00000000 0x00000003 0x00000000 1419083656
   0x13 9 0x00 0x0478 0x001d 0x0000.0012c851 0x00c0048f 0x0000.000.00000000 0x00000001 0x00000000 1419083274
   0x14 9 0x00 0x0479 0x000f 0x0000.0012ca14 0x00000000 0x0000.000.00000000 0x00000000 0x00000000 1419083649
   0x15 9 0x00 0x047a 0x0013 0x0000.0012c834 0x00c0048f 0x0000.000.00000000 0x00000001 0x00000000 1419083226
   0x16 9 0x00 0x047a 0x0021 0x0000.0012c983 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083621
   0x17 9 0x00 0x047a 0x000d 0x0000.0012cb44 0x00c00492 0x0000.000.00000000 0x00000001 0x00000000 1419083668
   0x18 9 0x00 0x047a 0x0007 0x0000.0012c94d 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083573
   0x19 9 0x00 0x047a 0x0020 0x0000.0012c8b2 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083393
   0x1a 9 0x00 0x0479 0x0011 0x0000.0012c87b 0x00c0048f 0x0000.000.00000000 0x00000001 0x00000000 1419083334
   0x1b 9 0x00 0x0479 0x0019 0x0000.0012c8a6 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083375
   0x1c 9 0x00 0x047a 0x001e 0x0000.0012c8e5 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083454
   0x1d 9 0x00 0x047a 0x0008 0x0000.0012c855 0x00c0048f 0x0000.000.00000000 0x00000001 0x00000000 1419083274
   0x1e 9 0x00 0x047a 0x000b 0x0000.0012c8e9 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083454
   0x1f 9 0x00 0x047a 0x0018 0x0000.0012c93b 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083562
   0x20 9 0x00 0x047a 0x001c 0x0000.0012c8d2 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083429
   0x21 9 0x00 0x0479 0x0004 0x0000.0012c987 0x00c00490 0x0000.000.00000000 0x00000001 0x00000000 1419083621
  EXT TRN CTL::
  usn: 9
  sp1:0x00000000 sp2:0x00000000 sp3:0x00000000 sp4:0x00000000
  sp5:0x00000000 sp6:0x00000000 sp7:0x00000000 sp8:0x00000000

我们再来dump出undo段里面的数据
23:14:45 sys@prod> select 'alter system dump undo block '''||b.name||''' xid '||xidusn||' '||xidslot||' '||xidsqn||';' from v$transaction,v$rollname b where xidusn=usn; 

'ALTERSYSTEMDUMPUNDOBLOCK'''||B.NAME||'''XID'||XIDUSN||''||XIDSLOT||''||XIDSQN||';' 
---------------------------------------------------------------------------------------------------------------------------------- 
alter system dump undo block '_SYSSMU9_1650507775$' xid 9 12 1145;




Trace file /u01/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_45605.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 
System name: Linux 
Node name: kiwi-test 
Release: 2.6.32-431.el6.x86_64 
Version: #1 SMP Sun Nov 10 22:19:54 EST 2013 
Machine: x86_64 
VM name: VMWare Version: 6 
Instance name: prod 
Redo thread mounted by this instance: 1 
Oracle process number: 39 
Unix process pid: 45605, image: oracle@kiwi-test (TNS V1-V3) 


*** 2014-12-20 23:15:35.213 
*** SESSION ID:(197.11) 2014-12-20 23:15:35.213 
*** CLIENT ID:() 2014-12-20 23:15:35.213 
*** SERVICE NAME:(SYS$USERS) 2014-12-20 23:15:35.213 
*** MODULE NAME:(sqlplus@kiwi-test (TNS V1-V3)) 2014-12-20 23:15:35.213 
*** ACTION NAME:() 2014-12-20 23:15:35.213 

Processing Oradebug command 'setmypid' 

*** 2014-12-20 23:15:35.213 
Oradebug command 'setmypid' console output: <none> 

*** 2014-12-20 23:15:38.489 
Trace file /u01/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_45605.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 
System name: Linux 
Node name: kiwi-test 
Release: 2.6.32-431.el6.x86_64 
Version: #1 SMP Sun Nov 10 22:19:54 EST 2013 
Machine: x86_64 
VM name: VMWare Version: 6 
Instance name: prod 
Redo thread mounted by this instance: 1 
Oracle process number: 39 
Unix process pid: 45605, image: oracle@kiwi-test (TNS V1-V3) 


*** 2014-12-20 23:15:35.213 
*** SESSION ID:(197.11) 2014-12-20 23:15:35.213 
*** CLIENT ID:() 2014-12-20 23:15:35.213 
*** SERVICE NAME:(SYS$USERS) 2014-12-20 23:15:35.213 
*** MODULE NAME:(sqlplus@kiwi-test (TNS V1-V3)) 2014-12-20 23:15:35.213 
*** ACTION NAME:() 2014-12-20 23:15:35.213 

Processing Oradebug command 'setmypid' 

*** 2014-12-20 23:15:35.213 
Oradebug command 'setmypid' console output: <none> 

*** 2014-12-20 23:15:38.489 

******************************************************************************** 
Undo Segment: _SYSSMU9_1650507775$ (9) 
xid: 0x0009.00c.00000479 
Low Blk : (0, 0) 
High Blk : (3, 127) 
Object Id : ALL 
Layer : ALL 
Opcode : ALL 
Level : 2 

******************************************************************************** 
UNDO BLK: Extent: 2 Block: 18 dba (file#, block#): 3,0x00000492 
xid: 0x0009.00c.00000479 seq: 0x139 cnt: 0x14 irb: 0x14 icl: 0x0 flg: 0x0000 

Rec Offset Rec Offset Rec Offset Rec Offset Rec Offset 
--------------------------------------------------------------------------- 
0x01 0x1f40 0x02 0x1ee8 0x03 0x1e94 0x04 0x1de8 0x05 0x1d3c 
0x06 0x1cb4 0x07 0x1c3c 0x08 0x1bd4 0x09 0x1ab4 0x0a 0x1a50 
0x0b 0x1958 0x0c 0x18f4 0x0d 0x1884 0x0e 0x1818 0x0f 0x1790 
0x10 0x1710 0x11 0x16a8 0x12 0x1634 0x13 0x15d8 0x14 0x1538 

我们先从第一条sql语句开始看
*----------------------------- 
* Rec #0x14 slt: 0x0c objn: 88613(0x00015a25) objd: 88613 tblspc: 7(0x00000007) 
* 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: 0x00c00492.0139.13 
KDO Op code: IRP row dependencies Disabled 
xtype: XA flags: 0x00000000 bdba: 0x01800083 hdba: 0x01800082 
itli: 2 ispac: 0 maxfr: 4858 
tabn: 0 slot: 1(0x1) size/delt: 43 
fb: --H-FL-- lb: 0x0 cc: 8 
null: -------- 
col 0: [ 3] c2 4b 64 
col 1: [ 5] 41 4c 4c 45 4e 
col 2: [ 8] 53 41 4c 45 53 4d 41 4e 
col 3: [ 3] c2 4d 63 
col 4: [ 7] 77 b5 02 14 01 01 01 
col 5: [ 2] c2 11 
col 6: [ 2] c2 04 
col 7: [ 2] c1 1f 

object_id=88613
23:15:57 sys@prod> select object_name from dba_objects where object_id=88613; 

OBJECT_NAME 
-------------------------------------------------------------------------------------------------------------------------------- 
EMP

slot: 1 证明是改动的第二行的数据

col 0: [ 3] c2 4b 64 
col 1: [ 5] 41 4c 4c 45 4e 
col 2: [ 8] 53 41 4c 45 53 4d 41 4e 
col 3: [ 3] c2 4d 63 
col 4: [ 7] 77 b5 02 14 01 01 01 
col 5: [ 2] c2 11 
col 6: [ 2] c2 04 
col 7: [ 2] c1 1f 
这些是改动的前镜像的内容,我们可以通过
select utl_raw.cast_to_number('c24b64') from dual;
select utl_raw.cast_to_varchar2('53414c45534d414e') from dual;
这两个sql 来查询他们的值
23:19:55 sys@prod> select utl_raw.cast_to_number('c24b64') from dual; 
UTL_RAW.CAST_TO_NUMBER('C24B64') 
-------------------------------- 
7499
UTL_RAW.CAST_TO_VARCHAR2('414C4C454E')
----------------------------------------------------------------------------------------------------------------------------------
ALLEN
23:29:53 sys@prod> select utl_raw.cast_to_varchar2('53414c45534d414e') from dual; 
UTL_RAW.CAST_TO_VARCHAR2('53414C45534D414E') 
---------------------------------------------------------------------------------------------------------------------------------- 
SALESMAN
就是原来的emp表中的empno=7499的一行的内容

rci 0x13  这个指示了跳转到下面的什么地方


* Rec #0x13 slt: 0x0c objn: 88613(0x00015a25) objd: 88613 tblspc: 7(0x00000007) 
* 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: 0x00c00492.0139.12 
KDO Op code: URP row dependencies Disabled 
xtype: XA flags: 0x00000000 bdba: 0x01800083 hdba: 0x01800082 
itli: 2 ispac: 0 maxfr: 4858 
tabn: 0 slot: 11(0xb) flag: 0x2c lock: 0 ckix: 12 
ncol: 8 nnew: 1 size: 1 
col 5: [ 3] c2 0a 33 
以内类推,这儿保存的是12行,第六列的内容
23:35:18 sys@prod> select utl_raw.cast_to_number('c20a33') from dual; 
UTL_RAW.CAST_TO_NUMBER('C20A33') 
-------------------------------- 
950 
也是对应的SAL=950的前镜像

*----------------------------- 
* Rec #0x12 slt: 0x0c objn: 88613(0x00015a25) objd: 88613 tblspc: 7(0x00000007) 
* 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: 0x00c00492.0139.0f ctl max scn: 0x0000.0012c820 prv tx scn: 0x0000.0012c828 
txn start scn: scn: 0x0000.00000000 logon user: 90 
prev brb: 12584078 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: 0x01800083 hdba: 0x01800082 
itli: 2 ispac: 0 maxfr: 4858 
tabn: 0 lock: 0 nrow: 1 
slot[0]: 14 
这种就是插入直接到最后一行

+++++++++++ 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 = 3 
Total undo blocks dumped = 1 
Total undo records dumped = 3 

##Total warnings issued = 1 
************************************* 

*** 2014-12-20 23:15:57.094 
Processing Oradebug command 'tracefile_name' 

*** 2014-12-20 23:15:57.094 
Oradebug command 'tracefile_name' console output: 
/u01/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_45605.trc

 bdba: 0x01800083 对应了当前数据块里面的内容
23:43:58 sys@prod> SELECT DBMS_UTILITY.data_block_address_file ( 
00:00:45 2 TO_NUMBER (LTRIM ('0x01800083', '0x'), 'xxxxxxxx')) 
00:00:45 3 AS file_no, 
00:00:45 4 DBMS_UTILITY.data_block_address_block ( 
00:00:45 5 TO_NUMBER (LTRIM ('0x01800083', '0x'), 'xxxxxxxx')) 
00:00:45 6 AS block_no 
00:00:45 7 FROM DUAL; 

FILE_NO BLOCK_NO 
------------- ------------- 
6 131

dump这个数据块来查看里面的内容
00:02:43 sys@prod> oradebug setmypid 
Statement processed. 
00:02:51 sys@prod> alter system dump datafile 6 block 131; 

System altered. 

Elapsed: 00:00:00.02 
00:03:02 sys@prod> oradebug tracefile_name 
/u01/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_48750.trc

Block header dump: 0x01800083
 Object id on Block? Y
 seg/obj: 0x15a25 csc: 0x00.12d6ff itc: 3 flg: E typ: 1 - DATA
     brn: 0 bdba: 0x1800080 ver: 0x01 opc: 0
     inc: 0 exflg: 0

 Itl Xid Uba Flag Lck Scn/Fsc
0x01 0xffff.000.00000000 0x00000000.0000.00 C--- 0 scn 0x0000.000ff591
0x02 0x0009.00c.00000479 0x00c00492.0139.14 ---- 3 fsc 0x002a.00000000
0x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
bdba: 0x01800083
data_block_dump,data header at 0x7fc30487fa7c
===============
tsiz: 0x1f80
hsiz: 0x30
pbl: 0x7fc30487fa7c
     76543210
flag=--------
ntab=1
nrow=15
frre=-1
fsbo=0x30
fseo=0x1664
avsp=0x1cf1
tosp=0x1d1d
0xe:pti[0] nrow=15 offs=0
0x12:pri[0] offs=0x16b1
0x14:pri[1] offs=0x16d7
0x16:pri[2] offs=0x1702
0x18:pri[3] offs=0x172d
0x1a:pri[4] offs=0x1756
0x1c:pri[5] offs=0x1783
0x1e:pri[6] offs=0x17ac
0x20:pri[7] offs=0x17d5
0x22:pri[8] offs=0x17fd
0x24:pri[9] offs=0x1823
0x26:pri[10] offs=0x184e
0x28:pri[11] offs=0x1664
0x2a:pri[12] offs=0x189a
0x2c:pri[13] offs=0x18c1
0x2e:pri[14] offs=0x1689
block_row_dump:
tab 0, row 0, @0x16b1
tl: 38 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 4a 46
col 1: [ 5] 53 4d 49 54 48
col 2: [ 5] 43 4c 45 52 4b
col 3: [ 3] c2 50 03
col 4: [ 7] 77 b4 0c 11 01 01 01
col 5: [ 2] c2 09
col 6: *NULL*
col 7: [ 2] c1 15
tab 0, row 1, @0x16d7
tl: 2 fb: --HDFL-- lb: 0x2
tab 0, row 2, @0x1702
tl: 43 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 4c 16
col 1: [ 4] 57 41 52 44
col 2: [ 8] 53 41 4c 45 53 4d 41 4e
col 3: [ 3] c2 4d 63
col 4: [ 7] 77 b5 02 16 01 01 01
col 5: [ 3] c2 0d 33
col 6: [ 2] c2 06
col 7: [ 2] c1 1f
tab 0, row 3, @0x172d
tl: 41 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 4c 43
col 1: [ 5] 4a 4f 4e 45 53
col 2: [ 7] 4d 41 4e 41 47 45 52
col 3: [ 3] c2 4f 28
col 4: [ 7] 77 b5 04 02 01 01 01
col 5: [ 3] c2 1e 4c
col 6: *NULL*
col 7: [ 2] c1 15
tab 0, row 4, @0x1756
tl: 45 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 4d 37
col 1: [ 6] 4d 41 52 54 49 4e
col 2: [ 8] 53 41 4c 45 53 4d 41 4e
col 3: [ 3] c2 4d 63
col 4: [ 7] 77 b5 09 1c 01 01 01
col 5: [ 3] c2 0d 33
col 6: [ 2] c2 0f
col 7: [ 2] c1 1f
tab 0, row 5, @0x1783
tl: 41 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 4d 63
col 1: [ 5] 42 4c 41 4b 45
col 2: [ 7] 4d 41 4e 41 47 45 52
col 3: [ 3] c2 4f 28
col 4: [ 7] 77 b5 05 01 01 01 01
col 5: [ 3] c2 1d 33
col 6: *NULL*
col 7: [ 2] c1 1f
tab 0, row 6, @0x17ac
tl: 41 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 4e 53
col 1: [ 5] 43 4c 41 52 4b
col 2: [ 7] 4d 41 4e 41 47 45 52
col 3: [ 3] c2 4f 28
col 4: [ 7] 77 b5 06 09 01 01 01
col 5: [ 3] c2 19 33
col 6: *NULL*
col 7: [ 2] c1 0b
tab 0, row 7, @0x17d5
tl: 40 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 4e 59
col 1: [ 5] 53 43 4f 54 54
col 2: [ 7] 41 4e 41 4c 59 53 54
col 3: [ 3] c2 4c 43
col 4: [ 7] 77 bb 04 13 01 01 01
col 5: [ 2] c2 1f
col 6: *NULL*
col 7: [ 2] c1 15
tab 0, row 8, @0x17fd
tl: 38 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 4f 28
col 1: [ 4] 4b 49 4e 47
col 2: [ 9] 50 52 45 53 49 44 45 4e 54
col 3: *NULL*
col 4: [ 7] 77 b5 0b 11 01 01 01
col 5: [ 2] c2 33
col 6: *NULL*
col 7: [ 2] c1 0b
tab 0, row 9, @0x1823
tl: 43 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 4f 2d
col 1: [ 6] 54 55 52 4e 45 52
col 2: [ 8] 53 41 4c 45 53 4d 41 4e
col 3: [ 3] c2 4d 63
col 4: [ 7] 77 b5 09 08 01 01 01
col 5: [ 2] c2 10
col 6: [ 1] 80
col 7: [ 2] c1 1f
tab 0, row 10, @0x184e
tl: 38 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 4f 4d
col 1: [ 5] 41 44 41 4d 53
col 2: [ 5] 43 4c 45 52 4b
col 3: [ 3] c2 4e 59
col 4: [ 7] 77 bb 05 17 01 01 01
col 5: [ 2] c2 0c
col 6: *NULL*
col 7: [ 2] c1 15
tab 0, row 11, @0x1664
tl: 37 fb: --H-FL-- lb: 0x2 cc: 8
col 0: [ 2] c2 50
col 1: [ 5] 4a 41 4d 45 53
col 2: [ 5] 43 4c 45 52 4b
col 3: [ 3] c2 4d 63
col 4: [ 7] 77 b5 0c 03 01 01 01
col 5: [ 2] c2 29
col 6: *NULL*
col 7: [ 2] c1 1f
tab 0, row 12, @0x189a
tl: 39 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 50 03
col 1: [ 4] 46 4f 52 44
col 2: [ 7] 41 4e 41 4c 59 53 54
col 3: [ 3] c2 4c 43
col 4: [ 7] 77 b5 0c 03 01 01 01
col 5: [ 2] c2 1f
col 6: *NULL*
col 7: [ 2] c1 15
tab 0, row 13, @0x18c1
tl: 39 fb: --H-FL-- lb: 0x0 cc: 8
col 0: [ 3] c2 50 23
col 1: [ 6] 4d 49 4c 4c 45 52
col 2: [ 5] 43 4c 45 52 4b
col 3: [ 3] c2 4e 53
col 4: [ 7] 77 b6 01 17 01 01 01
col 5: [ 2] c2 0e
col 6: *NULL*
col 7: [ 2] c1 0b
tab 0, row 14, @0x1689
tl: 40 fb: --H-FL-- lb: 0x2 cc: 8
col 0: [ 3] c2 4e 59
col 1: [ 5] 53 43 4f 54 54
col 2: [ 7] 41 4e 41 4c 59 53 54
col 3: [ 3] c2 4c 43
col 4: [ 7] 77 bb 04 13 01 01 01
col 5: [ 2] c2 1f
col 6: *NULL*
col 7: [ 2] c1 15
end_of_block_dump
End dump data blocks tsn: 7 file#: 6 minblk 131 maxblk 131

*** 2014-12-21 00:03:15.430
Processing Oradebug command 'tracefile_name'

*** 2014-12-21 00:03:15.430
Oradebug command 'tracefile_name' console output:
/u01/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_48750.trc






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值