oracle 原理學習筆記(一)

plvision發表於2012-04-22

一、Redo和Undo

1.oracle修改資料基本流程。

    oracle的一個特點就是儲存資料(這裡資料包括任何對data block,undo block的修改)的時候以兩種形式儲存。一種是儲存在資料檔案裡以資料塊(data block)形式儲存(最新資料也可能是存在oracle記憶體裡的'髒塊'--也是資料塊--等待被重新整理到資料檔案中);另外一種以描述如何產生這些資料塊的指令儲存在重做日誌檔案裡(最新的重做日誌存在在oracle記憶體裡等待重新整理到重做日誌檔案中)。同時,oracle為了能夠回滾事務,在修改資料之前都要儲存一份資料的前映象到undo檔案裡。完整的修改流程步驟如下:

  • 寫如何產生undo block的redo 記錄
  • 寫如何修改data block的redo 記錄
  • 將上面兩個redo 記錄合併,寫到redo log buffer中
  • 寫undo block
  • 寫data block

    這裡就要涉及到data block, undo block和redo block三種塊,我們具體看看內部結構。

2. data block 內容

準備表

drop table t1;
create table t1(
 id number not null,
 v1  varchar2(100)
);
insert into t1 values(1, rpad('x',100));
commit;
alter system checkpoint;
alter system flush buffer_cache;
col dump_sql for a120
select 'alter system dump datafile ' || dbms_rowid.rowid_relative_fno(rowid) 
    || ' block min ' || dbms_rowid.rowid_block_number(rowid)  
    || ' block max ' || dbms_rowid.rowid_block_number(rowid)  
    || ';' dump_sql
from t1;

alter system dump datafile 16 block min 99083 block max 99083   ;

dump結果(刪掉暫不關注的部分)


*** 2012-04-22 10:56:00.893
Start dump data blocks tsn: 7 file#:16 minblk 99083 maxblk 99083
Block dump from cache:
Dump of buffer cache at level 4 for tsn=7, rdba=67207947

Block header dump:  0x0401830b
 Object id on Block? Y
 seg/obj: 0x17de0  csc: 0x8cf.a6277f02  itc: 2  flg: E  typ: 1 - DATA                       typ:表示block type
     brn: 0  bdba: 0x4018300 ver: 0x01 opc: 0
     inc: 0  exflg: 0
 
 Itl           Xid                  Uba         Flag  Lck                                    Scn/Fsc  xid:undo_segment.undo_slot.undo_sequence, uba:undo record address, abosolute block address.block sequence number.record within block
0x01   0x000a.003.0000f3bb  0x00c00ae8.8c20.03  --U-    1  fsc 0x0000.a6277f03               
0x02   0x0000.000.00000000  0x00000000.0000.00  ----    0  fsc 0x0000.00000000
bdba: 0x0401830b
data_block_dump,data header at 0x2b9ab59d1a64
===============
tsiz: 0x1f98
hsiz: 0x14
pbl: 0x2b9ab59d1a64
     76543210
flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1f2d
avsp=0x1f19
tosp=0x1f19
0xe:pti[0]      nrow=1  ffs=0
0x12:pri[0]     ffs=0x1f2d
block_row_dump:
tab 0, row 0, @0x1f2d
tl: 107 fb: --H-FL-- lb: 0x1  cc: 2
col  0: [ 2]  c1 02
col  1: [100]
 78 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
end_of_block_dump
End dump data blocks tsn: 7 file#: 16 minblk 99083 maxblk 99083


注:一個data block至少包含以下幾項內容值得關注:

  • 該資料塊上每行資料的資訊(包括該行資料內容,以及行記錄上是否有活動事務資訊)
  • 該資料塊上的事務資訊(包括該事務的XID,最近一次修改對應的uba,以及該事務的提交資訊)

tl: 107 fb: --H-FL-- lb: 0x1  cc: 2
資料行上的lb:0x1就指向該行在事務槽(itl)中的記錄。

