Oracle数据库DBF文件收缩
这两天新部署了一套系统,数据库结构保持不变,牵扯导出表结构还有函数,图省事就直接新建用户,还原数据库了。然后咔咔咔,一顿删除delete,truncate,发现要不就是表删了,还有num_rows,回收站也清理了,看起来一切正常了,但是DBF文件依然巨大无比,毫无减小的迹象,查了一下是高水位(HWM)的问题,然后不知道如何解决。
最终方案:清空后的数据库重新备份,之前的表空间删除重建,重新还原新备份的文件即可
注意:该方案针对新库,而且要注意空表导出的问题,可以作为参考
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0