摘要: Row Flag Structure在看一个数据块的dump文件的时候,经常会发现类似如下的信息...tl: 12 fb: --H-FL-- lb: 0x1 cc: 2其中fb, lb, cc就是每一行数据头的信息,分别表示Row Flag, Lock Byte (ITL entry), Column Count. (tl, 应该表示每一行数据实际占用的空间大小,包括row header, 每一个column实际占用的字节数,和用来存储每个column长度的overhead。 tl的信息并没有实际存储。)那么ROW Flag中的8个bit分别表示什么意思呢 (例如这里的H, F, L)?-- 阅读全文
posted @ 2011-02-19 21:05 FangwenYu 阅读(288) 评论(0) 推荐(0) 编辑
摘要: BBED(Block Browser and EDitor) 是Oracle提供的一个功能非常强大的工具,用来直接对oracle block进行操作。因此这个工具使用起来很危险,而且Oracle不对用这个工具带来的任何后果负责任,这个工具仅供内部使用。虽然如此,这个工具为我们研究block的存储结构带来了极大的便利,因此了解下也是很有好处的 :-) 本文主要介绍如果安装BBED, 因为在linux下面,bbed默认没有“安装”,不能直接使用,需要先进行一些操作...[代码]进行这个link操作之后,在目录$ORACLE_HOME/rdbms/lib目录下生成了bbed这 阅读全文
posted @ 2011-02-19 00:24 FangwenYu 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 之前在Data Block Structure (Try to Understand)中通过dump文件来尝试去分析一个block的结构,结果费了半天劲,也没有得到一个很清晰的概念。发现BBED的map命令很好很强大,可以用来得到一个block的结构组织情况,通过设置dba来得到一个block的结构,如下所示...[代码]这里面的一系列的struct,可以参见如下介绍...[代码] 阅读全文
posted @ 2011-02-19 00:24 FangwenYu 阅读(349) 评论(0) 推荐(0) 编辑
摘要: BBED功能相当强大,因为可以用来修改block上的内容,因此很显然可以通过BBED来修改表上的数据,直接绕过通过SQL语句对表的操作。本文尝试通过BBED来修改表中的一条记录。建立实验环境首先建立实验环境,建立一张表test, 插入一条记录 (1, 'Frank'), 如下...[代码]通过上面的操作,确定了我们刚才在表test中插入的一条记录位于4号数据文件上第404个block上面。设置BBED现在把BBED 的dba 设置成 4, 404[代码]可以通过BBED来查看我们刚才在表TEST中插入的记录,如下,(kbdr中这个数组大小为1,表示只有一条记录)[代码]注意这里面用到的e(x) 阅读全文
posted @ 2011-02-19 00:24 FangwenYu 阅读(598) 评论(0) 推荐(0) 编辑