REDO的日志格式
gyj@OCM> update gyj_test set name='BBB' where id=1;
1 row updated.
gyj@OCM> commit;
Commit complete.
REDO RECORD:change vector,CV
REDO RECORD - Thread:1 RBA: 0x000105.0000000f.0010 LEN: 0x0214 VLD: 0x05
SCN: 0x0000.0069f201 SUBSCN: 1 11/15/2013 21:37:46
(LWN RBA: 0x000105.0000000f.0010 LEN: 0002 NST: 0001 SCN: 0x0000.0069f1ff)
-------------------------------------------------------------------------REDO記錄頭
RBA: 0x000105.0000000f.0010===三部分,序列号+塊号+位元組==261序列,15塊,16位元組
LEN: 0x0214:532位元組
SCN: 0x0000.0069f201==SCNwrap+SCNbase==6位元組=2+4 SUBSCN:1
CHANGE #1 TYP:0 CLS:31 AFN:3 DBA:0x00c000f0 OBJ:4294967295 SCN:0x0000.0069f19c SEQ:1 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x0020 sqn: 0x00003a9e flg: 0x000a siz: 188 fbi: 0
uba: 0x00c01d65.0321.01 pxid: 0x0000.000.00000000
TYP:0--normal
CLS:class==>x$bh.class ,31 undo segment
AFN:3==>(absolutely)絕對檔案号
DBA:0x00c000f0 3,===32=10+22 3号檔案,240号
OBJ:4294967295 ===》undo
OP:5.2 ===opration code,事務表(復原段段頭)
CHANGE #2 TYP:1 CLS:32 AFN:3 DBA:0x00c01d65 OBJ:4294967295 SCN:0x0000.0069f200 SEQ:1 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 188 spc: 0 flg: 0x000a seq: 0x0321 rec: 0x01
xid: 0x0008.020.00003a9e
ktubl redo: slt: 32 rci: 0 opc: 11.1 [objn: 17987 objd: 17987 tsn: 5]
Undo type: Regular undo Begin trans Last buffer split: No
Temp Object: No
Tablespace Undo: No
0x00000000 prev ctl uba: 0x00c01d64.0321.22
prev ctl max cmt scn: 0x0000.0069ecb0 prev tx cmt scn: 0x0000.0069ecb6
txn start scn: 0xffff.ffffffff logon user: 32 prev brb: 12590426 prev bcl: 0 BuExt idx: 0 flg2: 0
KDO undo record:
KTB Redo
op: 0x04 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: L itl: xid: 0x0001.004.00002a08 uba: 0x00c01a54.0167.03
flg: C--- lkc: 0 scn: 0x0000.006976ad
Array Update of 1 rows:
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 0 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0140012e hdba: 0x0140012a
itli: 2 ispac: 0 maxfr: 4858
vect = 3
col 1: [ 3] 41 41 41
——————————————————————————————————————————UNDO塊
DBA:0x00c01d65===》3号檔案,7525号塊
OBJ:4294967295 ==》FFFFFFFF UNDO
OP:5.1==>Undo block or undo segment header - KTURDB
objn: 17987==>
gyj@OCM> SELECT OBJECT_NAME FROM dba_objects where object_id=17987;
OBJECT_NAME
--------------------------------------------------------------------------------------------------------------------------------
GYJ_TEST
op: L itl: xid: 0x0001.004.00002a08 uba: 0x00c01a54.0167.03
flg: C--- lkc: 0 scn: 0x0000.006976ad
col 1: [ 3] 41 41 41
gyj@OCM> select dump('AAA',16) from dual;
DUMP('AAA',16)
----------------------
Typ=96 Len=3: 41,41,41
CHANGE #3 TYP:2 CLS:1 AFN:5 DBA:0x0140012e OBJ:17987 SCN:0x0000.0069e62f SEQ:1 OP:11.19 ENC:0 RBL:0
KTB Redo
op: 0x11 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: F xid: 0x0008.020.00003a9e uba: 0x00c01d65.0321.01
Block cleanout record, scn: 0x0000.0069f200 ver: 0x01 opt: 0x02, entries follow...
itli: 1 flg: 2 scn: 0x0000.0069e62f
Array Update of 1 rows:
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 2 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0140012e hdba: 0x0140012a
itli: 2 ispac: 0 maxfr: 4858
vect = 3
col 1: [ 3] 42 42 42
REDO RECORD - Thread:1 RBA: 0x000105.00000010.0034 LEN: 0x0060 VLD: 0x01
SCN: 0x0000.0069f202 SUBSCN: 1 11/15/2013 21:37:46
CHANGE #1 TYP:0 CLS:31 AFN:3 DBA:0x00c000f0 OBJ:4294967295 SCN:0x0000.0069f201 SEQ:1 OP:5.4 ENC:0 RBL:0
ktucm redo: slt: 0x0020 sqn: 0x00003a9e srt: 0 sta: 9 flg: 0x2 ktucf redo: uba: 0x00c01d65.0321.01 ext: 53 spc: 7960 fbi: 0
一條REDO RECORD
update
OPC===>5.2 ---->産生一個事務(UNDO段頭塊XID)
OPC===>5.1 ---->把修改前的前鏡像放到UNDO塊(AAA)
OPC===>11.19 --->修改資料UPDATE(BBB)
commit;
OPC==>5.4 ---->送出
非IMU模式下的REDO日志格式:
REDO RECORD - Thread:1 RBA: 0x00010f.00000039.0010 LEN: 0x021c VLD: 0x05
SCN: 0x0000.006d6ac2 SUBSCN: 1 11/18/2013 20:45:50
(LWN RBA: 0x00010f.00000039.0010 LEN: 0002 NST: 0001 SCN: 0x0000.006d6ac1)
CHANGE #1 TYP:0 CLS:31 AFN:3 DBA:0x00c000f0 OBJ:4294967295 SCN:0x0000.006d6a2e SEQ:1 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x0006 sqn: 0x00003ab8 flg: 0x0012 siz: 188 fbi: 0
uba: 0x00c03730.0336.26 pxid: 0x0000.000.00000000
CHANGE #2 TYP:0 CLS:32 AFN:3 DBA:0x00c03730 OBJ:4294967295 SCN:0x0000.006d6a2d SEQ:9 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 188 spc: 3340 flg: 0x0012 seq: 0x0336 rec: 0x26
xid: 0x0008.006.00003ab8
ktubl redo: slt: 6 rci: 0 opc: 11.1 [objn: 17987 objd: 17987 tsn: 5]
Undo type: Regular undo Begin trans Last buffer split: No
Temp Object: No
Tablespace Undo: No
0x00000000 prev ctl uba: 0x00c03730.0336.12
prev ctl max cmt scn: 0x0000.006d61ee prev tx cmt scn: 0x0000.006d6208
txn start scn: 0xffff.ffffffff logon user: 32 prev brb: 12597034 prev bcl: 0 BuExt idx: 0 flg2: 0
KDO undo record:
KTB Redo
op: 0x04 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: L itl: xid: 0x0002.01f.0000387f uba: 0x00c017da.020a.13
flg: C--- lkc: 0 scn: 0x0000.006d0746
Array Update of 1 rows:
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 0 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0140012e hdba: 0x0140012a
itli: 2 ispac: 0 maxfr: 4858
vect = 3
col 1: [ 3] 61 61 61
CHANGE #3 TYP:2 CLS:1 AFN:5 DBA:0x0140012e OBJ:17987 SCN:0x0000.006d69f8 SEQ:1 OP:11.19 ENC:0 RBL:0
KTB Redo
op: 0x11 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: F xid: 0x0008.006.00003ab8 uba: 0x00c03730.0336.26
Block cleanout record, scn: 0x0000.006d6ac2 ver: 0x01 opt: 0x02, entries follow...
itli: 1 flg: 2 scn: 0x0000.006d69f8
itli: 2 flg: 2 scn: 0x0000.006d0746
Array Update of 1 rows:
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 2 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0140012e hdba: 0x0140012a
itli: 2 ispac: 0 maxfr: 4858
vect = 3
col 1: [ 3] 41 41 41
REDO RECORD - Thread:1 RBA: 0x00010f.00000042.0010 LEN: 0x0164 VLD: 0x05
SCN: 0x0000.006d6acb SUBSCN: 1 11/18/2013 20:45:59
(LWN RBA: 0x00010f.00000042.0010 LEN: 0001 NST: 0001 SCN: 0x0000.006d6aca)
CHANGE #1 TYP:0 CLS:32 AFN:3 DBA:0x00c03730 OBJ:4294967295 SCN:0x0000.006d6ac2 SEQ:1 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 120 spc: 3150 flg: 0x0022 seq: 0x0336 rec: 0x27
xid: 0x0008.006.00003ab8
ktubu redo: slt: 6 rci: 38 opc: 11.1 objn: 17987 objd: 17987 tsn: 5
Undo type: Regular undo Undo type: Last buffer split: No
Tablespace Undo: No
0x00000000
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c03730.0336.26
Array Update of 1 rows:
tabn: 0 slot: 1(0x1) flag: 0x2c lock: 0 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0140012e hdba: 0x0140012a
itli: 2 ispac: 0 maxfr: 4858
vect = 3
col 1: [ 3] 62 62 62
CHANGE #2 TYP:0 CLS:1 AFN:5 DBA:0x0140012e OBJ:17987 SCN:0x0000.006d6ac2 SEQ:1 OP:11.19 ENC:0 RBL:0
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c03730.0336.27
Array Update of 1 rows:
tabn: 0 slot: 1(0x1) flag: 0x2c lock: 2 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0140012e hdba: 0x0140012a
itli: 2 ispac: 0 maxfr: 4858
vect = 3
col 1: [ 3] 42 42 42
REDO RECORD - Thread:1 RBA: 0x00010f.00000043.0010 LEN: 0x008c VLD: 0x05
SCN: 0x0000.006d6acd SUBSCN: 1 11/18/2013 20:46:00
(LWN RBA: 0x00010f.00000043.0010 LEN: 0001 NST: 0001 SCN: 0x0000.006d6acc)
CHANGE #1 TYP:0 CLS:31 AFN:3 DBA:0x00c000f0 OBJ:4294967295 SCN:0x0000.006d6ac2 SEQ:1 OP:5.4 ENC:0 RBL:0
ktucm redo: slt: 0x0006 sqn: 0x00003ab8 srt: 0 sta: 9 flg: 0x2 ktucf redo: uba: 0x00c03730.0336.27 ext: 12 spc: 3028 fbi: 0
記錄:
第一條:REDO RECORD:
OP:5.2
OP:5.1
OP:11.19
第二條:REDO RECORD
第三條:REDO RECORD
OP:5.4
IMU模式下的REDO日志格式:
REDO RECORD - Thread:1 RBA: 0x000119.0000002b.0010 LEN: 0x037c VLD: 0x0d
SCN: 0x0000.006d7b89 SUBSCN: 1 11/18/2013 21:33:47
(LWN RBA: 0x000119.0000002b.0010 LEN: 0002 NST: 0001 SCN: 0x0000.006d7b88)
CHANGE #1 TYP:2 CLS:1 AFN:5 DBA:0x0140012e OBJ:17987 SCN:0x0000.006d79d3 SEQ:1 OP:11.19 ENC:0 RBL:0
KTB Redo
op: 0x11 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: F xid: 0x0005.003.000038bd uba: 0x00c08f73.01ba.08
Block cleanout record, scn: 0x0000.006d7b7f ver: 0x01 opt: 0x02, entries follow...
itli: 1 flg: 2 scn: 0x0000.006d79d3
Array Update of 1 rows:
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 2 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0140012e hdba: 0x0140012a
itli: 2 ispac: 0 maxfr: 4858
vect = 3
col 1: [ 3] 41 41 41
CHANGE #2 TYP:0 CLS:25 AFN:3 DBA:0x00c000c0 OBJ:4294967295 SCN:0x0000.006d7b02 SEQ:2 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x0003 sqn: 0x000038bd flg: 0x0012 siz: 188 fbi: 0
uba: 0x00c08f73.01ba.08 pxid: 0x0000.000.00000000
CHANGE #3 TYP:0 CLS:1 AFN:5 DBA:0x0140012e OBJ:17987 SCN:0x0000.006d7b89 SEQ:1 OP:11.19 ENC:0 RBL:0
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c08f73.01ba.09
Array Update of 1 rows:
tabn: 0 slot: 1(0x1) flag: 0x2c lock: 2 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0140012e hdba: 0x0140012a
itli: 2 ispac: 0 maxfr: 4858
vect = 3
col 1: [ 3] 42 42 42
CHANGE #4 TYP:0 CLS:25 AFN:3 DBA:0x00c000c0 OBJ:4294967295 SCN:0x0000.006d7b89 SEQ:1 OP:5.4 ENC:0 RBL:0
ktucm redo: slt: 0x0003 sqn: 0x000038bd srt: 0 sta: 9 flg: 0x2 ktucf redo: uba: 0x00c08f73.01ba.09 ext: 25 spc: 6696 fbi: 0
CHANGE #5 TYP:0 CLS:26 AFN:3 DBA:0x00c08f73 OBJ:4294967295 SCN:0x0000.006d7b02 SEQ:1 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 188 spc: 7008 flg: 0x0012 seq: 0x01ba rec: 0x08
xid: 0x0005.003.000038bd
ktubl redo: slt: 3 rci: 0 opc: 11.1 [objn: 17987 objd: 17987 tsn: 5]
Undo type: Regular undo Begin trans Last buffer split: No
Temp Object: No
Tablespace Undo: No
0x00000000 prev ctl uba: 0x00c08f73.01ba.07
prev ctl max cmt scn: 0x0000.006d73bb prev tx cmt scn: 0x0000.006d7406
txn start scn: 0x0000.00000000 logon user: 32 prev brb: 0 prev bcl: 0 BuExt idx: 0 flg2: 0
KDO undo record:
KTB Redo
op: 0x04 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: L itl: xid: 0x0008.006.00003ab8 uba: 0x00c03730.0336.27
flg: C--- lkc: 0 scn: 0x0000.006d6acd
Array Update of 1 rows:
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 0 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0140012e hdba: 0x0140012a
itli: 2 ispac: 0 maxfr: 4858
vect = 3
col 1: [ 3] 61 61 61
CHANGE #6 TYP:0 CLS:26 AFN:3 DBA:0x00c08f73 OBJ:4294967295 SCN:0x0000.006d7b89 SEQ:1 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 120 spc: 6818 flg: 0x0022 seq: 0x01ba rec: 0x09
xid: 0x0005.003.000038bd
ktubu redo: slt: 3 rci: 8 opc: 11.1 objn: 17987 objd: 17987 tsn: 5
Undo type: Regular undo Undo type: Last buffer split: No
Tablespace Undo: No
0x00000000
KDO undo record:
KTB Redo
op: 0x02 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: C uba: 0x00c08f73.01ba.08
Array Update of 1 rows:
tabn: 0 slot: 1(0x1) flag: 0x2c lock: 0 ckix: 0
ncol: 2 nnew: 1 size: 0
KDO Op code: 21 row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0140012e hdba: 0x0140012a
itli: 2 ispac: 0 maxfr: 4858
vect = 3
col 1: [ 3] 62 62 62
OP:11.19 --->>AAA
OP:5.2 ---->事務産生
OP:11.19 ----->>BBB
OP:5.4 ---->COMMIT;
OP:5.1 ---->aaa
OP:5.1 --->bbb
- 第一個問題和第五個合并回答。
IMU--->In Memory Undo,10g新特性,資料庫會在shared pool開辟獨立的記憶體區域用于存儲Undo資訊,
每個新事務都會配置設定一個IMU buffer(私有的),一個buffer裡有很多node,一個node相當于一個block(復原塊)。
IMUt特性:
IMU顧名思義就是在記憶體中的undo,現在每次更改data block,Oracle 不用去更改這個undo block(也不會生成相應的redo了),而是把undo資訊緩存到IMU裡去了,隻有最後commit或者flush IMU時,這些undo 資訊才會批量更新到undo block,并生成redo。可以避免Undo資訊以前在Buffer Cache中的讀寫操作,進而可以進一步的減少Redo生成,同時可以大大減少以前的UNDO SEGMENT的操作。IMU中資料通過暫存、整理與收縮之後也可以寫出到復原段,這樣的寫出提供了有序、批量寫的性能提升。
IMU主要作用:
減少CR塊-->在構造CR block時,不用像以前那樣從undo block中擷取undo record了,而是用IMU裡的資訊來構造cr block。
減少REDO日志量-->因為減少REDO RECORD數目
減少LATCH-->因為減少REDO RECORD數目
減少LATCH-->一個IMU latch 代替 redo allocation latch 和 redo copy latch,也減少了LATCH争用.
2.在RAC環境中不支援IMU。
開啟FLASHBACK DATABASE時會開啟打開輔助日志,此時不能用IMU。
事務過大--據說每個IMU Buffer的大小在64~128KB左右,是以僅有特定的小事務可以使用
共享池太小時,ORACLE會自動不使用IMU。
3.11G中預設是開啟IMU特性的,開啟關閉語句如下:--修改後最好重新開機使之生效。
alter system set "_in_memory_undo"=false;
alter system set "_in_memory_undo"=true; --關閉IMU後使用此語句改回使用IMU特性。
4.結合實驗步驟來說
UPDATE語句産生的REDO日志格式及分析。
實驗1語句是:
BYS@ bys3>select * from dept;
DEPTNO DNAME LOC
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
40 OPERATIONS BOSTON
11 chedan bj
22 test sh
BYS@ bys3>set time on
20:26:21 BYS@ bys3>update dept set dname='database' where deptno=11;
1 row updated.
20:26:34 BYS@ bys3>update dept set dname='dataoracle' where deptno=22;
20:27:00 BYS@ bys3>commit;
Commit complete.
這個操作産生的REDO RECORD中change的順序如下:--操作加送出隻産生一條REDO RECORD
CHANGE#1 OP:11.19 --或者OP:11.5都是--UPDATE語句,開始修改資料,
CHANGE#2 OP:5.2 --operation code 向UNDO段頭的事務表寫事務資訊-事務開始
CHANGE#3 OP:11.19 --或者OP:11.5都是--UPDATE語句,開始修改資料,
CHANGE #4 OP:5.4 --送出
CHANGE #5 OP:5.1 --把表内資料修改前值放到UNDO
CHANGE #6 OP:5.1 --把表内資料修改前值放到UNDO
與樓主圖中UPDATE語句從第一步到第九步的對應是:
第一步:将更改的資料存放到PGA
第二步:将BUFFER CACHE中舊資料拷貝到共享池的私有IMU buffer
第三步:将PGA中修改後的資料存放到private redo
第四步:修改buffre cache中的資料
注:我實驗了做到這一步,執行update語句後迅速(3秒内)的進行DUMP REDO LOGFILE的操作,從DUMP出的檔案中,是找不到此事務的REDO日志條目。
做送出操作後:
第五步:從IMU中拷貝修改前值到BUFFER CACHE中建構一個CR塊--即使未送出時SMON每3秒也會做此工作
第六步:第四步修改修改buffre cache中的資料産生的redo日志寫入log buffe
第七步:第五步操作構造CR塊,産生的redo日志寫入 log buffe
第八步:由lgwr寫出log buffer到redo log file
第九步:dbwr 将髒資料寫入data file
上面UPDATE操作DUMP REDO 内容REDO RECORD - Thread:1 RBA: 0x000141.00000027.0010 LEN: 0x031c VLD: 0x0d
SCN: 0x0000.00719188 SUBSCN: 1 01/07/2014 20:27:05
(LWN RBA: 0x000141.00000027.0010 LEN: 0002 NST: 0001 SCN: 0x0000.00719187)
一個REDO RECORD: RECORD頭+CHANGE VECTOR組成(一個CV就是一個操作)
以上是日志頭,Thread:1 線程号,RAC時會有1,2等
RBA: 0x000141.00000027.0010 将16進制轉換為十進制分别是日志檔案号、日志塊号、在塊上第N位元組
VLD: 0x0d日志類型--IMU模式時是這個;非IMU時是:VLD: 0x05
BYS@ bys3>select scn_to_timestamp(to_number('719188','xxxxxxxx')) from dual;
SCN_TO_TIMESTAMP(TO_NUMBER('719188','XXXXXXXX'))
07-JAN-14 08.27.05.000000000 PM
--是此REDO條目産生時的SCN号,轉為十進制現轉為時間戳為:08.27.05, 插入語句完成是在20:27:00 BYS@ bys3>commit; --這個是在插入語句完成5秒後,此SCN與CHANGE#4送出時SCN一緻。
括号中SCN: 0x0000.00719187 比上一行:SCN: 0x0000.00719187 少了1個SCN。
CHANGE #1 TYP:2 CLS:1 AFN:4 DBA:0x010000fd OBJ:22327 SCN:0x0000.007164a1 SEQ:1 OP:11.5 ENC:0 RBL:0
AFN:4,操作是在4号檔案做的-dba_data_files.file_id;OBJ:22327--操作的對象的OBJECT_ID。OP:11.5-有的版本是OP:11.19--更新操作
KTB Redo
op: 0x11 ver: 0x01
compat bit: 4 (post-11) padding: 1
op: F xid: 0x0005.002.00000edc uba: 0x00c041cd.02ea.01
Block cleanout record, scn: 0x0000.0071917c ver: 0x01 opt: 0x02, entries follow...
itli: 1 flg: 2 scn: 0x0000.007164a1
KDO Op code: URP row dependencies Disabled -- --URP=UPDATE ROW PIECE。有時會是:KDO Op code:21 row dependencies Disabled
xtype: XA flags: 0x00000000 bdba: 0x010000fd hdba: 0x010000fa
itli: 2 ispac: 0 maxfr: 4858
tabn: 0 slot: 8(0x8) flag: 0x2c lock: 2 ckix: 0
ncol: 3 nnew: 1 size: 2 --ncol: 3 nnew: 1 表示操作的表有3個列,操作了一列,size: 2
--列字元長度增加2:database減去chedan---根據多次update并DUMP的日志來看,這裡的size的值應該是:目前CHANGE中的值減去另一個。。
col 1: [ 8] 64 61 74 61 62 61 73 65 --set dname='database' --col 1: [ 8],第二列,8個字元
BYS@ bys3>select dump('database',16),dump('dataoracle',16) from dual;
DUMP('DATABASE',16) DUMP('DATAORACLE',16)
Typ=96 Len=8: 64,61,74,61,62,61,73,65 Typ=96 Len=10: 64,61,74,61,6f,72,61,63,6c,65
CHANGE #2 TYP:0 CLS:25 AFN:3 DBA:0x00c000c0 OBJ:4294967295 SCN:0x0000.00719153 SEQ:1 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x0002 sqn: 0x00000edc flg: 0x000a siz: 164 fbi: 0
uba: 0x00c041cd.02ea.01 pxid: 0x0000.000.00000000
事務資訊
TYP:0 普通塊 ,CLS:25 class大于16是UNDO塊-遞增。AFN:3 絕對檔案号dba_data_files.file_id--是UNDO的檔案号
DBA:0x00c000c0 資料塊在記憶體中位址
OBJ:4294967295 --十進制,轉為16進制是FFFFFFFF
SCN:0x0000.00719153 轉換為16進制可與操作時對比
OP:5.2 -> operation code 向UNDO段頭的事務表寫事務資訊-事務開始
uba: 0x00c041cd.02ea.01 UNDO塊位址
CHANGE #3 TYP:0 CLS:1 AFN:4 DBA:0x010000fdOBJ:22327 SCN:0x0000.00719188 SEQ:1 OP:11.5 ENC:0 RBL:0
KTB Redo --同CHANGE #1的解析
op: 0x02 ver: 0x01
op: C uba: 0x00c041cd.02ea.02
KDO Op code: URP row dependencies Disabled ---UNDO ROW PIECE
tabn: 0 slot: 9(0x9) flag: 0x2c lock: 2 ckix: 0
ncol: 3 nnew: 1 size: 6
col 1: [10] 64 61 74 61 6f 72 61 63 6c 65 --第2列,10個字元--此次操作的字元數
CHANGE #4 TYP:0 CLS:25 AFN:3DBA:0x00c000c0 OBJ:4294967295 SCN:0x0000.00719188 SEQ:1 OP:5.4 ENC:0 RBL:0
ktucm redo: slt: 0x0002 sqn: 0x00000edc srt: 0 sta: 9 flg: 0x2 ktucf redo: uba: 0x00c041cd.02ea.02 ext: 15 spc: 7890 fbi: 0
OP:5.4 表明是送出操作。AFN:3 對應的是UNDO檔案,slt: 0x0002 修改了UNDO檔案的這個事務槽,uba: 0x00c041cd.02ea.02