0x01   0x000a.003.0000f3bb  0x00c00ae8.8c20.03  --U-    1  fsc 0x0000.a6277f03  
這個itl資訊描述了該事務的狀態(為U表示已經提交,但是沒有做commit cleanout操作),以及該事務的XID(表示該事務在回滾段頭的事務表中的位置資訊,任何事務開始時必須申請在回滾段頭的事務表transaction table中申請一個位置),以及該事務的最後一次undo record地址(用於快速回滾,比如說構建一致性讀時要讀取undo block)


開啟一個事務,修改不提交

update t1 set v1=rpad('x',100) where id=1;

alter system checkpoint;

alter system dump datafile 16 block min 99083 block max 99083   ;

Start dump data blocks tsn: 7 file#:16 minblk 99083 maxblk 99083
Block dump from cache:
Dump of buffer cache at level 4 for tsn=7, rdba=67207947

Block header dump:  0x0401830b
 Object id on Block? Y
 seg/obj: 0x17de0  csc: 0x8cf.a6280065  itc: 2  flg: E  typ: 1 - DATA
     brn: 0  bdba: 0x4018300 ver: 0x01 opc: 0
     inc: 0  exflg: 0
 
 Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   0x000a.003.0000f3bb  0x00c00ae8.8c20.03  C---    0  scn 0x08cf.a6277f03
0x02   0x0008.00c.0000d259  0x00c00c7f.810b.07  ----    1  fsc 0x0062.00000000
bdba: 0x0401830b
data_block_dump,data header at 0x2ac9ae2d9a64
===============
tsiz: 0x1f98
hsiz: 0x14
pbl: 0x2ac9ae2d9a64
     76543210
flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1f25
avsp=0x1f19
tosp=0x1f7b
0xe:pti[0]      nrow=1  ffs=0
0x12:pri[0]     ffs=0x1f25
block_row_dump:
tab 0, row 0, @0x1f25
tl: 8 fb: --H-FL-- lb: 0x2  cc: 2
col  0: [ 2]  c1 02
col  1: [ 1]  79
end_of_block_dump
End dump data blocks tsn: 7 file#: 16 minblk 99083 maxblk 99083

 

3. Undo block

 

  select
          xidusn,
          xidslot,
          xidsqn    
     from
          v$session     ses,
          v$transaction     trx
     where
          ses.sid = (select mys.sid from V$mystat mys where rownum = 1)
     and     trx.ses_addr = ses.saddr
     ;


Undo Segment Header
===================
Start dump data blocks tsn: 2 file#:3 minblk 240 maxblk 240
Block dump from cache:
Dump of buffer cache at level 4 for tsn=2, rdba=12583152

TRN CTL:: seq: 0x810c chd: 0x000e ctl: 0x0001 inc: 0x00000000 nfb: 0x0001
            mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)
            uba: 0x00c000f1.810c.07 scn: 0x08cf.a62808da
