这就可以看出一个 datafile 的最大的容量是 0x01040001~0x0107ffff 总共是 --- 4M(因为还有一个datafile head)个block 如果block 是8k 一个datafile就是 32G --- 这就是oracle 的文档上面对 oracle 的 datafile (8k的时候)最大 32G 的原因 --- 同样可以看出一个 tablespace 的datafile 可以从 0x0100 到 0xfffe 就是1023 --- 个 datafile 这也是 oracle 的文档上面说一个tablesapce可以有1022 个datafile --- 的原因(其实一个 tablespace 可以有 1023 个 datafile 我建过) --- oracle10G中 block 的big datafile 的这段数据的情况是0x00000001~0xffffffff --- 这也是为什么一个 big datafile 的tablesapce只有一个datafile 并且最大值为 --- 32T (8k的时候 : 4G*8k=32T ; 32k的数据块的时候为128T) --- A5 02 08 00 00 00 : scn: 0x0000.000802a5 oracle是c语言写的 这6位不正好是一个 unsigned long --- 和 unsigned int的组合 --- 01 : seq: 0x01 --- 02 : flg: 0x02 --- 00 00 : chkval: 0x0000 在 init 中设置了 db_block_checksum=true 才有值 --- 00 00 : unused 上面的dump文件中并没有显示这部分内容 --- 上面的20个bytes的数据任改其中的值肯定发生ORA-XXXXX(不一定就是ora-01578 我还看见过ora-600)
------------------------ 下面的对应上面dump 文件的第二部分
01 00 00 00 4A 61 00 00 A3 02 08 00 00006020 00 00 00 00 01 00 03 00 00 00 00 00
--- 01 : typ: 1 - DATA --- 00 : 只见过 0x00 没见过其他的值 don''''t know --- 00 : 见过有其他值 但用编辑器改这个值 在 dump 文件中显示不出来变化 --- 00 : 没见变过其他的值 don''''t know --- 4A 61 00 00 : seg/obj: 0x614a --- A3 02 08 00 00 00 : csc: 0x00.802a3 --- 00 00 : 见过有其他值 但用编辑器改这个值 在 dump 文件中显示不出来变化 --- 01 : itc: 1 下面的 ITL 条目的个数 --- 00 : 见过有其他值 但用编辑器改这个值 在 dump 文件中显示不出来变化 --- 03 : flg: O ver: 0x01 Object id on Block? Y --- 从我的观察中 dump 出来的文件中 flg ver Object id on Block --- 他们共同占用的这个一个字节 他的规律可以从下面的情况看出 --- 2进制数据 flg ver Object id on Block? --- 0x00 - 0x00 N --- 0x01 0 0x00 N --- 0x02 - 0x01 Y --- 0x03 0 0x01 Y --- 0x04 - 0x02 Y --- 0x05 0 0x02 Y --- 0x06 - 0x03 Y --- 0x07 0 0x03 Y --- 0x08 - 0x04 N --- 0x09 0 0x04 N --- 0x0a - 0x05 Y --- 0x0b 0 0x05 Y --- 0x0c - 0x06 Y --- 0x0d 0 0x06 Y --- &nb 上一页 [1] [2] [3] [4] 下一页 |