Oracle数据库的存储结构:
System:系统表空间,存放关于表空间的名称,控制文件,数据文件等。
创建表空间:
修改表空间:
删除表空间:
查询所有表空间
查询所有表
查询表空间下有哪些表
查看表空间属于哪个用户
分为物理结构和逻辑结构
物理结构
数据文件(.dbf)、日志文件(.log)、控制文件(.ctl)
逻辑结构
表空间、段、区、数据块
逻辑角度来看
1.数据库(database)是由多个或一个表空间(tablespace)组成。
2.表空间(tablespace)是由多个段(segment)组成。
注:一个数据文件要占用一个段,一个索引也要占用一个段。
3.一个段(segment)是由多个区(extent)组成。
4.一个区(extent)是由多个连续的数据块(Databook)组成。
注:数据块(Databook)是在逻辑上属于连续的,在物理磁盘上可能是分散的。
物理角度来看
1.一个表空间(tablespace)是由多个数据文件组成,这些数据文件是实实在在存储在硬盘上的。
小结:
1.逻辑存储结构是和操作系统无关,是由oracle数据库创建和管理的。
2.物理存储结构是和操作系统有关,因为要存储在物理磁盘上。
详细说明:
表空间(tablespace):
表空间是最大的逻辑单位,对应一个或多个数据文件,表空间的大小是它所对应的数据文件大小总和。
表空间分类
|
|
类别 |
说明
|
永久性表空间
|
一般保存表、试图、过程和索引等数据。
SYSTEM、SYSAUX、USERS、EXAMPLE表空间是默认安装的。
|
临时性表空间
|
只用于保存系统中短期活动的数据,如排序数据等。
|
撤销表空间
|
用来保住回退未提交的事务数据,已经提交了的数据在这里是不可以恢复的。一般不需要建临时和撤销表空间,除非把他们转移到其它磁盘中以提高性能。
|
Temp:临时表空间存放临时表和临时数据,用于排序。
Users:用户表空间,永久妇女放用户对象和隐私信息。
Sysaux:辅助系统表空间,减少系统负荷,提高系统作业效率。
段(Segment):
段是表空间的逻辑存储结构,它由一个或多个区组成,段将占用并增长存储空间。
引导段:存储数据字典表的定义
临时段:存储表排序操作期间的临时表的数据
回滚段:存储修改之前的位置和值
索引段:存储表上最佳查询的所有索引数据
数据段:存储表中所有数据
区(Extent):
区是由一组数据块组成,区是由段分配的,分配的第一个区称为初始区,以后分配的去为增量区。
数据块(Database Block)
数据块是数据库使用的I/O最小单元,又称逻辑块或oracle块。一个数据块对应一个或多个物理块。
数据块由一下五部分组成:
标题:包括通用块信息,如块地址/段类型等。
表目录:存储聚集中表的信息,这些信息用于聚集段。
行目录:包括块中的有效行信息。
自由空间:块中能插入或修改的一组空间。
行数据:存储表或索引的数据。
语法:
TABLESPACENAME?:需要创建表空间的名字。
DATAFILE:数据文件绝对路径
SIZE:数据文件的初始大小
AOTUEXTEND:是否自动增长。
实例:
ALTER TABLESPACE TABLESPACENAME
ADD DATAFILE 'DATAFILE' SIZE 10M AUTOEXTEND ON;//添加新数据文件
ALTER DATABASE DATAFILE 'DATEFILE' RESIZE 10M;//修改数据文件大小
DROP TABLESPACE TABLESPACENAME;//删除表空间
DROP TABLESPACE TABLESPACENAME INCLUDING CONTENTS AND DATAFILE;//删除表空间与数据文件
select * from dba_tablespaces;
select * from all_tables;
select * from dba_tables where tablespace_name='表空间名',注意表空间名大小写敏感。
select * from dba_users where default_tablespace = '表空间' ;