Version: 0x01
  FREE BLOCK POOL::
    uba: 0x00c000f1.810c.08 ext: 0x0  spc: 0x1cd6 
    uba: 0x00000000.810b.05 ext: 0x2  spc: 0x1428 
    uba: 0x00000000.810b.05 ext: 0x2  spc: 0xad8  
    uba: 0x00000000.5ec2.01 ext: 0x2  spc: 0x1f84 
    uba: 0x00000000.0000.00 ext: 0x0  spc: 0x0    
  TRN TBL::
 
  index  state cflags  wrap#    uel         scn            dba            parent-xid    nub     stmt_num    cmt
  ------------------------------------------------------------------------------------------------
   0x00    9    0x00  0xd25c  0x000d  0x08cf.a6280b16  0x00c00c7d  0x0000.000.00000000  0x00000001   0x00000000  1335076357
   0x01    9    0x00  0xd25e  0xffff  0x08cf.a6280fdc  0x00c000f1  0x0000.000.00000000  0x00000001   0x00000000  1335076926
   0x02    9    0x00  0xd25f  0x0001  0x08cf.a6280ea4  0x00c000f1  0x0000.000.00000000  0x00000001   0x00000000  1335076768
   0x03    9    0x00  0xd1cb  0x0002  0x08cf.a6280ea0  0x00c000f1  0x0000.000.00000000  0x00000001   0x00000000  1335076764
   0x04    9    0x00  0xd264  0x0016  0x08cf.a6280a38  0x00c00c7d  0x0000.000.00000000  0x00000001   0x00000000  1335076237
   0x05    9    0x00  0xd263  0x0018  0x08cf.a6280d77  0x00c00c7f  0x0000.000.00000000  0x00000001   0x00000000  1335076619
   0x06    9    0x00  0xd267  0x0004  0x08cf.a62809d9  0x00c00c7d  0x0000.000.00000000  0x00000001   0x00000000  1335076188
   0x07    9    0x00  0xd265  0x000f  0x08cf.a6280ba5  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076418
   0x08    9    0x00  0xd261  0x001b  0x08cf.a628099b  0x00000000  0x0000.000.00000000  0x00000000   0x00000000  1335076177
   0x09    9    0x00  0xd22c  0x0017  0x08cf.a6280c58  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076505
   0x0a    9    0x00  0xd1f1  0x001a  0x08cf.a6280bd7  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076453
   0x0b    9    0x00  0xd25a  0x0000  0x08cf.a6280a5b  0x00c00c7d  0x0000.000.00000000  0x00000001   0x00000000  1335076240
   0x0c   10    0x80  0xd259  0x0002  0x08cf.a6280e19  0x00c00c7f  0x0000.000.00000000  0x00000001   0x00000000  0
   0x0d    9    0x00  0xd25c  0x0019  0x08cf.a6280b22  0x00c00c7d  0x0000.000.00000000  0x00000001   0x00000000  1335076357
   0x0e    9    0x00  0xd0c9  0x0015  0x08cf.a62808fa  0x00c00c7c  0x0000.000.00000000  0x00000002   0x00000000  1335076118
   0x0f    9    0x00  0xd25a  0x001e  0x08cf.a6280bab  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076418
   0x10    9    0x00  0xd262  0x001d  0x08cf.a6280b37  0x00c00c7d  0x0000.000.00000000  0x00000001   0x00000000  1335076358
   0x11    9    0x00  0xd256  0x0012  0x08cf.a6280de7  0x00c00c7f  0x0000.000.00000000  0x00000001   0x00000000  1335076666
   0x12    9    0x00  0xd264  0x0003  0x08cf.a6280e21  0x00c000f1  0x0000.000.00000000  0x00000001   0x00000000  1335076712
   0x13    9    0x00  0xd258  0x001f  0x08cf.a6280b58  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076366
   0x14    9    0x00  0xd1ba  0x0011  0x08cf.a6280dcc  0x00c00c7f  0x0000.000.00000000  0x00000001   0x00000000  1335076658
   0x15    9    0x00  0xd25b  0x0008  0x08cf.a628094c  0x00c00c7c  0x0000.000.00000000  0x00000001   0x00000000  1335076153
   0x16    9    0x00  0xd1ec  0x000b  0x08cf.a6280a3a  0x00c00c7d  0x0000.000.00000000  0x00000001   0x00000000  1335076237
   0x17    9    0x00  0xd259  0x001c  0x08cf.a6280c74  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076528
   0x18    9    0x00  0xd179  0x0014  0x08cf.a6280db2  0x00c00c7f  0x0000.000.00000000  0x00000001   0x00000000  1335076657
   0x19    9    0x00  0xd252  0x0010  0x08cf.a6280b35  0x00c00c7d  0x0000.000.00000000  0x00000001   0x00000000  1335076358
   0x1a    9    0x00  0xd25a  0x0009  0x08cf.a6280c2a  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076486
   0x1b    9    0x00  0xd260  0x0006  0x08cf.a62809ad  0x00c00c7d  0x0000.000.00000000  0x00000001   0x00000000  1335076186
   0x1c    9    0x00  0xd25d  0x0020  0x08cf.a6280d33  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076598
   0x1d    9    0x00  0xd25c  0x0013  0x08cf.a6280b3b  0x00c00c7e  0x0000.000.00000000  0x00000002   0x00000000  1335076358
   0x1e    9    0x00  0xd25d  0x000a  0x08cf.a6280bd5  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076453
   0x1f    9    0x00  0xd1f1  0x0007  0x08cf.a6280b5d  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076368
   0x20    9    0x00  0xd1ee  0x0021  0x08cf.a6280d4a  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076608
   0x21    9    0x00  0xd25d  0x0005  0x08cf.a6280d5f  0x00c00c7e  0x0000.000.00000000  0x00000001   0x00000000  1335076608


