应用背景:
某些情况下,由于前期设计上没有考虑全面,导致表空间预建太大,远远超出实际使用大小。于是,就出现了收缩表空间这样的需求,即将这个表空间的占用空间进行收缩。
某些情况下,由于前期设计上没有考虑全面,导致表空间预建太大,远远超出实际使用大小。于是,就出现了收缩表空间这样的需求,即将这个表空间的占用空间进行收缩。
处理方案:
对于表空间收缩,Oracle只提供扩大的功能,而不提供收缩。所以,要实现这样的要求,就只能先创建一个中间表空间,然后将待收缩表空间中的数据迁移到这个表空间下
对于表空间收缩,Oracle只提供扩大的功能,而不提供收缩。所以,要实现这样的要求,就只能先创建一个中间表空间,然后将待收缩表空间中的数据迁移到这个表空间下
处理方法:
1、找出该表空间下的所有数据对象;
select segment_type, partition_name, segment_name from dba_segments;
1、找出该表空间下的所有数据对象;
select segment_type, partition_name, segment_name from dba_segments;
2、创建目标空间(不强制创建,但是建议)。
create tablespace dbs_temp datafile 'd:\dbs_temp01.dbf' size 100m;
create tablespace dbs_temp datafile 'd:\dbs_temp01.dbf' size 100m;
3、根据对象类型重建或转移对应数据;
对于 table:
alter table xx move tablespace dbs_temp;
对于partition table:
alter table xx move partition xx1 tablespace dbs_temp;
对于
对于 table:
alter table xx move tablespace dbs_temp;
对于partition table:
alter table xx move partition xx1 tablespace dbs_temp;
对于