2 11g版本默认的主要表空间:
A、System表空间:用于存放Oracle系统内部表和数据字典数据,对应的数据文件是system01.dbf
查询SYSTEM表空间内存放的对象及其拥有者
select segment_type,owner,tablespace_name
from dba_segments where tablespace_name='SYSTEM'
查询各个用户在SYSTEM表空中存放的对象数量
select owner,count(*) from dba_segments where
tablespace_name='SYSTEM' group by owner
题外话:如果用户不小心将自己的表等对象存储到SYSTEM上,管理员应该将该用户的对象从SYSTEM表空间移动到其它表空间上,以保证SYSTEM表空间只存放oracle系统的内部信息,而不是应用系统的数据。
B、Sysaux,11g新增加的表空间,主要用于存放Oracle系统内部的常用样例用户的对象,如存放CRM用户的表和索引等,由Oracle系统内部自动维护,对应的数据文件是sysaux01.dbf
题外话:可以对SYSAUX表空间进行监视、增加数据文件,但不能对其执行删除,改名或设置为READ
ONLY操作
C、撤销表空间(Undo
TableSpace),用于存储撤销信息的表空间,在创建Oracle实例后,自动创建一个名字为UNDOTAS1的撤销表空间,对应的文件是undotbs01.dbf
D、User表空间
查询当前数据库的所有表空间及其对应的数据文件:
select file_name,tablespace_name,bytes from
dba_data_files;
结果如下:
/oratest/app/oracle....user01.dbf
USERS
5242880
临时表空间:存放与排序有关的特殊表空间,当操作中需要进行排序时,系统将排序的数据临时存放在该表空间内,排序处理完成后即可释放排序数据所占的空间;
查询临时表空间信息
select tablespace_name,file_name from dba_temp_files;
结果如下:
TEMP
/oratest/app/oracle...temp01.dbf
3 建立表空间,需注意几点:
- 是创建小文件表空间还是大文件表空间(默认是小文件表空间)
- 是使用局部盘区管理方式还是使用传统的目录盘区管理方式(默认为局部盘区管理)
- 手工管理段空间还是自动管理段空间(默认为自动)
- 是否是用于临时段或者撤销段的特殊表空间
A、语法
Create [SmallFile/BigFile] TABLESPACE tablespace_name --
tablespace_name表空间名字,是大小文件
DATAFILE '/path/filename' SIZE integer [k/m] REUSE --
数据文件路径和名字,REUSE表示若该文件存在,则清除该文件再重新建立该文件,若该文件不存在,则建立该文件
[AUTOEXTEND [OFF|ON] NEXT integer [k/m] REUSE] --
表示数据文件为自动扩展或者非自动扩展,如果自动扩展,则要设置NEXT值
[MAXSIZE [UNLIMITED / integer[k/m] ] ]--
表示当数据文件自动扩展时,允许数据文件扩展的最大长度字节数
[MINIMUM EXTENT integer [k/m]] --
指定最小的长度,默认由操作系统和数据库块决定
[DEFAULT STORAGE storage]--指定以后要创建表、索引及簇的存储参数值
[ONLINE/OFFLINE]--创建表空间时可以指定为在线或者离线
[LOGGING/NOLOOGING]--该表空间内的表在数据加载操作时是否产生日志,默认为产生日志
[PERMANENT/TEMPORARY]--创建的表空间为永久或临时表空间,默认为永久表空间
[EXTENT MANAGEMENT
[DICTIONARY/LOCAL [AUTOALLOCATE|UNIFORM SIZE
integer[k/m]]]]
--
DICTIONARY/LOCAL数据字典管理表空间还是本地化管理表空间,默认为local,Oracle不推荐使用数据字典管理的表空间,如采用本地化管理表空间,则会有以下两个选项
-- AUTOALLOCATE:指表空间扩展时,每次扩展时盘区的大小的系统自动指定
-- UNIFORM SIZE:指定表空间扩展时,盘区按照等同大小进行,默认为1MB