日期:2014-05-17  浏览次数:20763 次

使用ALTER TABLE .. MOVE TABLESPCE ..后如何收缩原表空间
如题:现在把表空间SPACE1中的一部分表MOVE到SPACE2后,如何收缩SPACE1的空间?
用ALTER DATABASE FILE ... RESIZE ... 会出错:ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据

------解决方案--------------------
可以参考:http://space.itpub.net/7204674/viewspace-664188
------解决方案--------------------
1.将该表空间下的RECYCLEBIN对象清除。
2.找出收缩空间大小之外的对象迁移到另外表空间:
SELECT owner,segment_name,(block_id+blocks)*8/1024 loc_size FROM DBA_EXTENTS where tablespace_name='TBS_DATA'
3.然后再把你的文件缩小:
 ALTER DATABASE DATAFILE 6 RESIZE 100M;