表空间是数据库的逻辑组成部分,从物理上讲,数据库存放在数据文件中,从逻辑上讲,数据库存放在表空间中,表空间由一个或是多个数据文件组成
oracle的逻辑结构包括表空间,段,区和块组成
数据库--》表空间--》段---》区--》块
1,建立表空间
一般情况下,建立表空间是特权用户或是dba来执行的,如果其他用户想建立表空间,需要拥有create tablespace的系统权限
·unifrom 区分配方式
SQL> create tablespace sp01
2 datafile 'D:\oracle\oradata\hwt\sp01.dbf' size 20M
3 uniform size 128k; --- 默认情况下是1M
·autoallocate区分配方式
SQL> create tablespace sp01
2 datafile 'D:\oracle\oradata\hwt\sp01.dbf' size 20M
3 autoallocate;
·auto段管理方式
SQL> create tablespace sp01
2 datafile 'D:\oracle\oradata\hwt\sp01.dbf' size 20M
3 uniform size 128k;
4 segment space management auto;
2,使用表空间
SQL> create table test(
2 tid number(5) not null,
3 tname varchar2(30),
4 log varchar2(50)) tablespace sp01;
3,修改表空间的状态
一般是特权用户或是dba来操作
·使表空间脱机
SQL> alter tablespace sp01 offline;
·使表空间联机
SQL> alter tablespace sp01 online;
·使表空间只读
SQL> alter tablespace sp01 read only;
·设置表空间可读可写
SQL> alter tablespace sp01 read write;
4,删除表空间
SQL>drop tablespace sp01 including contents and datafiles ;
including contents : 表示删除表空间的时候删除表空间里面的数据对象
including datafiles: 表示删除表空间的数据文件
5,扩展表空间
·增加数据文件
SQL> alter tablespace sp01
2 add datafile 'D:\oracle\oradata\hwt\sp01_2.dbf' size 20M;
·增加数据文件的大小
SQL> alter database hwt --- 这里不是alter tablespace
2 datafile 'D:\oracle\oradata\hwt\sp01.dbf'
3 resize 5M; --- 最大不能超过 500 M
·设置数据文件自动增长
SQL> alter database hwt --- 这里不是alter tablespace
2 datafile 'D:\oracle\oradata\hwt\sp01_2.dbf'
3 autoextends on next 10M maxsize 500M; -- 最大不能超过 500 M