Professional Documents
Culture Documents
Ora Bds 1
Ora Bds 1
使用 MAP 命令查看如下:
BBED>map
File: /home/oracle/toad01.dbf(75)
Block: 133 Dba:0x12c00085
KTB Data Block (Table/Cluster)
struct kcbh, 20bytes @0 --块头信息,cache layer
struct ktbbh, 72bytes @20 --事务信息,transaction layer
struct kdbh, 14bytes @100 --对应数据头,占用 14 字节
struct kdbt[1], 4bytes @114 --表目录*kdbt[0]指针显示值
sb2kdbr[3] @118 --行目录 *kdbr[0]指针值显示状态 flg
ub1 freespace[8028] @124 --空闲空间
ub1 rowdata[36] @8152 --行数据
ub4tailchk @8188 --tail check
这 20 个字节的结构体如下图 3:
1.2 struct ktbbh 事务信息 80 个字节
0100000093720100 db6d5e81
?00000000 02003200 8000c01254010e00 e6a40000 7c068000 290a0f00 01200000
?dd6d5e81 af002100 2f450200 a40a8000 1311100000800000 d46d5e81 00000000
?00000000
第 21-24 个字节:Tyte=01000000 表示块类型换成从大到小就是 00000001 (1 是 DATA,2 是
INDEX)
第 25-28 个字节:Seg/obj=93720100 表示块对象换成从大到小就是 0x17293
第 29-36 个字节:CSC= db6d5e8100000000 块上次全清除的 SCN 号,换成从大到小就是
00000000815e6ddb
第 37 字节:Fsl=02,在 ITL 自由列表上的第一个槽位
第 38 字节:flg=00,
第 39-40 字节: itc=0x3200 换成从大到小就是 0x0032,占 2 个字节。值为 50(ITL 条目的个
数 max 255 超过会报 ORA-02207 ORA-00060 ORA-00054 可能是没空间分配 itl 条目了或它
的争用引起的,在 8i 中 INITRANS default 为 1 , 9.2.0 中 INITRANS default 为 2, 12c 是 50)
第 41-44 字节:自由列表下一块地址 8000c012 换成从大到小就是 12C00080
从 45 字节开始就是 ITL 记录,每个 ITL 占用 24 个字节
本块含有两个 ITL 记录
54010e00e6a40000 7c068000 290a0f00 01200000 dd6d5e81
af0021002f450200 a40a8000 13111000 00800000 d46d5e81
第 45-52 字节,XID=54010e00 e6a40000 转换过来就是 0x0154.00e.0000a4e6
第 53-60 字节,UBA=7c068000 290a0f00 转换过来就是 0x0080067c.0a29.0f
第 61-62 字节,lck flag=0120,即 0x2001,表示状态和锁住的行。2=0b0010,就是 - - U -,1 表示
锁住一行。
C = Committed; U = Commit Upper Bound; T =Active at CSC; B = Rollback of this UBA gives
before image of the ITL.
---- = transaction is active, or committedpending cleanout
C--- = transaction has been committed andlocks cleaned out
-B-- = this undo record contains the undofor this ITL entry
--U- = transaction committed (maybe longago); SCN is an upper bound
---T = transaction was still active atblock cleanout SCN
Lck 3 nibbles
The number of row-level locks held in theblock by this transaction.
第 63-68 字节,表示 scn/fsc: 0000dd6d5e81 , 转换后就是 0x0000.815e6ddd