oracle逻辑结构

作者在 2007-03-19 21:21:00 发布以下内容
oracle逻辑结构
 

1、一个数据库包含至少一个表空间(system表空间)、至少一个控制文件(建议3个,分别放在不同磁盘上)和至少两个联机日志组(每组至少一个联机日志文件);
2、一个表空间(数据库中的基本逻辑结构,一系列数据文件的集合)包含至少一个段(segment)、至少一个数据文件,且每一个表空间只能属于一个数据库,其中建立的system表空间要尽量报目的相同的表放在一起,以便提高使用效率,同时,建立新的表空间需要建立新的数据文件;
3、一个数据库的数据共同存储在数据文件里,一个数据文件只能属于一个表空间,且一旦加入到表空间中,就不能再从这个表空间中移走,也不能再加入到其它表空间中(原因是:数据文件被oracle格式化oracle块,块大小是第一次创建数据库时设定的,以后不能改变,要想改,只能重建数据库,注:block是oracle使用和分配的最小存储单位);
表空间和数据文件是物理存储上的一对多的关系;
4、段是对象在数据库中占用的空间,是由多个扩展区组成,虽然段和数据库对象是一一对应的,但段是从数据库存储的角度来看的。一个段只能属于一个表空间,当然一个表空间可以有多个段;
表空间和段是逻辑存储上的一对多的关系,段不直接和数据文件发生关系。一个段可以属于多个数据文件;
5、一个扩展区是在磁盘上一些连续分配的块,一个扩展区在一个表空间中,对应表空间中单一的文件,即扩展区不能跨越数据文件而存在;
一个段中可以存在多个区间,区间是为数据一次性预留的一个较大的存储空间,直到那个区间被用满,数据库会继续申请一个新的预留存储空间,即新的区间,一直到段的最大区间数(Max Extent)或没有可用的磁盘空间可以申请。
6、PCTFREE和PCTUSED总和不能大于等于100。
计算公式如下:
PCTFREE=(Average Row Size-Initial Row Size)*100/Average Row Size
PCTUSED=(100-PCTFREE) -Average Row Size * 100/Availabe Data Space

关于control file的说明:
控制文件在创建数据库被创建,它包含组成该数据库的其他文件
(例如,数据文件和日志文件)的列表,它还包含数据库内容和状态的关键信息。
可以重建控制问件。

关于PCTFREE和PCTUSED
概念:
pctused:一个块的使用水位的百分比,这个水位将使该块返回到可用列表中去等待更多的插入操作。
pctfree:用来为一个块保留的空间百分比,以防止在今后的更新操作中增加一列或多列值的长度。
freelist:可用列表是表中的一组可插入数据的可用块。
行连接:指一行存储在多个块中的情况,这是因为该行的长度超过了一个块的可用空间大小,即行链接是跨越多块的行。
行迁移:指一个数据行不适合放入当前块而被重新定位到另一个块(那里有充足的空间)中,但在原始块中保留一个指针的情形。原始块中的指针是必需的,因为索引的ROWID项仍然指向原始位置。

默认分类 | 阅读 888 次
文章评论,共0条
游客请输入验证码