oracle redo record scn與transaction相關block scn關係小記
在 oracle dump redo系列一,我們發現redo record會記錄scn,這個scn到底是什麼呢
和data block的itl上面的scn有什麼關係嗎?
/***********我們dump下表記錄對應的資料塊*********/
alter system dump datafile 10 block 276635;
/********資料塊的trace******************/
--注意:資料塊的scn是寫在資料塊的頭部,也叫資料塊頭,而非itl上
Block dump from cache:
Dump of buffer cache at level 4 for tsn=8, rdba=42219675
Block dump from disk:
buffer tsn: 8 rdba: 0x0284389b (10/276635)
scn: 0x0000.009bfd97 seq: 0x02 flg: 0x04 tail: 0xfd970602
frmt: 0x02 chkval: 0x7d5a type: 0x06=trans data
/******redo record中的scn***************/
scn: 0x0000.009bfd97 seq: 0x02 flg: 0x04 tail: 0xfd970602
小結:redo logfile中的scn就是表資料塊中的scn,這樣oracle就實時掌握對資料塊修改的實時情況
另一個問題:在redo record中也記錄了對undo header block及undo block的scn,它們的scn我想和上面
同理,也是記錄在undo header block和undo block吧,我們dump看下:
/***************先看undo block********************/
* Rec #0x38 slt: 0x03 objn: 458(0x000001ca) objd: 458 tblspc: 0(0x00000000) -- objd: 458即內部表MON_MODS$
* 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: 0x00c1bddc.01b5.37 ctl max scn: 0x0000.009abe27 prv tx scn: 0x0000.009acfd9
--這裡還標明是事務開始的scn,所以我理解如果有提交還有提交或結束scn
txn start scn: scn: 0x0000.009bfccb logon user: 0 --這就是undo block的scn,這裡準確來說是undo block 撤消記錄條目的scn,因為每個撤消記錄條目會記錄對於真正資料塊不同的操作,可能會對應不同的資料塊或相同的資料塊多條操作
prev brb: 12624014 prev bcl: 0
KDO undo record:
KTB Redo
op: 0x04 ver: 0x01
compat bit: 4 (post-11) padding: 0
op: L itl: xid: 0x004d.000.00000095 uba: 0x00c0207b.01d5.2a
flg: C--- lkc: 0 scn: 0x0000.009bfcc8
KDO Op code: URP row dependencies Disabled
xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x00400c39 hdba: 0x00400c38
itli: 1 ispac: 0 maxfr: 4863
tabn: 0 slot: 56(0x38) flag: 0x2c lock: 0 ckix: 24
ncol: 7 nnew: 6 size: 0
Vector content:
col 1: [ 3] c2 02 33
col 2: [ 1] 80
col 3: [ 3] c2 02 0d
col 4: [ 7] 78 71 03 17 15 10 06
col 5: [ 1] 80
col 6: [ 1] 80
/***************再看看下redo中的undo block的redo部分********************/
第2個改變向量
CHANGE #2 TYP:0 CLS:82 AFN:3 DBA:0x00c1bddc OBJ:4294967295 SCN:0x0000.009bfccb SEQ:1 OP:5.1 ENC:0 RBL:0 ---這就是redo 中的undo block的scn
ktudb redo: siz: 108 spc: 3154 flg: 0x0012 seq: 0x01b5 rec: 0x39
小結:redo的undo block scn與undo block的undo record的scn一致
---再看看undo header block與redo中的undo header block的redo scn的關係
/*********這是undo header block 的trace/
TRN TBL::
index state cflags wrap# uel scn dba parent-xid nub stmt_num cmt
------------------------------------------------------------------------------------------------
0x03 9 0x00 0x009b 0xffff 0x0000.009bfccc 0x00c1bddc 0x0000.000.00000000 0x00000001 0x00000000 1364042105
/*********這是redo中的undo header block redo部分/
REDO RECORD - Thread:1 RBA: 0x000314.0000d941.0010 LEN: 0x015c VLD: 0x01
SCN: 0x0000.009bfd97 SUBSCN: 2 03/23/2013 20:35:48
CHANGE #1 TYP:0 CLS:81 AFN:3 DBA:0x00c01958 OBJ:4294967295 SCN:0x0000.009bfccc SEQ:1 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x0018 sqn: 0x0000009c flg: 0x0012 siz: 108 fbi: 0
uba: 0x00c1bddc.01b5.39 pxid: 0x0000.000.00000000 --這個uba即undo block對應下面的change #2
小結:redo中的undo header block scn與undo header block的scn是一致的
小結:1,日誌redo會同步把data block和undo header|block的scn完整記錄在redo中
2,data block header scn與undo block scn及undo header block scn是一致(測試中發現)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-756936/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle:SCNOracle
- 【SCN】Oracle SCN 詳細介紹Oracle
- 【SCN】Oracle推薦scn命令參考Oracle
- 【SCN】Oracle檢查scn值指令碼Oracle指令碼
- Oracle SCN詳解Oracle
- ORACLE -詳解SCNOracle
- oracle的scn及sequenceOracle
- 關於SCN需要知道的事
- Oracle的DBMS_SCN修正以及SCN的auto-rollover新特性Oracle
- Oracle 檢查點涉及的SCNOracle
- Oracle的SCN顯示問題Oracle
- ordebug 手動修改Oracle sga scnOracle
- oracle基於SCN增量恢復Oracle
- Oracle SCN健康狀態檢查Oracle
- [20210409]關於X$KCCDI的scn資訊.txt
- Oracle SCN機制詳細解讀Oracle
- oracle 推進scn(poke、gdb、event、bbed)方法Oracle
- 透過修改控制檔案scn推進資料庫scn資料庫
- 統計學三大相關係數之Pearson相關係數、Spearman相關係數
- Oracle資料庫中的多種SCN彙總Oracle資料庫
- 深入瞭解SCN(轉)
- 資料關係比較:相關性 vs 因果關係
- 【體系結構】SCN與checkpoint(檢查點)
- [20181123]快速提升scn注意.txt
- ora-19706 scn問題
- 【等待事件】standby query scn advance事件
- Oracle相關命令Oracle
- 通俗解釋協方差與相關係數
- 【kingsql分享】使用BBED修改Oracle資料檔案頭推進SCNSQLOracle
- 【恩墨學院】深入剖析 - Oracle SCN機制詳細解讀Oracle
- 機率論11 協方差與相關係數
- 5G與WiFi6相愛相殺的關係WiFi
- 偏相關係數計算
- MySQL中redo log、undo log、binlog關係以及區別MySql
- 【深入】體系結構-003-SCN
- Java Record 的一些思考 - 序列化相關Java
- 資料的相關性或因果關係 - KDnuggets
- 深度剖析Margin塌陷,BFC,Containing Block之間的關係AIBloC
- Simplemde 編輯器相關問題小記