管理表空间和数据文件
表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或者多个数据文件组成。
oracle中逻辑结构包括表空间,段,区和块。
数据库由表空间构成,而表空间由段构成,段由区构成,区由块构成。
表空间作用:
1、控制数据库占用的磁盘空间。
2、将不同数据类型部署到不同位置,提高i/o性能,同时利于备份和恢复等管理操作。
建立表空间:
create tablespace sp001 datafile 'd:\sp001.dbf' size 20m uniform size 128K
使用表空间:
create table mydept(deptno number(4),dname varchar2(14),loc varchar2(13)) tablespace sp001
改变表空间的状态:
1、使表空间脱机
alter tablespace sp001 offline;
2、使表空间联机
alter tablespace sp001 online;
3、只读表空间
alter tablespace sp001 read only;
4、可读写表空间
alter tablespace sp001 read write;
查找表空间里面所有的表:
select * from all_tables where tablespace_name='表空间名'
查找表属于哪个表空间:
select tablespace_name,table_name from user_tables where table_name='表名'
删除表空间:
drop tablespace sp001 including contents and datafiles
扩展表空间三个方法:
1、增加数据文件
alter tablespace sp001 add datafile 'd:\sp001.dbf' size 20m
2、增加数据文件的大小
alter tablespace sp001 'd:\sp001.dbf' resize 200m
3、设置文件自动增加
alter tablespace sp001 'd:\sp001.dbf' autoextend on next 10m maxsize 500m
移动数据文件的步骤:
1、确定数据文件所在的表空间
sql>select tablespace_name from dba_data_files where file_name='d:\sp001.dbf'
2、使表空间脱机
sql>alter tablespace sp001 offline
3、用命令移动数据文件到指定的目标位置
sql>host move d:\sp001.dbf c:\sp001.dbf
4、逻辑上移动指定位置
sql>alter tablespace sp001 rename datafile 'd:\sp001.dbf' to 'c:\sp001.dbf'
5、使表空间联机
sql>alter tablespace sp001 online