TRN CTL:: seq: 0x810c chd: 0x000e ctl: 0x0001 inc: 0x00000000 nfb: 0x0001
            mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)
            uba: 0x00c000f1.810c.07 scn: 0x08cf.a62808da
Transaction Control(TRN CTL::),記錄了這個回滾段首的transaction table彙總資訊。
seq:表示block sequence,每修改一次ctl,seq就遞增一次。
chd:表示可用的slot連結串列中的第一個slot編號,也就是下一個被重用的slot編號。slot的使用順序是總找一個最早的未使用的slot。
ctl:表示可用的slot連結串列的最後一個slot編號。
uba:當前在使用的slot最近修改的事務的第一個undo record address。這個uba對應的undo record裡儲存了之前的trn ctl資訊(包括之前的uba資訊),所以transaction control的歷史資訊是透過這個uba資訊去回溯的,這點不同於data block的回滾。
scn:最近一個被重用的slot的事務提交時的scn資訊,也即是這個transaction table裡直接記錄的所有已提交的事務中最早的scn。

Transaction Table(TRN TBL::),記錄了這個回滾段首的transaction table詳細資訊。每行記錄稱為一個slot,index是slot的編號,可以重用state=9的slot。wrap#表示重用次數。

 index  state cflags  wrap#    uel         scn            dba            parent-xid    nub     stmt_num    cmt
  ------------------------------------------------------------------------------------------------

0x0c   10    0x80  0xd259  0x0002  0x08cf.a6280e19  0x00c00c7f  0x0000.000.00000000  0x00000001   0x00000000  0

index:slot編號
state:表示這行記錄的狀態:9,不活動;10,活動
cflags:表示這行記錄上的事務狀態:0x0,無事務;0x20,事務死掉;0x80,活動事務;0x90,事務已死,正在回滾
wrap#:slot重用次數
uel:slot連結串列中的下一個slot編號,活動的事務slot在一個連結串列中,不活動的事務slot在一個連結串列中
scn:表示該slot事務最後一次修改對應的scn資訊
dba:表示該slot事務最後一次修改對應的undo 記錄地址。回滾事務的時候從這個dba開始。
nub:這個事務使用的undo block數量。如果正在回滾,這個數量會遞減。
cmt:最近的提交時間,精確到秒,是個差值,自1970年1月1日midnight(UTC)


alter system dump undo block '_SYSSMU8_625026625$' xid 8 12 53849;


********************************************************************************
Undo Segment:  _SYSSMU8_625026625$ (8)
xid: 0x0008.00c.0000d259
Low Blk   :   (0, 0)
High Blk  :   (2, 127)
Object Id :   ALL
Layer     :   ALL
Opcode    :   ALL
Level     :   2
 
