Oracle体系架构: 逻辑存储结构
最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!
我要咨询Oracle体系架构: 逻辑存储结构,在操作系统中无法找到逻辑存储结构所对应的文件,但通过查询Oracle数据库的数据字典,可以找到逻辑存储结构的描述。
逻辑存储结构包括表空间,段,区,块。简单的说,逻辑存储结构之间的关系是:多个块组成区,多个区组成段,多个段组成表空间,多个表空间组成逻辑数据库。
一个区只能在一个数据文件中,一个段中的各个区可以分别在多个数据文件中。组成区的块是连续的。由于逻辑的块对应磁盘空间中某个固定大小的尺寸(一般为操作系统数据库的整数倍),所以逻辑存储结构也是有大小的。
一、 表空间(tablespace)
下面的表格显示的是Oracle11g自动创建的表空间名称及其说明
名称 |
分类 |
说明 |
EXAMPLE |
非系统表空间 |
示例表空间,存放示例数据库的方案对象信息及其培训资料 |
SYSAUX |
系统表空间 |
辅助系统表空间,用于减少system表空间的负荷,提高系统的工作效率。是Oracle 10g新增加的表空间 |
SYSTEM |
系统表空间 |
系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,存放着方案对象(如表,索引,同义词,序列)的定义信息,存放着所有pl/sql 程序(如过程,函数,包,触发器)的源代码,是Oracle数据库中最重要的表空间。它属于SYS和SYSTEM方案,仅被SYS和SYSTEM或其他具有足够权限的用户使用。即使是SYS 和SYSTEM用户也不能删除或重命名该空间。他是用户的默认表空间,即当用户在创建一个对象时,如果没有指定特定的表空间,该对象的数据也会被保存在SYSTEM表空间中。 |
TEMP |
系统表空间 |
临时表空间,存放临时表和临时数据,用于排序。每个数据库都应该有一个(或创建一个)临时表空间,以便在创建用户时将其分配给用户,否则就会将TEMP表空间作为临时表空间。 |
UNDOTBS1 |
非系统表空间 |
重做表空间,存放数据库的有关重做的相关信息和数据 |
USERS |
非系统表空间 |
用户表空间,存放永久性的用户对象的数据和私有信息,因此也被称为数据表空间。每个数据库都应该有一个(或创建一个)用户表空间,以便在创建用户时将其分配给用户,否则将会使用SYSTEM表空间来保存数据,而这种做法是不好的。一般讲,系统用户使用SYSTEM表空间,而非系统用户使用USERS表空间 |
二、 段(segment)
段用于存储表空间中某一种特定的、具有独立存储结构的数据库对象的数据,它有一个或多个连续的区组成。当创建表、索引、簇等对象时,Oracle就会为这些对象分配存储空间(即段),以便存储它们的数据。按照段中所存储的数据的特征、用途不同,可以分为以下几种:
类型 |
名称 |
段类型 |
名称 |
Index
partition |
索引分区段 |
Deferred
rollback |
延迟回退段 |
Table
partition |
表分区段 |
Undo |
撤销段(还原段) |
Table |
表段(数据段) |
Temporary |
临时段 |
Cluster |
簇段 |
Cache |
高速缓存段 |
Index |
索引段 |
Lob |
二进制大对象段 |
Rollback |
回退段 |
Lobindex |
二进制大对象索引段 |
段随着存储数据的增加而逐渐变大。段的增大过程是通过增加区得个数而实现的(每次增加一个区)。每个区的大小事块得整数倍。
三、 区(extent)
区是由物理上连续存放的块所组成的。区 是Oracle存储分配的最小单位。一个或多个块组成区,一个或多个区组成段。一个区只能属于一个数据文件。
当在数据库中创建带有实际存储结构的方案对象时(如表、索引),Oracle将为方案对象分配若干个区(视该方案的初始大小而定),以便组成一个对应的段,来为该方案对象提供初始的存储空间。当段中已分配的区都写满,Oracle就要在该方案对象所在的表空间中为该段分配下一个新的空白区,以便容纳更多的数据。
四、 块(block)
块是最小的数据管理单位,即Oracle的所有存储的i/o操作都是以块为单位的。相对应的,操作系统执行i/o操作的最小单位是操作系统块。块得大小是操作系统块得大小的整数倍。
块得大小是一个表空间的属性。SYSTEM和SYSAUX表空间具有相同的、标准的块大小,这个大小是在创建数据库时(会同时创建这两个表空间)由DB_BLOCK_SIZE初始化参数指定的,但在创建数据库之后这个参数值不能改变。