表空间是数据库的逻辑组成部分。从物理上说,数据库存放在数据文件中,从逻辑上说,数据库数据存放在表空间中(table space).表空间是由一个或多个数据文件组成。
1)数据库逻辑结构与物理结构
2)建立表空间
从oracle10g开始,当数据库管理员执行create database命令建立数据库时,oracle不仅会建立system表空间,还会建立辅助表空间sysaux。 system表空间用于存放数据字典和system回滚段。sysaux表空间用于存放各种oracle产品和特征的信息。
Ø 建立本地管理表空间
因为本地管理表空间优于字典管理表空间。建立本地管理表空间时,不能指定
default storage和minimum extent子句。
a) 使用uniform选项指定区尺寸
sql>create tablespace user01 datafile ‘D:\demo\user01.dbf’
size 2M uniform size 128K;
执行完sql语句后会自动创建user01.dbf文件
执行上述命令后,会建立名为user01的表空间,该表空间的空间管理方式为本地管理,区尺寸为128K。
b) 使用autoallocate选项用于指定区尺寸由系统自动分配。
sql>create tablespace user02 database ‘D:\demo\user02.dbf’
size 2M autoallocate;
Ø 建立字典管理表空间
sql>create tablespace user03 datafile ‘D:\demo\users.dbf’
size 5M extent management dictionary
default storage (
inital 20K next 20K
minextents 2 maxextents 50
pctincrease 50);
Ø 建立大文件表空间
sql>create bigfile tablespace big_tbs
datafile ‘D:\demo\big.dbf’ size 100G;
Ø 建立UNDO表空间
sql>create undo tablespace undotbs2 datafile ‘D:\demo\undotbs2.dbf’
size 10M;
以上语句,建立名为undotbs2的undo表空间,该表空间管理方式为本地管理,区尺寸由系统自动分配。
Ø 建立临时表空间
a) 建立本地管理临时表空间
sql>create temporary tablespace temp01
tempfile ‘D:\demo\temp01.dbf’ size 5M
uniform size 256K;
uniform选项指定区尺寸。
b) 建立大文件临时表空间
sql>create bigfile temporary tablespace temp02
tempfile ‘D:\demo\temp02.dbf’size 5M;
3)维护表空间
Ø 改变表空间可用性
a) 使表空间脱机
SQL>alter tablespace tbs_8k offline;
b) 使表空间联机
SQL>alter tablespace tbs_8k online;
c) 使数据文件脱机
SQL>alter database datafile 3 offline;
d) 使数据文件联机
SQL>alter database datafile 3 online;
Ø 改变表空间读写状态
a) 使表空间只读
alter tablespace tbs_8k read only;
b) 使表空间可读写
alter tablespace tbs_8k read write;
Ø 改变表空间名称
alter tablespace tbs_8k rename to tb_7k;
Ø 设置默认表空间
a) 设置数据库默认表空间
在oracle10g之前,建立数据库时,如果不指定default tablespace 选项,会将
system表空间作为用户默认表空间。从oracle10g开始,使用alter database
default tablespace命令可以设置数据库默认表空间。
alter database default tablespace users;
b) 设置数据库默认临时表空间
alter database default temporary tablespace temp01;
Ø 删除表空间
从oracle9i开始,删除表空间时也可以级联删除其所拥有的所有数据文件
drop tablespace tb_8k including contents and datafiles;
Ø 扩展表空间
a) 增加数据文件
alter tablespace user01 add datafile
‘D:\demo\user01_2.dbf’size 10M;
b) 手工改变数据文件尺寸
alter database datafile ‘D:\demo\user01.dbf’ resize 10M;
c) 允许数据文件自动扩展
alter database datafile ‘D:\demo\user01.dbf’ autoextend on
next 10M maxsize 1G;
指定autoextend on选项后,在表空间填满时数据文件将自动扩展,从而间接的扩展了表空间