1

我是 oracle 的新手,我正在努力删除 oracle 数据库上占用空间的表空间。

所以我面临这个问题:

在 oracle 表空间上创建了很多备份表。我已经从该表空间中删除了所有备份和临时表但是在这样做之后没有减少表空间占用的空间。

4

1 回答 1

2

Option1-卸载过程

备份表空间=>删除表空间=>恢复相同的表空间可以帮助您解决问题:

expdp user/password directory=name_of_directory dumpfile=tablespace_dumpfile.dmp logfile=tablespace_dumpfile.log  tablespaces=tablespace_name;

drop tablespace tablespace_name including contents and datafiles;

impdp user/password directory=name_of_directory dumpfile=tablespace_dumpfile.dmp logfile=tablespace_dumpfile_import.log  tablespaces=tablespace_name;

选项2-行矩启用:

alter table mytable enable row movement;
alter table mytable shrink space;

接下来,检查对象占用的总大小:

select sum(bytes) from dba_segments where tablespace_name='tablespace_name';

现在,尝试调整数据文件的大小以释放空间:

alter database datafile 'datafile_location_file_name' resize <<< size from above select statement >>>;
于 2014-06-12T13:06:46.077 回答