Oracle的存储结构关系:
图1:oracle的物理和逻辑存储关系
数据库的逻辑单元有表空间、段、区间、数据块,在物理上,数据存放在磁盘的数据文件上面,也存放在操作系统上的blcok。
Oracle的blcok大小为os block大小的倍数,查看一下oracle11g的block大小为8KB
逻辑存储体系:一个数据库包含一个或多个表空间,一个表空间包含一个或多个段,段包含一个或多个区,每一个区包含多个数据块。
图2:段、区、数据块的关系
数据块:数据库使用和分配的最小存储单元,Oracle所有对数据的操作和空间分配,实际上都是针对数据块Block的操作。我们从数据表中搜索出一行,实际中Oracle就会从内存缓冲区(或者硬盘)中读取到该行所在的数据块,再返回这数据块上的指定数据行。Oracle无论是在缓冲区,还是在硬盘,进行数据操作的最小单位也就是数据块。
段segment:segment是数据库的对象,用来存储表、索引的存储容器。
表空间:表空间是存放段,在物理上一个表空间可以存放一个或者多个数据文件。因此一个段的多个区都在一个表空间。
图3:表空间与数据文件的关系
一个数据库必须要有system、sysaux表空间。Oralcle建议至少创建一个表空间去存储用户信息和程序数据。
图4:表空间的分类
表空间间的管理:主要有本地管理和字典管理
图5:表空间的管理方式
本地管理:在数据文件头部添加位图来记录区的使用与空闲,1为使用,0表示被释放。
当extent被使用或者被释放,oracle会更新头部的记录来反映这个变化,不产生回滚信息。因为仅仅操作数据文件头部的几个数据块,不用操作数据字典,LMT比DMT要快。
图6:bitmap manage storage
字典管理:oracle将表空间信息维护在oracle的数据字典中,空闲空间被记录在SYS.FET$表中,已使用空间记录在SYS.UET$表。
Oracle的存储结构关系:
图1:oracle的物理和逻辑存储关系
数据库的逻辑单元有表空间、段、区间、数据块,在物理上,数据存放在磁盘的数据文件上面,也存放在操作系统上的blcok。
Oracle的blcok大小为os block大小的倍数,查看一下oracle11g的block大小为8KB
逻辑存储体系:一个数据库包含一个或多个表空间,一个表空间包含一个或多个段,段包含一个或多个区,每一个区包含多个数据块。
图2:段、区、数据块的关系
数据块:数据库使用和分配的最小存储单元,Oracle所有对数据的操作和空间分配,实际上都是针对数据块Block的操作。我们从数据表中搜索出一行,实际中Oracle就会从内存缓冲区(或者硬盘)中读取到该行所在的数据块,再返回这数据块上的指定数据行。Oracle无论是在缓冲区,还是在硬盘,进行数据操作的最小单位也就是数据块。
段segment:segment是数据库的对象,用来存储表、索引的存储容器。
表空间:表空间是存放段,在物理上一个表空间可以存放一个或者多个数据文件。因此一个段的多个区都在一个表空间。
图3:表空间与数据文件的关系
一个数据库必须要有system、sysaux表空间。Oralcle建议至少创建一个表空间去存储用户信息和程序数据。
图4:表空间的分类
表空间间的管理:主要有本地管理和字典管理
图5:表空间的管理方式
本地管理:在数据文件头部添加位图来记录区的使用与空闲,1为使用,0表示被释放。
当extent被使用或者被释放,oracle会更新头部的记录来反映这个变化,不产生回滚信息。因为仅仅操作数据文件头部的几个数据块,不用操作数据字典,LMT比DMT要快。
图6:bitmap manage storage
字典管理:oracle将表空间信息维护在oracle的数据字典中,空闲空间被记录在SYS.FET$表中,已使用空间记录在SYS.UET$表。