失效链接处理 |
Oracle数据块结构分析说明BLOCK结构详解 PDF 下载
本站整理下载:
相关截图:
主要内容:
0x06=trans data defined in kcb.h
frmt: 8i~9i 都是 0x02 10.1.0 2k: 0x62 4k:0x82 8k:0xa2 16k:0xc2 (logfile 0x
22 512 bytes)
spare1/2_kcbh: ub1 spare1_kcbh this field is no longer used (old inc#, now always
0)
ub1 spare2_kcbh this field is no longer used (old ts#, now always
0)
rdba: 0x0140000a 转换成 2进制后它的前10 bit 表示file id 后22 bit 表示的b
lock id 可以看出一个 tablespace 可以有 1023 个 datafile ,每个 datafile
可以有 4M 的 block
10G 出现的 big datafile 这里表示的就是 block id 了 没有 file id
9.2.0 试验过一个 tablespace 可以有 1023 个 datafile 一个 object 可以存放
在 1023 个 datafile 中
scn: scn: 0x0000.0043890e
seq: A sequence number incremented for each change to a block at the
same SCN
A new SCN is allocated if the sequence number wraps.
同一个 SCN 影响这个 block 中的行数大于 254 行就会为这个事务分配一
个新的 SCN
如下面的操作就可能引起同一个 SCN 但影响的同一个 block 中的行超过 2
54 行
"delete from table_name"
影响的行数(最大 254) 是用从 0x01 到 0xfe 表示的
当这个 byte 的数据为 0xff 的时候标志这个 block 坏调了---> ora-01578
Sequence number:
SEQ -> 0 /* non-logged changes - do not advance seq# */
SEQ -> (UB1MAXVAL-1)/* maximum possible sequence number */
SEQ -> (UB1MAXVAL) /* seq# to indicate a block is corrupt,equal t
o FF. soft corrupt*/
0xff : When present it indicates that the block has been marked as
corrupt by Oracle. either by the db_block_checking functionality or th
e equivalent events (10210 for data blocks, 10211 for index blocks,
and 10212 for cluster blocks) when making a database change, or
by the DBMS_REPAIR.FIX_CORRUPT_BLOCKS procedure, or by P
MON after an unsuccessful online block recovery attempt while reco
更多数据库资源请访问 美河学习在线 www.eimhe.com
vering a failed process, or by RMAN during a BACKUP, COPY or V
ALIDATE command with the CHECK LOGICAL option. Logical corru
ptions are normally due to either recovery through a NOLOGGING o
peration, or an Oracle software bug.
flg: as defined in kcbh.h
#define KCBHFNEW 0x01 /* new block - zeroed data area */
#define KCBHFDLC 0x02 /* Delayed Logging Change advance SCN/seq
*/
#define KCBHFCKV 0x04 /* ChecK Value saved-block xor's to zero */(检
查值保存块异或零
)
#define KCBHFTMP 0x08 /* Temporary block */
这是一个可以组合的值 也就是说有为 6 的时候是 2,4 两种情况的组合
Block structure as defined in kcbh.h:
struct kcbh
{ub1 type_kcbh; /* Block type* /
ub1 frmt_kcbh; /* #define KCBH_FRMT8 2 */
ub1 spare1_kcbh;
ub1 spare2_kcbh;
krdba rdba_kcbh; /* relative DBA /
ub4 bas_kcbh; /* base of SCN */
ub2 wrp_kcbh; /* wrap of SCN */
ub1 seq_kcbh; /* sequence # of changes at same scn */
ub1 flg_kcbh;
ub2 chkval_kcbh;
}
|