表空间对应关系逻辑结构
表空间 – ——省
数据文件 — –市(数据文件真正存放数据的地方)
段 ———- —县
区 ————- 乡
块 ——- ——村
建表空间有利于
1. 节省磁盘空间
2. 提高I/O性能,利于备份和恢复;
建表空间sp1 数据文件d:\test\sp1.dbf
create tablespace sp1 datafile 'd:\test\sp1.dbf' size 20m uniform size 128k;
将t_user表放到SP1表空间
create table t_user(id number(4),name varchar2(32)) tablespace sp1;
当要进行系统维护或者数据维护 要使表空间改变状态 需要特权或者DBA用户
表空间脱机
alter tablespace 表空间名 offline
表空间联机
alter tablespace 表空间名 online
建立只读表空间,
alter tablespace 表空间名 read only;
查询表空间所有的表(表空间名大写)
select * from all_tables where tablespace='表空间名';
知道表名查属于那个表空间(表名大写)
select tablespace_name,table_name from user_tables where table_name='表名';
删除表空间 including contents 删除表空间的数据库对象
datafiles数据文件
drop tablespace '表空间' including contents and datafiles;
扩展表空间三种方法
1.增加数据文件
alter tablespace 表空间名(sp1) add datafile 'd:\test\sp2.dbf' size 300M;
2.增加数据文件大小一个数据文件最大是500M(大小不要超过500M)
alter database datafile 'd:\test\sp1.dbf' resize 300M;
3.设置数据文件自动增长
alter database datafile 'd:\test\sp1.dbf' autoextend on next 10m maxsize 500M;
数据迁移五部曲
1.确定文件所在的表空间,此处D:\TEST\SP1.DBF一定要大写 ,`否则会报未选定行
select tablespace_name from dba_data_files where file_name='D:\TEST\SP1.DBF';
2.使表空间脱机(确保数据一致性)
3.使用命令移动数据文件到指定位置
host move d:\test\sp1.dbf c:\test\sp1.dbf
4.执行alter tablespace命令 物理迁移数据后还应该执行alter tablespace进行逻辑修改
alter tablespace 表空间名 rename datafile 'd:\test\sp1.dbf' to 'c:\test\sq1.dbf';
5.使表空间联机(将一个表空间内的数据全部迁移,否则报错ORA-01110:)