oracle block header_tail資料塊頭與資料塊尾

wisdomone1發表於2013-03-30


1,用於讀取資料塊進行驗證,可以驗證大多數的壞塊和熱備產生的split block
2,可以用bbed檢視block header和block tail的結構
3,block header佔用20 byte而block tail佔用4byte
4,oracle kernel 即kcb會透過buffer cache讀寫資料塊

/***如下是alter system dump datafile block的trace塊頭如下***/
buffer tsn: 0 rdba: 0x00400002 (1/2)
scn: 0x0000.00e9ffb4 seq: 0x01 flg: 0x04 tail: 0xffb40e01
frmt: 0x02 chkval: 0xb31e type: 0x0e=KTU UNDO HEADER W/UNLIMITED EXTENTS

我們來一一介紹:
1,rdba:即資料塊地址:relative file number+block number(same tbs)
2,scn:最新一次scn;低4位byte叫作scn base,而高4位叫作scn wrap
   (即上述的00e9ffb4為其00e9為高4位,ffb4為低4位)
3,sequence:與上面的scn對應,遞增;如果sequence wrap,必須分配一個新的scn
4,flag:塊的型別
5,format:塊的格式:8i前為1,其後為2
6,checksum:可選,如配置db_block_checksum
          採用xor演算法
7,block type:資料塊的型別,即屬於表,索引或cluster

/*********cache layer block type*********/
            

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

相關文章