sky 发表于 2012-6-30 10:10:37

oracle存储体系总结

最近因工作需要,需要理解oracle单表容量问题,所以,对oracle存储体系进行了学习归纳,图示:

其中块的结构图如下:



块首部(block header)包含块类型的有关信息(表块、索引块等)、块上发生的活动事务和过去事务的相关信息(仅事务管理的块有此信息,例如临时排序块就没有事务信息),以及块在磁盘上的地址(位138/ 849置)。块中接下来两部分是表目录和行目录,最常见的数据库块中(即堆组织表的数据块)都有这两部分。如果有表目录(table directory),则其中会包含把行存储在这个块上的表的有关信息(可能一个块上存储了多个表的数据)。行目录(row directory)包含块中行的描述信息。这是一个指针数组,指向块中数据部分中的行。块中的这3 部分统称为块开销(block overhead),这部分空间并不用于存放数据,而是由Oracle 用来管理块本身。块中余下的两部分就很清楚了:块上可能有一个空闲空间(free space),通常还会有一个目前已经存放数据的已用空间(used space)。

从以上图以及块信息,归纳下以下几点:

1.数据库由一个或者多个表空间组成2.表空间物理上由一个或者多个文件组成,此文件可以是os文件系统中、 裸设备、ASM文件系统、集群文件系统中的文件3.表空间逻辑上由段组成4.段逻辑上由一个或者多个区段组成5.每个段在物理上可以存储在一个文件或者多个文件上6.一个区段数据物理上只能存储在一个文件上,区段在文件系统里面是连续的区间(逻辑上),但实际在硬盘上可能不是连续的7.块是最小单位,由文件系统保证,同时也是数据库IO时的最小单元8.创建对象(表 索引等)时,会创建一个或者多个段,这些段可能分布在一个表空间也可能分布在多个表空间9.单表的最大容量,理论上可以达到文件系统可以寻址和存储的上限

0 发表于 2013-3-13 21:10:59

没看完~~~~~~ 先顶,好同志

zsy001 发表于 2013-5-15 21:34:44

走自己的路,让别人打车去吧。

yl197837 发表于 2013-5-16 08:44:36

如果回帖是一种美德,那我早就成为圣人了!

wyyy721 发表于 2013-5-16 22:27:50

生,容易。活,容易。生活,不容易。

wskickahn 发表于 2013-5-17 13:12:04

床上运动也可以减肥的,你们都不知道吗?

shanghaipc 发表于 2013-5-18 01:47:05

男人与女人,终究也只是欲望的动物吧!真的可以因为爱而结合吗?对不起,我也不知道。。
页: [1]
查看完整版本: oracle存储体系总结