這兩天新部署了一套系統,數據庫結構保持不變,牽扯導出表結構還有函數,圖省事就直接新建用戶,還原數據庫了。然后咔咔咔,一頓刪除delete,truncate,發現要不就是表刪了,還有num_rows,回收站也清理了,看起來一切正常了,但是DBF文件依然巨大無比,毫無減小的跡象,查了一下是高水位(HWM)的問題,然后不知道如何解決。
最終方案:清空后的數據庫重新備份,之前的表空間刪除重建,重新還原新備份的文件即可
注意:該方案針對新庫,而且要注意空表導出的問題,可以作為參考
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
還有個遺留問題,就是數據庫簇Clusters,怎么也消不掉,可能刪除重建就好了,只是沒敢輕易嘗試。Oracle底層的東西太深奧了?