********************************************************************************
UNDO BLK:  Extent: 2   Block: 127   dba (file#, block#): 3,0x00000c7f
xid: 0x0008.00c.0000d259  seq: 0x810b cnt: 0x7   irb: 0x7   icl: 0x0   flg: 0x0000
 
 Rec Offset      Rec Offset      Rec Offset      Rec Offset      Rec Offset
---------------------------------------------------------------------------
0x01 0x1f98     0x02 0x1f2c     0x03 0x1e8c     0x04 0x1dc8     0x05 0x1d78    
0x06 0x1d0c     0x07 0x1bfc    
 
*-----------------------------
* Rec #0x7  slt: 0x0c  objn: 97760(0x00017de0)  objd: 97760  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: 0x00c00c7f.810b.05 ctl max scn: 0x08cf.a6280806 prv tx scn: 0x08cf.a628082d
txn start scn: scn: 0x08cf.a6280e19 logon user: 92
 prev brb: 12586107 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: 0x0401830b  hdba: 0x04018303
itli: 2  ispac: 0  maxfr: 4858
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 0 ckix: 0
ncol: 2 nnew: 1 size: 99
col  1: [100]
 78 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 


注:

  • undo block裡記錄了XID資訊,裡面有事務資訊,可以找到回滾段首。每個undo block裡的undo record不一定都屬於同一個事務(看每個undo reocord裡的具體的uba),但一定只有一個活動的事務(在回滾段首的事務表裡描述)。
  • 每個事務的第一個undo record裡首先儲存了被修改的回滾段首的控制資訊。

4.Redo block

alter system dump logfile'/u01/arch/lp4pldev/1_89486_758821170.dbf' dba min 16 99083 dba max 16 99083 ;

*** 2012-04-22 17:17:56.358
Initial buffer sizes: read 1024K, overflow 832K, change 805K
Log read is SYNCHRONOUS though disk_asynch_io is enabled!
 
DUMP OF REDO FROM FILE '/u01/arch/lp4pldev/1_89486_758821170.dbf'
 Opcodes *.*
...... 
REDO RECORD - Thread:1 RBA: 0x015d8e.000000bc.0010 LEN: 0x0268 VLD: 0x05
SCN: 0x08cf.a6280e19 SUBSCN:  1 04/22/2012 14:38:25
(LWN RBA: 0x015d8e.000000bc.0010 LEN: 0002 NST: 04d SCN: 0x08cf.a6280e18)
CHANGE #1 TYP:0 CLS:31 AFN:3 DBA:0x00c000f0 OBJ:4294967295 SCN:0x08cf.a6280de7 SEQ:1 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x000c sqn: 0x0000d259 flg: 0x0012 siz: 272 fbi: 0
            uba: 0x00c00c7f.810b.07    pxid:  0x0000.000.00000000
CHANGE #2 TYP:0 CLS:32 AFN:3 DBA:0x00c00c7f OBJ:4294967295 SCN:0x08cf.a6280de6 SEQ:2 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 272 spc: 7406 flg: 0x0012 seq: 0x810b rec: 0x07
            xid:  0x0008.00c.0000d259 
ktubl redo: slt: 12 rci: 0 opc: 11.1 [objn: 97760 objd: 97760 tsn: 7]
Undo type:  Regular undo        Begin trans    Last buffer split:  No
Temp Object:  No
Tablespace Undo:  No
             0x00000000  prev ctl uba: 0x00c00c7f.810b.05
prev ctl max cmt scn:  0x08cf.a6280806  prev tx cmt scn:  0x08cf.a628082d
txn start scn:  0xffff.ffffffff  logon user: 92  prev brb: 12586107  prev bcl: 0 BuExt idx: 0 flg2: 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: 0x0401830b  hdba: 0x04018303
itli: 2  ispac: 0  maxfr: 4858
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 0 ckix: 0
ncol: 2 nnew: 1 size: 99
col  1: [100]
 78 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
CHANGE #3 TYP:0 CLS:1 AFN:16 DBA:0x0401830b OBJ:97760 SCN:0x08cf.a6280ce6 SEQ:2 OP:11.5 ENC:0 RBL:0
KTB Redo
op: 0x01  ver: 0x01 
compat bit: 4 (post-11) padding: 1
op: F  xid:  0x0008.00c.0000d259    uba: 0x00c00c7f.810b.07
KDO Op code: URP row dependencies Disabled
  xtype: XA flags: 0x00000000  bdba: 0x0401830b  hdba: 0x04018303
itli: 2  ispac: 0  maxfr: 4858
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 2 ckix: 0
ncol: 2 nnew: 1 size: -99
col  1: [ 1]  79
CHANGE #4 MEDIA RECOVERY MARKER SCN:0x0000.00000000 SEQ:0 OP:5.20 ENC:0
session number   = 1155
serial  number   = 65179
transaction name =
version 186647040
audit sessionid 6686373
Client Id =
login   username = B2BDBA
 
REDO RECORD - Thread:1 RBA: 0x015d8e.00000161.0010 LEN: 0x0070 VLD: 0x06
SCN: 0x08cf.a6280e97 SUBSCN:  1 04/22/2012 14:39:15
(LWN RBA: 0x015d8e.00000161.0010 LEN: 0001 NST: 04d SCN: 0x08cf.a6280e96)
CHANGE #1 MEDIA RECOVERY MARKER SCN:0x0000.00000000 SEQ:0 OP:23.1 ENC:0
 Block Written - afn: 16 rdba: 0x0401830b BFT:(1024,67207947) non-BFT:(16,99083)
                   scn: 0x08cf.a6280e19 seq: 0x01 flg:0x04
END OF REDO DUMP
----- Redo read statistics for thread 1 -----
Read rate (SYNC): 345Kb in 0.01s => 33.69 Mb/sec
Total redo bytes: 345Kb Longest record: 0Kb, moves: 0/505 moved: 0Mb (0%)
Longest LWN: 6Kb, reads: 411
Last redo scn: 0x08cf.a6280fcd (9687938895821)
Change vector header moves = 68/1156 (5%)
----------------------------------------------


注:

REDO RECORD - Thread:1 RBA: 0x015d8e.000000bc.0010 LEN: 0x0268 VLD: 0x05
SCN: 0x08cf.a6280e19 SUBSCN:  1 04/22/2012 14:38:25
(LWN RBA: 0x015d8e.000000bc.0010 LEN: 0002 NST: 04d SCN: 0x08cf.a6280e18)
RBA:Redo Byte Address, 10 bytes,由log sequence number, block number within redo log, byte number within block

CHANGE #1 TYP:0 CLS:31 AFN:3 DBA:0x00c000f0 OBJ:4294967295 SCN:0x08cf.a6280de7 SEQ:1 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x000c sqn: 0x0000d259 flg: 0x0012 siz: 272 fbi: 0
            uba: 0x00c00c7f.810b.07    pxid:  0x0000.000.00000000
change vector:描述data block的變化(包括data blocks,undo block,undo segment header)
TYP:change type
CLS:change class:1,data block; 31,segment header for undo segment header; 32,data blocks for undo segment
AFN:absolute file number
DBA:Relative Database Block Address
OP:operation code:4,block cleanout; 5,transaction management; 10,index operations; 11 row operations
    5.2 update transaction table in undo segment header

CHANGE #3 TYP:0 CLS:1 AFN:16 DBA:0x0401830b OBJ:97760 SCN:0x08cf.a6280ce6 SEQ:2 OP:11.5 ENC:0 RBL:0
KTB Redo
op: 0x01  ver: 0x01 
compat bit: 4 (post-11) padding: 1
op: F  xid:  0x0008.00c.0000d259    uba: 0x00c00c7f.810b.07
KDO Op code: URP row dependencies Disabled

11.5  URP update row

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

相關文章