ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle header_block

oracle header_block

原创 Linux操作系统 作者:g644516804 时间:2011-11-03 14:25:05 0 删除 编辑
一个table的数据存放在block中,每次create table时,oracle以extent为单位分配空间,该table占用的空间为segment,segment由extent组成,extent由block组成
对于ASSM的管理segment
select segment_name,header_file,header_block,blocks,extents from dba_segments where segment_name='T3'
----  ---- ----- ----------   -----
T3     5     11    10240     81
header_block为该table的块头,存放了一级位图和二级位图的地址以及该segment拥有的extent总数
select extent_id,block_id,file_id,blocks  from dba_extents where segment_name='T3' order by extent_id;
---- ----- ----- -----
0      9      5    8
1       17   5    8
.........
block_id为segment的一级位图,记录了其所管辖的block的信息,是free,or full 状态
要找空闲块时,先从一级位图中找空闲,找不到再从二级位图或是header block中查找其他一级位图的地址,再查找空闲块
 
block_id=10的即为二级位图块的地址(只有一个)
利用alter system dump datafile 5 block 11;
alter system dump datafile 5 block 10;
alter system dump datafile 5 block 9;
alter system dump datafile 5 block 25;--第二个一级位图的地址
 
 
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24849178/viewspace-710172/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: dbms_stats
下一篇: IBM aix svmon
请登录后发表评论 登录
全部评论

注册时间:2011-03-04

  • 博文量
    104
  • 访问量
    271258