oracle中drop一个表,让数据文件释放空间
2015-05-27
有时我们需要将oracle表删除并保留表空间,同时将相应的datafile数据文件释放空间。
1、查询有哪些表空间及相应数据文件
col name format a50
set linesize 200
select a.name,b.name from v$tablespace a ,v$datafile b where a.TS#=b.TS#;
或者
col file_name format a50
select TABLESPACE_NAME,FILE_NAME from dba_data_files order by TABLESPACE_NAME;
2、查询表空间包含哪些表
col SEGMENT_NAME format a30
select distinct SEGMENT_NAME,TABLESPACE_NAME from dba_segments where TABLESPACE_NAME='YOUR_TS_NAME1' order by SEGMENT_NAME;
3、为保险起见,改变table存放的tablespace
alter table xxx move tablespace xxx;
分区表
Alter table TABLE_NAME move partition PARTITION_NAME tablespace TABLESPACE_NAME;
4、当表空间里没有数据时:
alter database datafile '/data2/oracle/data_201504.dbf' resize 1G;
alter database tempfile '/u02/oracle/oradata/dydb/temp01.dbf' resize 1G;
5、DROP TABLESPACE
SQL> DROP TABLESPACE TABLESPACE_NAME INCLUDING CONTENTS AND DATAFILES;
SQL> quit;
相关日志