1. chunk 块
chunk 是分配给数据库服务器的连续物理磁盘空间段,数据库的数据最终存放于此,因此chunk是数据库服务器的物理存储实体,数据库服务器所做的空间管理工作都是在chunk中进行的。一个典型的chunk可能是UNIX的一个原始设备(raw device),也可能是一个cooked file。
2. dbspace 数据库空间
dbspace是一个逻辑上的概念,一个dbspace是若干chunk的集合,每个dbspace至少有一个chunk,可以给一个dbspace指定多个chunk。
数据库和表可以建立在特定的dbspace上,这也就决定了数据库和表最大只能增长到它所在的dbspace空间那么大。
我们不能决定所建的库和表究竟处于该dbspace上的哪个chunk上,但是可以把库和表创建在一个指定的物理设备上(先把位于某个设备上的chunk指定给一个dbspace,然后再把库和表建立在该dbspace上)。
每个数据库服务器至少有一个dbspace(根dbspace,root dbspace),所有控制数据库服务器的系统信息都被置于其上。
3. page 数据页
当chunk被分配至数据库服务器时,它将在逻辑上被划分为一些更小的单位,称为页(page)。页是数据库服务器的基本I/O单位,所有存储在数据库服务器中的数据实际都存储在页上。如果您想从数据库中读取一行,存储该行内容的整个页都会被读取到共享内存的缓冲区中。
数据库服务器的页大小由所在的特定的机器/操作系统决定。最常用的页大小为2K,也有的系统使用4K的页。数据库服务器中缺省页的大小是不可改变的,不过可以在创建常规的dbspaces时指定数据库空间所使用的页大小,而root dbspace页大小将使用平台缺省值。
4. extent 段
为表分配磁盘空间是以extent为单元进行的。一个extent是在创建表或修改表时指定的连续页的集合。每个表都涉及两个extent大小:extent size为建表时初次分配的extent大小;next extent后续追加到该表上的extent大小。
注:一个dbspace可看作物理chunk的一个逻辑组,这些chunk可能分布在不同的磁盘上,尽管他们都来自同一个dbspace;一个tblspace可看作extent的一个逻辑组,来自同一个tblspace的extent可能分布在不同的chunk上。
5. tblspace 表空间
一个tblspace是若干extent的一个逻辑集合,包含分配给指定表、索引或片段的所有extent。Tblspace 所代表的空间并不一定是连续的,它可以包括存于单个chunk或多个chunk上的extent。一个tblspace必须处在唯一的dbspace上。
7. blobspace
blobspace 是存储简单二进制大对象(text/byte)的chunk的集合。创建 blobspace时,可以为blobpage指定页大小。
8. sbspaces
sbspace 是一个用于存储智能二进制大对象(blob/clob)的chunk的逻辑集合。不同于 blobspace,sbspace不能指定页的大小, 将数据存储在缺省的数据库页内。
9. 物理日志
物理日志保存已在共享内存池修改但尚未写入磁盘的页面前映像。主要用于容错恢复机制(即fast recovery)。只有页面的第一次修改会使前映像写入物理日志。出现在下一检查点之前的相同页面的随后更改不会再写入物理日志。
10. 逻辑日志
逻辑日志保存数据库从上一次备份后的操作记录,比如insert, update等动作,但不是记录具体数据。