表空间介绍:
表空间是数据库的逻辑组成部分,从物理上讲数据库数据存放在文件中,从逻辑上讲数据库是存放在表空间中,表空间是由一个或者多个文件组成。
数据库由表空间构成,表空间是由段构成,段是由区构成,区是由oralce块组成。
表空间用于逻辑上组织数据库数据,数据库逻辑上是由一个或者多个表空间组成。
表空间的好处:
1.控制数据库占用的磁盘空间
2.dba可以将不同的数据类型部署到不同的表空间位置,有利于提高i/o性能,同时利于备份和恢复等管理操作。
建立表空间:
一般是dba,用create tablespace命令
建立数据表空间:
create tablespace data_01 datafile 'd:\data\data_01.dbf' size 20m uniform size 128k;//名为data_01.dbf 区大小128k
使用数据表空间:
create table mypart( deptno number(4),dname varchar(20),loc varchar(10)) tablespace data_01;//在表空间data_01建表
改变表空间状态:
建立时表空间是联机的online,此时表空间是可读写的。在系统维护,数据维护时需要改变表空间状态。
一般是dba
1.使表空间脱机
alter tablespace data_01 offline;
2.使表空间联机
alter tablespace data_01 online;
3.只读表空间
使表空间只读
alter tablespace data_01 read only;
4.显示表空间包含的所有表:
select * from all_tables where tablespace_name='tablespace_name';
5.查询表所属的表空间
select tablespace_name,table_name from user_tables where table_name='emp';
6.删除表空间
drop tablespace 'tablespace_name' including contents and datafiles;//including contents 表示删除表空间时删除所有的数据对象,datafiles标示将数据库文件也删除。
7.扩展表空间 空间不足时有3种方法
1)增加数据文件
alter tablespace data_01 add datafile 'd:\a.dbf' size 20m;
2)增加数据文件大小
alter tablespace datafile 'd:\data_01.dbf' resize 20m;//文件大小不要超过500m
3)设置文件自动增长
alter tablespace 'd:\data_01.dbf' autoextend on next 10m maxsize 500m;//不够扩充10m,不能超过500m
移动数据文件:
当你的数据文件所在的磁盘损坏时,该文将不能使用,为了能重新使用,需要将文件副本移动到其他磁盘,然后恢复。
1.select tablespace_name from dba_data_files where file_name='d:\data_01.dbf';//查询数据文件所在的表空间
2.alter tablespace data_01 offline;//使空间脱机
3.host move d:\data_01.dbf c:\data_01.dbf;//移动数据文件
4.alter tablespace data_01 rename datafile 'd:\data_01.dbf' to 'c:\data_01.dbf';//在物理上移动完数据文件后,还要对数据文件进行逻辑修改
5.alter tablespace data_01 online;//使表空间联机
其他表空间类型:
1.索引表空间
2.undo表空间
3.临时表空间
4.非标准快的表空间