逻辑结构
数据库逻辑结构包含表空间、段、范围(extent)、数据块和模式对象。
(一)表空间
一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间类似于sybase下的设备。(TABLESPACE)。一个表空间可将相关的逻辑结构组合在一起。DBA可利用表空间作下列工作:
控制数据库数据的磁盘分配,克服操作系统文件的限制。2G
将确定的空间份额分配给数据库用户。
通过使单个表空间在线或离线,控制数据的可用性。
执行部分数据库后备或恢复操作。
为提高性能,跨越设备分配数据存储。
数据库、表空间和数据文件之间的关系如下图所示:

logic physical
Oracleblock
Os block
每个数据库可逻辑划分为一个或多个表空间
。每一个表空间是由一个或多个数据文件组成,该表空间物理地存储表空间中全部逻辑结构的数据。DBA可以建立新的表空间,可为表空间增加数据文件或可删除数据文件,设置或更改缺省的段存储位置。
每一个ORACLE数据库包含有一个名为SYSTEM的表空间,在数据库建立是自动建立。在该表空间中总包含有整个数据库的数据字典表。最小的数据库可只需要SYSTEM表空间。该表空间必须总是在线。表和存储的PL/SQL程序单元(过程、函数、包和触发器)的全部存储数据是存储在SYSTEM表空间中。如果这些PL/SQL对象是为数据库建的,DBA在SYSTEM表空间中需要规划这些对象所需要的空间。
表空间利用增加数据文件或扩展数据文件扩大表空间,表空间的大小为组成该表空间的数据文件大小的和。相关命令。
创建表空间:CREATE TABLESPACE app_data
DATAFILE DISK4/app01.dbf SIZE 100M,
DISK5/app02.dbf SIZE 100M
MINIMUM EXTENT 500K
DEFAULT STORAGE(INITIAL 500K NEXT 500K MAXEXTENTS500 PCTINCREASE 0);
临时表空间 用于排序操作,不能包含永久数据
CREATE TABLESPACE sort
DATAFILE DISK2/sort01.dbf SIZE 50M
MINIMUM EXTENT 1M
DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS500 PCTINCREASE 0)
TEMPORARY;
回滚表空间
用于 保存回滚段不要包含其他永久性数据
CREATE TABLESPACE rbs
DATAFILE DISK2/sort01.dbf SIZE 50M
MINIMUM EXTENT 1M
DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS500 PCTINCREASE 0) ;
向表空间中增加数据文件
ALTER TABLESPACE APP_data
ADD DATAFILE
DISK5/app03.dbf SIZE 200M;
允许数据文件自动扩展
ALTER TABLESPACE app_data
ADD DATAFILE
DISK6/app04.dbf SIZE 200M
AUTOEXTEND ON NEXT 10M
MAXSIZE 500M;
手工改变数据文件的大小
ALTER DATABASE DATAFILE DISK5/app02.dbf RESIZE200M;
改变存储参数
ALTER TABLESPACE app_data
MINIMUM EXTENT 2M;
ALTER TABLESPACE app_data
DEFAULT STORAGE
(INITIAL 2M NEXT 2M
MAXEXTENTS 999);
存储参数
下述参数影响段的空间分配:
INITIAL用字节指定表空间的第一个区间大小
NEXT下一个区间大小
MAXEXTENTS 可增长的最多区间数
MINEXTENTS 首次创建时分配的区间数
PCTINCREASE每次分配新的区间增加的百分比
DBA可以使ORACLE数据库中任何表空间(除SYSTEM表空间外)在线(ONLINE)或离线(OFFLINE)。表空间通常是在线,以致它所包含的数据对数据库用户是可用的。当表空间为离线时,其数据不可使用。在下列情况下,DBA可以使其离线。
使部分数据不可用,而剩余的部分允许正常存取
执行离线的表空间后备
为了修改或维护一应用,使它和它的一组表临时不可用。
包含有正在活动的回滚段的表空间不能被离线,仅当回滚段不正在使用时,该表空间才可离线。
在数据字典中记录表空间的状态,在线还是离线。如果在数据库关闭时一表空间为离线,那么在下次数据库装配和重新打开后,它仍然保持离线。
当出现某些错误时,一个表空间可自动地由在线改变为离线。通过使用多个表空间,将不同类型的数据分开,更方便DBA来管理数据库。
相关命令:
将表空间OFFLINE
ALTERTABLESPACE app_data OFFLINE;
移动数据文件
条件:表空间 APP_DATA必须OFFLINE
目标文件必须存在,数据库处在MOUNT状态
ALTERTABLESPACE app_data RENAME DATAFILE DISK4/app01.dbf TO DISK5/app01.dbf
只读表空间
表空间必须在ONLINE状态
表空间中不含活动的 事物.
表空间中不含活动的 回滚段
表空间中不在作在线备份
ALTERTABLESPACE app_data READ ONLY;
删除表空间
DROPTABLESPACE app_data
INCLUDINGCONTENTS;不删除物理文件
获取数据文件有关的信息
DBA_DATA_FILES
FILE_NAME
TABLESPACE_NAME
BYTES
AUTOEXTENSIBLE
MAXBYTES
INCREMENT_BY
获取表空间有关的信息
DBA_TABLESPACES
TABLESPACE_NAME
NEXT_EXTENT
MAX_EXTENTS
PCT_INCREASE
MIN_EXTLEN
STATUS
CONTENTS
小结:ORACLE数据库中一表空间是由一个或多个物理数据文件组成,一个数据文件只可与一个表空间想联系。当为一表空间建立一数据文件时,ORACLE建立该文件,分配指定的磁盘空间容量。在数据文件初时建立后,所分配的磁盘不包含任何数据。表空间可以在线或离线。在ORACLE中还允许单独数据文件在线或离线。一般原则:使用多个表空间;为表空间指定存储参数;给用户指定表空间限额
(二)段、范围和数据块
ORACLE通过段、范围和数据块逻辑数据结构可更细地控制磁盘空间的使用。
段
段(SEGMENT)包含表空间中一种指定类型的逻辑存储结构,是由一组范围组成。根据访问频率、内容对象和生命周期在ORACLE数据库中有几种类型的段:数据段、索引段、回滚段和临时段。
数据段:对于每一个非聚集的表有一数据段,表的所有数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。
索引段:每一个索引有一索引段,存储索引数据。
回滚段:保存数据修改前的映象,这些信息用于生成读一致性数据库信息、在数据库恢复时使用、回滚未提交的事务。Rollback时用得着。一个事务只能使用一个回滚段