Oracle 表空间扩展和数据迁移

来源:互联网 发布:惯性导航算法 四元 编辑:程序博客网 时间:2024/05/21 15:07

表空间对应关系逻辑结构
表空间 – ——省
数据文件 — –市(数据文件真正存放数据的地方)
段 ———- —县
区 ————- 乡
块 ——- ——村

建表空间有利于
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:)

0 0
原创粉丝点击