oracle数据块学习1

1、  创建一张测试表:

create table t1(a integer,b varchar2(100),c varchar2(100));

insert into t1 values(1,null,'aaaa');

insert into t1 values(1,null,'bbbb');

insert into t1 values(1,1111,null);

2、  查找表(段)所在的位置:

select extent_id,file_id,block_id from dba_extents where segment_name='T1';

 

3、  查找12号文件是什么:

select file_name from dba_data_files where file_id=12;

 

4、  查找具体的块号:

  

 5、  下面用linux命令dd将3029这个块dump出来:

dd if=/oradata/oracle/datafiles/NNC_DATA01_07.dbf    of=g.dmp  bs=8192 skip=3029 count=1

cp  g.dmp /db_backup/

6、  UE打开g.dmp文件进行查看,文件尾部:

其中

  

   蓝色的数字代表:2c是行头,01表示改行使用了1号ITL槽,03表示这一条记录有多少个字段(3个)。

   02,c1,02是第一个字段的值,这个字段是数字类型,02表示该字段的长度,C1  02就是十进制的1, 后面的FF表示第二个字段为空值,而04,61,61,61是最后一个字段aaaa。、

   第三条记录地址为00001fd0h,

 以2c 01,02开头,每一行的第三个字节表示这一行的字段数量。而至一行在insert的时候最后一个字段为null。说明:如果某一行的最后几个字段都为null,oracle存储时会直接省略,以节约存储空间

原文地址:https://www.cnblogs.com/maruidong/p/6292057.html