Oracle使用了一组逻辑结构作为存储的基础,这些逻辑结构包含了数据块、区、段和表空间。其中最小的数据存储单位是数据块。
Oracle的逻辑存储体系结构:
从存储架构上来看,一个数据库就是由多个表空间来存储数据,而一个或多个数据库文件组成了表空间。
查看表空间:
表空间主要用来存储数据,表空间有永久表空间和临时表空间,当执行数据排序ORDER BY、汇总GROUP BY或创建和重建索引时,会使用临时表空间来临时存放数据,服务器进程会先在进程全局区PGA中存放临时数据,当PGA空间不够时会建立临时段,这些临时数据会放到临时表空间中。
还有一种不会永久存储数据的表空间,即撤销表空间,属于永久表空间的范畴,它存储当需要撤销对数据库更改时的撤销数据。
SYSTEM表空间:系统核心表空间,存放Oracle系统数据
SYSAUX表空间:辅助SYSTEM的表空间,用于减轻SYSTEM表空间的压力,存放Oracle自身管理的一些数据
TEMP表空间:临时表空间
USERS表空间:用户表空间
UNDOTBS1表空间:重做表空间
创建表空间的SQL语句:
CREATE TABLESPACE: 创建普通的表空间
CREATE UNDO TABLESPACE: 创建撤销表空间
CREATE TEMPORARY TABLESPACE: 创建临时表空间
CREATE BIGFILE TABLESPACE: 创建大文件表空间
更改表空间的名称:
使用ALTER TABLESPACE .. RENAME TO ..语句。
alter tablespace tbs_06 rename to tbs_05;
删除表空间:
当表空间的数据不再游泳时,可以移除一个表空间,一旦被移除,不可恢复。
DROP TABLESPACE tablespace
一个完整创建表空间的例子:
create tablespace bird logging
datafile ' /u01/app/oracle/oradata/orcl/bird01.dbf'
size 2G
autoextend on next 1G
maxsize unlimited
extent management local;
创建一个普通表空间,数据文件为bird01.dbf,大小为2G,自动扩展大小为1G,最大空间空间不限制,本地管理表空间。
create temporary tablespace birdtemp
TempFile ' /u01/app/oracle/oradata/orcl/birdtemp01.dbf'
size 1G
autoextend on next 512M
maxsize unlimited
extent management local;
创建一个临时表空间,数据文件为birdtemp01.dbf,大小为1G,自动扩展大小为512M,最大空间空间不限制,本地管理表空间。
create user bird identified by bird1234
default tablespace bird
temporary tablespace birdtemp;
创建一个用户bird,密码bird1234,默认表空间为bird,默认临时表空间为birdtemp。
最后,需要给用户赋予相应的权限。